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是否需要另一个服务运行才能使用与容器附加的角色,还是完全不同的事情?

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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인