【AWS CLI】 역할을 전환하여 다른 계정의 Docker 이미지를 가져옵니다.

4036 단어 AWS-IAMaws-cli

배경



AWS를 사용하여 다른 계정의 ECR에 있는 Docker 이미지를 얻고 싶었기 때문에
AWS CLI를 통한 롤 전환에 대해 여러가지 조사한 결과를 정리했습니다.

전제 조건



1. 계정 A에 원하는 Docker 이미지가 있습니다.

2. 계정 B에 존재하는 EC2에 계정 A의 Docker 이미지 PULL

작업 흐름



1. 계정 A의 IAM에서 계정 B에서 사용할 수 있는 역할 만들기



1-1. 신뢰할 수 있는 엔티티 선택



※계정 ID는 계정 B의 ID 12자리를 입력합니다.

1-2.Attach 액세스 제한 정책

 아래를 부여한다
· AmazonEC2ContainerRegistryFullAccess
・AmazonEC2FullAccess
· AmazonEC2RoleforSSM (EC2에 세션 관리자로 연결하는 데 사용)

1-3. 역할 만들기

태그 이름은 입력하지 않아도 좋다.
롤 이름은 switch-role 등 알기 쉬운 이름이 좋을까.
· 작성 후 작성된 역할의 ARN 복사


2. 계정 B에서 실제로 역할 전환을 위한 준비



2-1. 계정 B로 로그인하여 EC2의 IAM 역할 설정

EC2에 부착된 IAM 역할을 열고 신뢰 관계 탭에서 신뢰 관계 편집 버튼을 누릅니다.


파란색 테두리에 만든 역할의 ARN 붙여넣기

2-2.EC2에 로그인하여 awscli 설정하기

EC2에 로그인(이번에는 세션 관리자 사용)
로그인 후 관리자 권한(su)으로 전환

2-2-1. 전환 후 프로파일 등록
[root@ip-10-10-10-131 ~]# aws configure --profile dev
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-1
Default output format [None]: json

여기서는 전환 후 이름을 dev로 정의합니다.
설정 후 configure 파일을 직접 엽니다.
[root@ip-10-10-10-131 ~]# vi .aws/config

'role_arn'과 'source_profile' 추가


2-2-2. 자격 증명 등록
[root@ip-10-10-10-131 ~]# vi .aws/credentials

credentials 파일 새로 만들기
[default]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = xxxxxx

액세스 키와 비밀 액세스 키는 계정 B에서 사용할 수 있는 사용자를 등록합니다.

3. 실제로 시도해보십시오



3-1. 롤을 전환하지 않는 경우

ECR(Amazon Elastic Container Registry)에 로그인
[root@ip-10-10-10-185 ~]aws ecr get-login --region ap-northeast-1 --no-include-email > dlogin.sh
[root@ip-10-10-10-185 ~]chmod +x dlogin.sh
[root@ip-10-10-10-185 ~]./dlogin.sh

리포지토리 가져오기
[root@ip-10-10-10-185 ~]docker pull 'リポジトリのURI'
Error response from daemon: Get 'リポジトリのURI' no basic auth credentials

라는 바람에 인증 관계로 에러가 된다

3-2. 롤을 전환한 경우

ECR(Amazon Elastic Container Registry)에 로그인
[root@ip-10-10-10-185 ~]aws ecr get-login --region ap-northeast-1 --no-include-email --profile dev > dlogin_dev.sh
[root@ip-10-10-10-185 ~]chmod +x dlogin_dev.sh
[root@ip-10-10-10-185 ~]./dlogin_dev.sh

리포지토리 가져오기
[root@ip-10-10-10-185 ~]docker pull 'リポジトリのURI'
ダウンロード中..
・
・
・
・
Digest: sha256:0xx
Status: Downloaded newer image for 'リポジトリのURI'

획득한 이미지 확인
[root@ip-10-10-10-185 ~]# docker images
REPOSITORY     TAG                 IMAGE ID            CREATED             SIZE
リポジトリ名    latest              xxxxxxxxxxxx        13 months ago       5.37GB

마지막으로



이번은 Docker 이미지의 취득에 특화했지만, 롤의 전환은 CodeCommit로부터 문서의 취득 등에도 사용할 수 있으므로
비망록으로서 aws cli의 전환의 순서를 정리했습니다.

참고



AWS CLI 프로파일 간의 간편한 전환

AWS CLI에서 역할 전환 및 작업

좋은 웹페이지 즐겨찾기