微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从/.aws/credentials读取凭据 – PHP脚本调用AWS-SDK

我看过这里的每一个答案,似乎我的问题有点不同或者没有一个合适的解决方案.我在我的PHP文件中执行以下操作:

use Aws\Route53\Route53Client;

$client = Route53Client::factory(array(
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2013-04-01'
));

得到此错误

Fatal error: Uncaught Aws\Exception\CredentialsException: Cannot read credentials from /.aws/credentials

似乎简单的修复将确保HOME目录是正确的.确实已经是.文件是可读的,我的ec2用户已经是所有者.密钥和密钥已安装在“凭据”文件中.配置文件名称已设置为“认”.试图将/.aws复制到其他目录,如root,/ home等,并更改权限,chmod,以上所有.依然没有.

然后我试着硬编码凭证(我知道 – 不推荐)只是为了给它一点点,它完全忽略了我这样做:

$client = Route53Client::factory(array(
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2013-04-01',
    'credentials' => [
            'key' => $key,
            'secret' => $secret,
    ]
));

作为最后的手段,我甚至尝试包含CredentialProvider类,并将其传递到我的数组中 – 仍然没有:

'credentials' => CredentialProvider::ini('default', '/home/ec2-user/.aws/credentials'),

我究竟做错了什么?

解决方法:

不确定你做错了什么,但我建议完全绕过这个问题,并为相关的vm分配一个EC2实例角色,然后你不必担心它;这是一个更好/更安全的解决方案.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐