浏览器中S3存储桶对象上的403

时间:2019-08-13 07:59:07

标签: amazon-web-services amazon-s3

我有一个OAI和CloudFront专用的存储桶。当我将项目上传到存储桶时,我可以使用CloudFront URL而不是通过S3 URL来访问它:

我的政策如下

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowCloudFrontRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::xxx/*"
        }
    ]
}

我的IAM用户有权上传和获取存储桶。 现在,我希望我的用户(或我的帐户)可以访问S3 URL(而不是CloudFront URL)来访问存储桶中的对象,而无需将存储桶公开。

我该怎么做?

我试图像这样更新存储桶策略,但是没有用。

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowCloudFrontRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::xxx/*"
        },
        {
            "Sid": "AllowPolicyRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "xxxxx"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::xxx/*"
        }
    ]
}

我的用户可以通过CLI获取和上传对象。

1 个答案:

答案 0 :(得分:0)

IAM或存储桶策略使您可以API级别访问S3。如果不公开存储桶,则无法下载S3文件。