S3 S3EncryptionClient AWS SDK для PHP: ошибка при получении учетных данных с сервера метаданных профиля экземпляра

Для своего подключения я использую использовать профиль по умолчанию для файла общих учетных данных AWS. У меня есть настройка .aws / credentials, содержащая aws_access_key_id aws_secret_access_key. Это отлично работает для подключения localhost к S3 с помощью S3Client.

Однако я хочу выполнить шифрование / дешифрование на стороне клиента с помощью S3EncryptionClient, и здесь начинаются проблемы. Использование PHP 3.6 и aws-sdk-php 3.5. Мне пришлось вручную установить каталоги Crypto, поскольку по какой-то причине композитор не мог их получить, хотя, насколько я понимаю, поддержка была добавлена ​​в v3.38.

putObject после Amazon S3 При шифровании на стороне клиента с помощью AWS SDK для примера PHP версии 3 возникает ошибка «Ошибка при получении учетных данных с сервера метаданных профиля экземпляра». Я использую одного и того же пользователя, ключа и секрета в обоих случаях при использовании S3Client или при использовании S3EncryptionClient. Я предполагаю, что KmsMaterialsProvider не требует указания 'credentials' => $ provider, но я тоже пробовал это.

Изменить: пробовал то же самое в симуляторе политики IAM. Возможно, политика настроена неправильно. Но не совсем уверен, что требуется. Пробовал кучу разных вариантов, но безуспешно. Продолжайте получать «отказано Неявно отказано (нет соответствующих утверждений)». для таких действий, как: Зашифровать, Расшифровать, даже если в политике есть эти действия. Проблема в том, что я делаю это со своей локальной машины? Но тогда я бы подумал, что это не сработает так же для незашифрованной записи / чтения.


person kos    schedule 27.12.2018    source источник


Ответы (1)


Выяснил это, на случай, если кто-то столкнется с той же проблемой, поскольку похоже, что по крайней мере несколько человек остались без ответа. Создание KmsClient в среде разработки (localhost) необходимо для указания 'учетных данных' => $ provider, даже если он уже указан для S3EncryptionClient. Также убедитесь, что для ключа и службы KMS настроена политика разрешений.

person kos    schedule 28.12.2018