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 Policy Simulator. Возможно, политика настроена неправильно. Но не совсем уверен, что требуется. Пробовал кучу разных вариантов, но безуспешно. Продолжайте получать «отказано Неявно отказано (нет соответствующих утверждений)». для таких действий, как: Зашифровать, Расшифровать, даже если в политике есть эти действия. Проблема в том, что я делаю это со своей локальной машины? Но тогда я бы подумал, что это не сработает так же для незашифрованной записи / чтения.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
395
1

Ответы 1

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

Другие вопросы по теме