ECS Task 未使用其附加的角色?

0

【以下的问题经过翻译处理】 我不确定问题在哪: 我有一个使用ubuntu:focal作为基础的容器,容器中运行的应用程序使用aws-sdk-php v3.217访问Secrets Manager。当应用程序在EC2实例上运行时,它能够访问AWS服务,但当它在ECS中运行时(具有完全相同的角色权限),我会收到以下错误:

2022/08/26 14:07:07 [error] 11#11: *3162 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Aws\Exception\CredentialsException: Error retrieving credentials from the instance profile metadata service. (cURL error 7: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)) in .../vendor/aws/aws-sdk-php/src/Credentials/InstanceProfileProvider.php:264

我想要问的问题是,SDK是否需要另一个服务运行才能使用与容器附加的角色,还是完全不同的事情?

profile picture
专家
已提问 5 个月前29 查看次数
1 回答
0

【以下的回答经过翻译处理】 ECS文档中提到,可以通过运行curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI获取IAM凭据。这个地址与EC2的元数据URL(169.254.169.254)不同。因此,您的SDK客户端需要指向另一个位置来获取凭据。对于AWS SDK for PHP,我可以看到有一个名为EcsCredentialsProvider的类。请尝试使用该类来获取 AWS credentials。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则