AWS IAM 政策问题

Posted

技术标签:

【中文标题】AWS IAM 政策问题【英文标题】:AWS IAM policy issue 【发布时间】:2020-09-26 14:53:14 【问题描述】:

我创建了一个名为 sally 的 IAM 用户,并且在创建时没有附加任何托管策略。然后将以下 IAM 策略附加到它。


    "Version": "2012-10-17",
    "Statement": [
        
            "Action": "S3:*",
            "Resource": [
                "arn:aws:s3:::cat-pics",
                "arn:aws:s3:::cat-pics/*"
            ],
            "Effect": "Allow"
        
    ]

但是当我以 sally 用户身份登录控制台时,我不断收到以下错误: 错误 拒绝访问 基本上,用户无法看到 cat-pics 存储桶或上传到其中的任何对象。我在这里想念什么?我是否需要向用户添加任何托管策略?请告诉我。

谢谢

【问题讨论】:

您确定以正确的用户身份登录吗? 是的,我确定,因为我可以在控制台右上角看到 sally@account-id。孟买地区也存在存储桶。 试试这个网址。 s3.console.aws.amazon.com/s3/buckets/cat-pics 【参考方案1】:

对于尝试通过控制台访问存储桶的用户来说,这是正确的策略文档。


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "TheseActionsSupportBucketResourceType",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListBucketVersions"
            ],
            "Resource": [
                "arn:aws:s3:::cat-pics"
            ]
        ,
        
            "Sid": "TheseActionsRequireAllResources",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "*"
            ]
        ,
        
            "Sid": "TheseActionsRequireSupportsObjectResourceType",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::cat-pics/*"
            ]
        
    ]

此处提供了该问题的详细说明: https://aws.amazon.com/blogs/security/iam-policy-summaries-now-help-you-identify-errors-and-correct-permissions-in-your-iam-policies/ 谢谢

【讨论】:

【参考方案2】:

问题在于此策略允许仅此存储桶的完全访问权限,但如果您使用控制台,则需要其他权限才能访问。 AWS documentation 表示您需要在存储桶之外的 GetBucketLocationListAllMyBuckets 权限才能使用控制台。

将此添加到策略中,它应该可以工作:


      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Resource": "*"
    ,

【讨论】:

以上是关于AWS IAM 政策问题的主要内容,如果未能解决你的问题,请参考以下文章

IAM 政策 - 如何引用资源?

IAM 政策不允许 EC2 访问

AWS 政策评估

如何重命名 AWS 客户 IAM 策略?

如何限制 AWS IAM 组访问 AWS Secret Manager?

Cloudformation 的最低权限 AWS IAM 策略