Lambda基于资源的策略中本金和源帐户之间的差异



在Lambda基于资源的策略文档中,它提到最好包括source-account,例如,您指定了一个source-arn,它引用了一个在arn中没有帐户id的s3存储桶,因此,如果您运气不好,有人删除了您的存储桶,另一个帐户创建了一个同名的bucket,他们可以间接访问您的Lambda函数。

但你也有Principal的符号,就像他们的一个例子:

"Principal":{"AWS":"arn:aws:iam::210987654321:root"}

Principal&source-account。当您想将权限细化到帐户中的特定角色或用户时,是否使用Principal?如果你的情况不是这样,并且你只想从整个帐户授予对Lambda的访问权限,你会使用source-account吗?

使用aws:SourceAccount的一个原因是缓解了困惑的副手问题。

具体来说,在S3的上下文中,使用它是为了使S3不被认为是混淆的副手

主体是有权触发资源的主体,例如,在本例中,主体实际上是S3服务。这是因为S3没有配置为承担IAM角色,服务实际上是Lambda函数的调用方。

然后,下面的条件将权限限定为仅允许S3服务在来自源帐户/存储桶时调用。如果没有这一点,它将成为AmazonS3的一个开放范围。

您正确地认为,主体可以用于引用IAM用户/角色,在您的示例中,还可以用于引用整个AWS帐户(假设调用者实际上是IAM用户/职位(。如果调用者是IAM实体而不是另一个AWS服务,则可以使用此方法。

相关内容

  • 没有找到相关文章

最新更新