首页 文章

什么是我的AWS政策错误?

提问于
浏览
0

我试图让程序化的IAM用户访问单个存储桶 .

我设置了以下策略并将其附加到用户:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}

尝试以编程方式上传文件,我得到了403 .

我从这里得到了这个政策:

Writing IAM Policies: How to Grant Access to an Amazon S3 Bucket

我通过添加AWS托管策略AmazonS3FullAccess验证了其他所有功能,之后我的上传成功了 . 但我宁愿不给这个用户完全访问权限 .

此用户没有附加其他政策 .

2 回答

  • 0

    您可以尝试使用此策略来完全访问 particular bucket

    {
        "Version": "2012-10-17",
        "Statement": [{
                "Action": "s3:*",
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::<BUCKETNAME>/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListAllMyBuckets",
                "Resource": "arn:aws:s3:::*"
            }
        ]
    }
    

    由于您要提供 PutGetDelete ,因此您也可以提供对特定存储桶的完全访问权限 .

  • 1

    您的保单没有任何问题 . 确保在IAM策略中使用正确的存储桶名称并将策略添加到用户 .

    您可以使用IAM Policy Simulator进行测试 . 也许你应该考虑政策生效的时间,但它是"almost immediately" . 见this answer .

相关问题