在带有PHP的AWS服务中使用IAM服务角色作为凭据
我有一个运行在elastic beanstalk上的PHP应用程序,它使用一些AWS服务,如S3、RDS和SES。 我目前正在做他们不推荐的事情,那就是在我为这些服务初始化客户端时硬编码我的凭据。 代码如下所示:在带有PHP的AWS服务中使用IAM服务角色作为凭据,php,amazon-web-services,aws-sdk,amazon-iam,Php,Amazon Web Services,Aws Sdk,Amazon Iam,我有一个运行在elastic beanstalk上的PHP应用程序,它使用一些AWS服务,如S3、RDS和SES。 我目前正在做他们不推荐的事情,那就是在我为这些服务初始化客户端时硬编码我的凭据。 代码如下所示: $s3 = new S3Client([ 'region' => 'us-west-2', 'version' => 'latest', 'credentials' => [ 'key' => ‘**********
$s3 = new S3Client([
'region' => 'us-west-2',
'version' => 'latest',
'credentials' => [
'key' => ‘**********’,
'secret' => ‘******************’,
],
]);
我正试图摆脱这一点,有大量AWS文档介绍如何继续,但我几乎找不到任何例子。
我正在考虑使用附加了所有正确策略的IAM服务角色。
这些步骤是:
aws elastic beanstalk角色
谢谢你的指点 只需从s3客户端参数中删除
凭证
字段即可
细节
如果未显式提供凭据值,AWS SDK将通过尝试查找凭据
它按以下顺序查找凭据:
假设您没有配置任何环境变量或配置文件,SDK将使用附加到EC2实例的角色来签署请求。谢谢,就这么简单。如果没有凭证,它可以正常工作。现在,在从本地部署进行测试时,这对我没有帮助。在这种情况下,我应该使用硬编码凭据吗?运行“aws configure”命令,这将在您的本地开发人员计算机上设置一个配置文件,SDK可以找到并使用该文件。谢谢,您在这里节省了时间。我已将一个角色关联到EC2实例,并且我正在使用您提到的aws PHP SDK。但是我得到一个错误
include(AWS_SDK_User_Role.php):无法打开流:没有这样的文件或目录,其中AWS_SDK_User_Role
是附加到EC2的IAM角色的名称instance@Sahil我也有同样的问题。你能解决吗?