CredentialsProviderChain
1 AWS CLI 자격 증명 제공자 체인 (Credentials Provider Chain)
- AWS CLI 자격 증명 제공자 체인은 API 요청을 수행할 때 사용할 AWS 자격 증명을 찾는 데 사용되는 일련의 방법입니다.
- AWS CLI 명령을 실행할 때 도구는 이러한 요청을 인증하기 위해 자격 증명이 필요합니다.
- 자격 증명 제공자 체인은 AWS CLI가 이러한 자격 증명을 찾는 과정을 의미합니다.
1.1 AWS CLI 자격 증명 및 구성 설정의 우선 순위
- 명령줄 옵션
- 환경 변수
- IAM 역할 맡기 (Assume role)
- 웹 신원으로 IAM 역할 맡기
- 자격 증명 파일 (~/.aws/credentials)
- 사용자 지정 프로세스
- 구성 파일 (~/.aws/config)
- 컨테이너 자격 증명 (ECS 태스크)
- EC2 인스턴스 프로파일 자격 증명
2 자격 증명 제공자 체인의 단계
2.1 명령줄 옵션
- CLI 명령을 실행할 때
--access-key및--secret-key옵션을 사용하여 자격 증명을 직접 지정할 수 있습니다. - 이 방법은 다른 모든 자격 증명 제공자보다 우선합니다.
aws s3 ls --access-key YOUR_ACCESS_KEY_ID --secret-key YOUR_SECRET_ACCESS_KEY
2.2 환경 변수
- AWS CLI는 특정 환경 변수가 설정되어 있는지 확인합니다
AWS_ACCESS_KEY_ID및AWS_SECRET_ACCESS_KEY- 임시 보안 자격 증명을 사용하는 경우
AWS_SESSION_TOKEN도 필요합니다.
export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN # 선택 사항
2.3 공유 자격 증명 파일
- CLI는 일반적으로
~/.aws/credentials에 위치한 공유 자격 증명 파일에서 자격 증명을 찾습니다. - 이 파일에서는 여러 프로필을 지정할 수 있습니다.
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
[profile_name]
aws_access_key_id = YOUR_PROFILE_ACCESS_KEY_ID
aws_secret_access_key = YOUR_PROFILE_SECRET_ACCESS_KEY
2.4 AWS 구성 파일
- 공유 자격 증명 파일과 유사하지만, 일반적으로
~/.aws/config에 위치한 구성 파일에서 자격 증명을 찾습니다. - 이 파일에서도 프로필을 지정할 수 있습니다.
[default]
region = us-west-2
output = json
[profile profile_name]
region = us-east-1
output = text
2.5 컨테이너 자격 증명
- AWS 컨테이너 서비스(ECS 등) 내에서 실행되는 경우, CLI는 컨테이너 메타데이터에서 자격 증명을 가져올 수 있습니다.
- ECS 컨테이너 자격 증명 상대 URI를 확인합니다.