2016-08-30 2 views
1

У меня есть пользователь IAM под названием server, который использует s3cmd для резервного копирования до S3.AWS S3 IAM пользователь не может получить доступ к ведру

s3cmd sync /path/to/file-to-send.bak s3://my-bucket-name/ 

Что дает:

ERROR: S3 error: 403 (SignatureDoesNotMatch): The request signature we calculated does not match the signature you provided. Check your key and signing method. 

тот же пользователь может отправить почту через SES, так что я знаю, что access_key и secret_key являются правильными.

Я также приложил AmazonS3FullAccess к пользователю IAM и нажал на Simulate policy. Я добавил все действия Amazon S3, а затем нажал Run simulation. Все действия были разрешены, поэтому кажется, что S3 считает, что у меня должен быть доступ. Политика:

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
    "Effect": "Allow", 
    "Action": "s3:*", 
    "Resource": "*" 
    } 
] 
} 

Единственный способ, которым я могу получить доступ, чтобы использовать использовать корень счетов access_key и secret_key. Я не могу получить ни одного пользователя IAM, чтобы иметь возможность входа в систему.

Использование s3cmd --debug дает:

DEBUG: Response: {'status': 403, 'headers': {'x-amz-bucket-region': 'eu-west-1', 'x-amz-id-2': 'XXX', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-request-id': 'XXX', 'date': 'Tue, 30 Aug 2016 09:10:52 GMT', 'content-type': 'application/xml'}, 'reason': 'Forbidden', 'data': '<?xml version="1.0" encoding="UTF-8"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>XXX</AWSAccessKeyId><StringToSign>GET\n\n\n\nx-amz-date:Tue, 30 Aug 2016 09:10:53 +0000\n/XXX/</StringToSign><SignatureProvided>XXX</SignatureProvided><StringToSignBytes>XXX</StringToSignBytes><RequestId>490BE76ECEABF4B3</RequestId><HostId>XXX</HostId></Error>'} 
DEBUG: ConnMan.put(): connection put back to pool (https://XXX.s3.amazonaws.com#1) 
DEBUG: S3Error: 403 (Forbidden) 

Где я заменил ничего чувствительного глядя с XXX.

Я что-то пропустил в настройках разрешений?

ответ

0

Явно использовать правильный IAM ключ доступа и секретный ключ, используемый с s3cmd т.е.

s3cmd --access_key=75674745756 --secret_key=F6AFHDGFTFJGHGH sync /path/to/file-to-send.bak s3://my-bucket-name/ 

Ошибка указана за неправильного ключа доступа и/или секретный ключ

+0

я не думал об этом поскольку я обычно использую конфигурацию в '~/.s3cfg', сгенерированную из' s3cmd --configure'. К сожалению, это не помогло, и у меня такая же проблема. – Doahh