当角色本身有一个或多个政策时,在Lambda中选择角色和基于资源的政策的目的是什么


我创建了一个Lambda函数。在权限窗格中,有一部分用于角色,另一部分用于基于资源的策略。

IAM中的角色本身就有政策。这指定了函数(通过角色(有权访问的资源和操作。

那么,设置基于资源的政策部分的目的是什么呢?如果在一个中允许访问,而在另一个中拒绝访问,则优先考虑哪个权限。

它们是两种不同的东西。

  • 角色是lambda可以做什么(即函数本身在执行时可以访问什么(

  • 基于资源的策略是其他主体可以对Lambda做什么(即谁可以执行它,谁可以更新它,谁能看到它,谁能够删除它等(

Lambda是AWS中需要这套双重策略的众多服务之一,因为它既是一种可以执行的资源,又是一个可以执行其他事情的主体。EC2实例角色是另一个例子。

附加到Lambda的IAM角色用于授予Lambda与API以外的其他AWS资源通信的能力。如果IAM策略允许访问以执行操作,那么只要没有拒绝语句,就应该能够执行该操作。

另一方面,函数策略是评估Lambda函数调用的策略,默认情况下,如果您的AWS帐户中的资源具有正确的IAM权限,则可以调用Lambda。

但是,有些服务没有分配给它们的IAM角色,因此调用资源或试图调用Lambda的服务的Arn等属性。此外,您可以授予对另一个AWS帐户的访问权限,或者限制哪些IAM主体应该能够调用该函数。这类似于S3存储桶中存储桶策略的属性。

根据此处的AWS文档。

基于身份的策略附加到IAM用户、组或角色。通过这些策略,您可以指定该标识可以执行的操作(其权限(。例如,您可以将策略附加到名为John的IAM用户,声明允许他执行AmazonEC2RunInstances操作。该政策可能会进一步规定,John可以从名为MyCompany的Amazon DynamoDB表中获取物品。您还可以允许John管理自己的IAM安全凭据。可以管理或内联基于身份的策略。

基于资源的策略附加到资源。例如,您可以将基于资源的策略附加到Amazon S3存储桶、Amazon SQS队列和AWS密钥管理服务加密密钥。有关支持基于资源的策略的服务列表,请参阅与IAM配合使用的AWS服务。

使用基于资源的策略,您可以指定谁有权访问资源,以及他们可以对资源执行哪些操作。要了解您信任区域以外的帐户(受信任的组织或帐户(中的主体是否有权担任您的角色,请参阅什么是IAM访问分析器?。基于资源的策略只是内联的,而不是管理的。

最新更新