【问题标题】:Amazon S3 Permission Errors 403, simple upload of a text fileAmazon S3 权限错误 403,简单上传文本文件
【发布时间】:2015-08-03 01:57:34
【问题描述】:

所以我在 stackoverflow 中使用了几个不同的教程,它们似乎都遇到了相同的错误:403 Permission denied。

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

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

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

这可能与存储桶策略有关吗?还是有什么我不知道的?我是新手,只需要在 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)

【问题讨论】:

标签: python amazon-web-services amazon-s3 permissions boto


【解决方案1】:

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

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

{
    "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/*"
            ]
        }
    ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多