교차 계정 S3 버킷 접속 방법

Nari.·2021년 11월 12일
0

AWS

목록 보기
11/13

시나리오

계정A 에 cross-access-bucket을 이름으로 갖는 버킷이 만들어져있고,
계정B 에서 access-test라는 이름을 갖는 사용자(IAM User)가 있다.

access-test 사용자는 계정A에 있는 cross-access-bucket에 접근해서 파일을 업로드하고, 버킷안의 객체들을 확인하고, 삭제하고 싶다. 어떻게하면 사용자의 요구를 충족시킬 수 있을까?



1. 계정B 사용자 정책 수정

계정B에 이미 만들어진 사용자 access-test의 정책을 수정 또는 추가한다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::cross-access-bucket"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::cross-access-bucket/*"
        }
    ]
}



2. 계정A 버킷 정책 수정

계정A 에 이미 만들어 둔, cross-access-bucket의 정책을 수정한다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::000000000000:user/access-test"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:ListBucket",
                "s3:DeleteObject"
            ],
            "Resource": [
              	"arn:aws:s3:::cross-access-bucket",
                "arn:aws:s3:::cross-access-bucket/*"
            ]
        }
    ]
}
  • Principal 에서 0000000000이 부분은 계정B의 계정ID 숫자 12자리를 입력한다.



3. ACL 사용자 추가

계정A의 cross-access-bucket에서 Permissions(권한) 탭에서 Access control list(ACL)을 수정한다.

Access for other AWS accounts 부분의 Add Grantee 를 이용해서 새로운 사용자를 추가한다.

이 부분에 계정B의 Canonicial ID를 적고 Objects와 BucketACL 의 모든 권한을 주면된다.

Canonicial ID 찾는 방법

콘솔에서 계정B로 로그인을 한 뒤, S3에 접속한다.
S3 아무 버킷이나 하나 만들어서 그 버킷의 Permissions(권한)탭을 들어간다. 하단에 ACL 부분을 보면 Bucket owner 이라고 해서 Canonicial ID가 있는데 그걸 복사해서 위에 계정A 에 붙여넣으면 된다!



참고

https://aws.amazon.com/ko/premiumsupport/knowledge-center/cross-account-access-s3/

0개의 댓글