Произошла ошибка (AccessDenied) при вызове операции PutObject: Access Denied python - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь дать разрешения на мое ведро AWS, чтобы иметь возможность загружать файлы. Я попытался обновить публичный доступ к общедоступным и изменить политику ведения. Я застрял, и я не уверен, как решить эту проблему.

Политика Bucket:

    "Version": "2012-10-17",
    "Id": "PolicyID",
    "Statement": [
        {
            "Sid": "SID",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::id:user1"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket/*"
        },
        {
            "Sid": "SID",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::id:user2"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}

Обновление: я могу загрузить файл с помощью командной консоли python, но не в своем исходном коде. Вот что у меня есть

s3.boto3.resource('s3')
s3.meta.client.upload_file('file.csv', 'bucket', 'file.csv')

Я также пробовал:

s3.boto.resource('s3')
s3.Object('bucket').upload_fileobj(object)

1 Ответ

0 голосов
/ 12 июля 2019

Чтобы успешно подключиться к AWS, мне пришлось передать учетные данные ресурсу s3

s3 = boto3.resource('s3', aws_access_key_id='key', aws_secret_access_key='key')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...