首页 文章

Amazon S3权限错误403,简单上传文本文件

提问于
浏览
1

所以我一直在stackoverflow中使用几个不同的教程,他们似乎都出现了同样的错误:403权限被拒绝 .

我在ubuntu 14.04上使用python2.7和boto .

下面是代码(没有密钥和存储桶名称),我想知道为什么我被拒绝访问自己的存储桶 .

我在IAM中创建了一个具有S3完全访问权限的用户,并在存储桶上设置了权限以允许“Everyone”上传/下载 . 我正在使用正确的密钥,因为我将它们复制并粘贴到代码中 .

这可能与存储桶策略有关吗?或者有什么我不知道的东西?我是新手,只需要在S3上上传和下载文本文件 .

import boto
from boto.s3.key import Key
import boto.s3.connection

AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
Bucketname = '' 
conn = boto.connect_s3(aws_access_key_id=AWS_ACCESS_KEY_ID,
       aws_secret_access_key=AWS_SECRET_ACCESS_KEY )

bucket = conn.get_bucket(Bucketname)

1 回答

  • 1

    评论很有帮助,谢谢FirebladeDan . 所以我创建了一个具有Admin Access和完全S3访问权限的用户 . 这一切都是在IAM完成的 . 现在在存储桶属性中,我向Grantee“Everyone”添加了一个权限集,允许他们上传/下载和列出 . 现在最后一步是添加存储桶策略 . 我不认为我需要这样做,所以我发布在这里 .

    我错了 . 所以这就是我用过的东西 . 注意:这允许我上传到S3,但是大多数时候set_contents_from_filename()只上传 Headers ,并不总是上传文件 . 这可能是我的代码中的错误,但如果您遇到相同的事情,那么此策略可能需要某种额外的权限 .

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "USERNAME",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::GETNUMBERSOFUSER:root"
                },
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::BUCKETNAME",
                    "arn:aws:s3:::BUCKETNAME/*"
                ]
            }
        ]
    }
    

相关问题