ECS 컨테이너 자격 증명
내 ECS 작업의 작업 역할에는 대상 계정에서 역할을 수임하는 정책이 있었고 AWS 설명서의 단계 및 문제 해결도 따랐지만(here 참조) 여전히 역할을 수임할 수 없었습니다.
내 주요 문제는 프로세스가
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
변수를 볼 수 없어서 역할에서 자격 증명을 가져올 수 없다는 것입니다.AWS 문서에 따라:
The environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is available only to PID 1 processes within a container. If the container is running multiple processes or init processes (such as wrapper script, start script, or supervisord), the environment variable is unavailable to non-PID 1 processes.
To set your environment variable so that it's available to non-PID 1 processes, export the environment variable in the .profile file. For example, run the following command to export the variable in the Dockerfile for your container image:
RUN echo 'export $(strings /proc/1/environ | grep AWS_CONTAINER_CREDENTIALS_RELATIVE_URI)' >> /root/.profile
Now additional processes can access the environment variable.
제안한대로 Dockerfile에 명령을 추가하려고 시도했지만 .... 도움이되지 않았습니다. 나는 또한 docker entypoint 스크립트에 동일한 것을 추가하려고 시도했습니다 ... 동일합니다. 나는 다른 것을 시도했지만 여전히 아무것도 없습니다.
내 컨테이너는 gitlab 파이프라인의 일부로 실행 중이었고( 참조) 작동하도록 만든 유일한 방법은 파이프라인 작업에서 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI를 내보내는 것이었습니다.
예를 들어
test-job1:
stage: test
script:
- export $(strings /proc/1/environ | grep AWS_CONTAINER_CREDENTIALS_RELATIVE_URI)
- aws s3 ls --profile cross-account-role
현재 이것이 내가 작업 역할에서 자격 증명을 얻을 수 있는 유일한 방법입니다. 우아하지는 않지만 작동합니다.
누구든지 같은 문제를 겪었고 더 나은 해결책을 찾았다면 기쁜 소식을 전하겠습니다. 문제를 해결하는 데 조금이라도 도움이 된다면 더욱 기쁠 것입니다.
차오!
연결
Reference
이 문제에 관하여(ECS 컨테이너 자격 증명), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sgrilux_41/ecs-container-credentials-5d92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)