无法使用 EC2 角色将文件从 VPC 中的 EC2 复制到 S3

无法使用 EC2 角色将文件从 VPC 中的 EC2 复制到 S3

从在 VPC 内运行的 EC2 实例,我需要使用 awscli 访问 S3 存储桶,以便将文件从 EC2 复制到 S3。

我成功创建了一个带有附加自定义策略的端点,该策略是使用亚马逊提供的策略构建器构建的。

EC2 正在以特定角色运行,如果我将此类角色“ARN:...”分配给主体,则会收到“拒绝访问”提示。如果我将角色替换为“*”,则一切正常。我做错了什么?这是策略,如您所见,我只允许上传和检索对象:

{
    "Version": "2012-10-17",
    "Id": "Policy14467516498654",
    "Statement": [
        {
            "Sid": "Stmt1446751649837",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*" <-- it's not working with specific role
            },
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:AbortMultipartUpload",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:CreateMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::thebucket/thechildbucket/*"
        }
    ]
}

该角色具有完全 EC2 访问权限。我已尝试分配完全 S3 访问权限,但不起作用。

答案1

角色本身的策略也必须具有对目标存储桶的 S3:[权限] 访问权限。

{
        "Sid": "Stmt1234",
        "Effect": "Allow",
        "Action": [
            "s3:*"
        ],
        "Resource": [
            ""arn:aws:s3:::thebucket/thechildbucket",
            ""arn:aws:s3:::thebucket/thechildbucket/*"

        ]
    }

相关内容