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 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen