适用于PHP的S3 S3EncryptionClient AWS开发工具包:从实例配置文件元数据服务器检索凭证时出错

时间:2018-12-27 21:10:06

标签: encryption amazon-s3 aws-php-sdk

对于我的连接,我正在使用“使用AWS共享凭证文件默认配置文件”。我有包含aws_access_key_id aws_secret_access_key的.aws /凭证设置。对于使用S3Client进行本地主机到S3的连接,此方法很好用。

但是,我想使用S3EncryptionClient进行客户端加密/解密,这是问题开始的地方。使用PHP 3.6和aws-sdk-php 3.5。我不得不手动安装Crypto目录,因为就我所知,即使在v3.38中添加了支持,出于任何原因,作曲家也无法获得它们。

Amazon S3 Client-Side Encryption with the AWS SDK for PHP Version 3 example之后的

putObject失败,并显示“从实例配置文件元数据服务器检索凭据时出错”。在使用S3Client或使用S3EncryptionClient的两种情况下,我都使用相同的用户,密钥和机密。我假设KmsMaterialsProvider不需要指定'credentials'=> $ provider,但是我也尝试过这样做。

编辑: 在IAM策略模拟器中进行了相同的尝试。可能是政策设置不正确。但不太确定需要什么。尝试了一堆不同的变体,但没有成功。不断收到“拒绝隐式拒绝(没有匹配的语句)”。对于诸如“加密,解密”的操作,即使策略具有这些操作也是如此。我是在本地计算机上执行此操作的问题吗?但是后来我以为,对于未加密的写入/读取,它将以相同的方式失败。

1 个答案:

答案 0 :(得分:0)

弄清楚了这一点,以防万一有人遇到同样的问题,至少有几个人没有答案。即使已为S3EncryptionClient指定了在dev环境(localhost)上创建KmsClient,也需要指定'credentials'=> $ provider。另外,请确保已为密钥和KMS服务设置了权限策略。