允许 EC2 实例访问附加了拒绝策略的存储桶

Allowing EC2 instance to access bucket that has deny policy attached to it

我有一个附加了拒绝策略的存储桶,大致像这样

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RestrictedAccess",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:iam::1234567890:user/someuser@somecompany",
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}

很明显,即使我将 IAM 权限授予 IAM user/role 以访问存储桶,上述 Deny 仍然有效。

现在,我想创建一个 EC2 实例,它也应该可以访问这个存储桶。

我应该在此处添加什么类型的委托人

                "AWS": [
                    "arn:aws:iam::1234567890:user/someuser@somecompany",
                ]
            },

您必须将 EC2 实例正在使用的角色的 ARN 添加到您的拒绝异常 并且 为您希望执行的 S3 操作的角色添加一个明确的允许。