S3 存储桶策略和 Lambda 角色

问题描述 投票:0回答:1

我有一个名为

x-temp-images
的 S3 存储桶和相应的存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Deny",
            "Principal": {
                "Service": "lambda.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::x-temp-images-bucket/*",
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceArn": <LAMBDA_ARN>
                }
            }
        }
    ]
};

我有两个 Lambda 函数:

  • 具有所需 ARN 来访问
    x-temp-images
  • 另一个我不想访问
    x-temp-images
    存储桶的 Lambda 函数。

出于测试目的,我已向两个 Lambda 函数授予完整的 S3 访问权限,但我不想在每个 Lambda 函数角色中指定它们是否有权访问特定的 S3 存储桶。尽管如此,两个 Lambda 函数都可以访问此存储桶,尽管我只提到了 S3 存储桶策略中第一个 Lambda 函数的 ARN。

amazon-web-services amazon-s3 amazon-iam
1个回答
0
投票

您在保单中指定的条件将不起作用。

如果您想授予 AWS Lambda 函数访问 Amazon S3 存储桶的权限,您应该 在与 Lambda 函数关联的 IAM 角色中授予权限

默认情况下,IAM 角色没有权限。因此,对于您不想访问 S3 存储桶的 Lambda 函数上的 IAM 角色,无需执行任何操作。 对于您想要访问 S3 存储桶的 Lambda 函数,

为其 IAM 角色添加权限

© www.soinside.com 2019 - 2024. All rights reserved.