공유받은 S3의 파일을 EC2 에서 다운로드 해보기

2023.04.21

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 Backlog 알람을 Slack에서도 받는 방법에 대해 알아 보겠습니다.

계정

  • AWS 계정 A : S3를 소유한 계정
  • AWS 계정 B : S3를 공유 받을 계정

계정 A에서 S3 버킷을 조작할 수 있는 IAM 역활 작성

AWS 검색창에서「IAM」을 입력 합니다.

계정 A에서 pollcy 작성

우측 메뉴에서「정책」을 클릭한 후 우측상단의「정책 생성」버튼을 클릭 합니다.

표시된 화면에서「JSON」탭을 클릭하고 아래의 내용을 입력 합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR-S3-NAME/*",
                "arn:aws:s3:::YOUR-S3-NAME"
            ]
        }
    ]
}

「YOUR-S3-NAME」부분에 공유할 S3명을 입력 합니다.

다음 화면에서「이름」을 입력하고 정책내용을 확인 합니다.

계정 A에서 IAM 역활 작성

우측 메뉴에서「역활」을 클릭한 후 우측 상단에「역활 만들기」버튼을 클릭 합니다.

표시된 화면에서「AWS 계정」을 선택 합니다.

아래의 화면에서「다른 AWS 계정」을 입력하고 아래의 내용은 체크를 하지 않고「다음」버튼을 클릭 합니다.

권한은 위에서 만든 권한을 선택 합니다.

「역활 이름」을 입력 합니다.

추가된 권한을 확인하고「역활 생성」버튼을 클릭 합니다.

생성이 완료되었으면 생성된 IAM의「ARN」을 복사하여 따로 보관 합니다.(아래에서 사용됩니다.)

계정 B에서 AssumeRole 할 수 있는 IAM 역활 작성

계정 B에서 pollcy 작성

계정 B로 접속하여 아래의 내용으로「정책 생성」을 합니다.

{
 "Version": "2012-10-17",
 "Statement": [{
  "Effect": "Allow",
  "Action": "sts:AssumeRole",
  "Resource": "arn:aws:iam::111111111111:role/YOUR-IAM-ROLE-NAME"
 }]
}

「arn:aws:iam::111111111111:role/YOUR-IAM-ROLE-NAME」부분은 위에서 복사한 ARN을 입력합니다.

이름을 입력하고 권한을 확인한 후 정책을 생성합니다.

계정 B에서 IAM 역활 작성「」

역활 만들기 화면에서「AWS 서비스」를 선택 합니다.

아래에서「EC2」를 선택하고「다음」버튼을 클릭 합니다.

권한 추가 에서는 위에서 만든 권한을 추가 합니다.

「역활 이름」을 입력 합니다.

권한을 확인하고「역활 생성」버튼을 클릭 합니다.

계정 B의 EC2에서 자격 증명 설정

EC2를 생성시 위에서 설정한 IAM ROLE을 설정 합니다.

위의 블로그를 참고하여 자격증명 환경을 설정 하고 롤을 전환 합니다.

vi ~/.aws/credentialsvi ~/.aws/config 에서 아래의 설정을 추가 합니다.

[role-a-profile]
role_arn = arn:aws:iam::11111111111:role/share-s3-role
credential_source=Ec2InstanceMetadata

role_arn은 계정 A에서 만든 IAM의 ARN은 입력 합니다.

확인 해보기

아래의 명령어를 입력하여 ec2에 파일이 다운로드 된것을 확인할 수 있습니다.

aws s3 cp s3://YOUR-BUCKET-NAME/test/ --profile role-a-profile ./

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !