Назад | Перейти на главную страницу

Поддерживает ли CloudFront подпись S3 версии 4 для зашифрованных объектов KMS?

Я использую Cloudfront с источником S3, который использует KMS для шифрования объектов. Я получаю следующую ошибку при отправке запроса GET для объекта в корзине S3.

Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.

Я предположил, что Cloudfront будет достаточно умен, чтобы использовать AWS Signature Version 4 при запросе объекта, но, может быть, нет?

Это выглядит так возникла проблема с новыми регионами S3. Amazon недавно добавила поддержку для этих новых регионов, но я не думаю, что они решили проблему с объектами, зашифрованными с помощью KMS.

Кто-нибудь имеет опыт работы с этим и знает, есть ли способ получить идентификатор доступа Cloudfront для использования подписи v4?

Вам необходимо настроить свой Версия подписи AWS, например

aws configure set default.s3.signature_version s3v4

или для конкретного профиля:

aws configure set profile.<profilename>.s3.signature_version s3v4

Затем повторите попытку, например

aws s3 cp s3://rkbtest/check.png ./

Источник: aws / aws-cli / issues / 1006 на GitHub.


При использовании curl/wget команду, вам нужно добавить дополнительные Authorization заголовок в вашем запросе, например

GET /photos/puppy.jpg HTTP/1.1
Host: johnsmith.s3.amazonaws.com
Date: Tue, 27 Mar 2007 19:36:42 +0000

Authorization: AWS AKIAIOSFODNN7EXAMPLE:
bWq2s1WEIj+Ydj0vQ697zp+IXMU=

Синтаксис: Authorization: AWS AWSAccessKeyId:Signature.

Видеть: Подписание и аутентификация запросов REST.