AWS Cross-account 기능을 이용한 S3 버킷권한 타계정 이전
.
Data_Engineering_TIL_(20200220)
1. 실습목표
A 계정의 특정 S3 버킷을 B 계정이 접근하여 사용할 수 있도록 권한부여
2. 실습 상세내용
step 1) A 계정에서 특정 S3에 대한 접근 정책생성
step 1-1) A계정의 IAM 콘솔접속, ‘정책 생성’ 클릭
step 1-2) 메뉴에서 JSON을 클릭하고 하단에 아래와 같이 코드를 작성
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::minman" ## 여기서 minman은 B계정에서 접근하고 싶은 A계정의 버킷이름이다.
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::minman/*"
}
]
}
step 1-3) 정책이름 부여 후 생성
step 2) B계정이 A계정으로 접근할 수 있는 역할 생성
step 2-1) A계정의 IAM 콘솔에서 ‘역할 만들기’ 클릭
step 2-2) ‘다른 AWS 계정’ 클릭
step 2-3) ‘계정 ID’에 B 계정의 ‘사용자 ARN’ 의 숫자 12자리 입력 후 ‘다음:권한’ 클릭
ex) B 계정의 ARN arn:aws:iam::123456789012:user/minsu.park 에서 123456789012 를 말함
step 2-4) step 1)에서 생성한 정책 이름을 검색하여 체크 후 ‘다음:태그’ 클릭
step 2-5) ‘다음:검토’ 클릭 후 역할 이름 부여하고 ‘역할 만들기’ 클릭
step 2-6) IAM 콘솔에서 역할 메뉴로 들어가서 방금 생성한 역할 클릭 아래와 같은 화면에서 ‘신뢰 관계’ -> ‘신뢰 관계 편집’ 클릭
step 2-7) 아래와 같이 편집화면에서 “AWS”: .. 이후 부분에 B 계정의 ARN arn:aws:iam::123456789012:user/minsu.park 으로 편집
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/minsu.park" ## 여기에 있는 줄을 B 계정의 ARN을 입력
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
step 2-8) ‘신뢰 정책 업데이트’ 클릭
step 3) B 계정에서 A계정으로 접근할 수 있는 역할을 부여받기 위한 정책 연결
step 3-1) 아래 그림과 같이 B 계정의 IAM 사용자 메뉴에서 우측에 ‘인라인 정책 추가’ 클릭
step 3-2) JSON 메뉴를 클릭하고 아래 그림과 같이 코드 작성 후 정책생성
“Resource”: “arn:aws:iam::98765432112:role/crossactest” 이부분은 step 2)에서 만든 역할의 ‘역할 ARN’을 말하는 것이며 step 2-6) 아래 그림에서 ‘역할 ARN’ 을 복붙한다.
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::98765432112:role/crossactest"
}
}
step 4) B계정에서 A계정의 버킷으로 접근하는 테스트
step 4-1) 다시 A계정으로 돌아가서 step 2)에서 만든 역할로 들어가면 아래 그림과 같이 ‘콘솔에서 역할을 전환할 수 있는 사용자에게 이 링크 제공’ 부분에서 옆에 url 주소를 컨트롤 c로 복사한다.
step 4-2) B 계정으로 돌아와서 브라우저 상단에 새창을 띄우고 복사한 URL 주소를 붙어넣기하고 접속하면 아래와 같은 그림의 화면이 나온다. 그러면 하단에 ‘역할 전환’을 클릭한다.
step 4-3) 다음과 같이 역할 전환된 화면에서 B계정에서 A계정의 특정 s3 버킷을 접근할 수 있는 것을 확인할 수 있다.
버킷안의 특정 객체를 삭제하거나 수정도 할 수 있다.