Для подключения я использую Использовать профиль по умолчанию для файла общих учетных данных AWS.У меня есть .aws / учетные данные настройки, содержащие aws_access_key_id aws_secret_access_key.Это прекрасно работает для подключения с локального хоста на S3 с использованием S3Client.
Однако я хочу выполнить шифрование / дешифрование на стороне клиента с помощью S3EncryptionClient, и здесь начинаются проблемы.Использование PHP 3.6 и aws-sdk-php 3.5.Мне пришлось вручную устанавливать каталоги Crypto, поскольку по какой-то причине их не получал композитор, хотя, насколько я понимаю, в v3.38 была добавлена поддержка.
putObject после Клиентское шифрование на стороне клиента S3 с помощьюПример AWS SDK для PHP версии 3 завершается с ошибкой «Ошибка при получении учетных данных с сервера метаданных профиля экземпляра».Я использую одного и того же пользователя, ключ, секрет в обоих случаях при использовании S3Client или при использовании S3EncryptionClient.Я предполагаю, что KmsMaterialsProvider не требует указания 'credentials' => $ провайдера, но я тоже это пробовал.
Редактировать: пробовал то же самое в IAM Policy Simulator.Возможно, политика настроена неправильно.Но не совсем уверен, что требуется.Перепробовал кучу разных вариаций безуспешно.Продолжайте получать «отказано Неявно отказано (нет подходящих утверждений)».для таких действий, как: Encrypt, Decrypt, даже если в политике есть эти действия.Проблема в том, что я делаю это с моей локальной машины?Но тогда я бы подумал, что он не будет таким же образом для незашифрованной записи / чтения.