AWS 교차 계정을 활용한 s3 권한 부여에 대하여...

임태빈·2023년 12월 16일

회사 내에서 여러 계정을 관리하면서 이를 좀 더 효율적으로 관리할 수 있는 방법이 무엇인지에 대해 고민하게 되었다.

그래서 무수한 구글링을 하게 되었고 교차계정을 활용하는 방법에 대해서 알게 되었다.

나는 이 내용을 보면서 활용성이 있다고 판단했고 간단하게 테스트를 진행해 보았다.

이 테스트의 목적은 하나의 계정을 통해서 다른 계정의 리소스를 접근하여 사용하기 위함이다.

이것이 가능하다면 추후 목표로 생각하고 있는 플랫폼 엔지니어링을 할 때 많이 유용할 것이라 판단했다.

테스트 방법은 아래 순서대로 진행을 했다.

  1. 권한을 주는 버킷에 가서 아래와 유사하게 버킷 권한 설정을 추가해준다.
{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example permissions",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::Account-ID:root"
         },
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
         ]
      }
   ]
}

-> 버킷 권한 설정이 아닌 iam에서 policy에서는 불가능하다. Principal은 unsupported라 나와서 설정이 불가능하다.
설정 시, Account-ID는 버킷에 요청하는 외부 계정의 id를 넣어주면 된다.
예를 들어, A의 계정에서 B의 버킷을 요청하는 케이스라고 생각하면 A의 계정이 외부 계정의 id로 보면 된다.

  1. aws cli를 활용해서 테스트를 해준다.
aws s3 ls DOC-EXAMPLE-BUCKET --profile 'A의 profile'

-> 추가적으로 aws s3 ls 로는 확인이 불가능하다.

이 실험을 통해 교차 계정을 활용하여 플랫폼 엔지니어링에 접목해볼 수 있는 부분을 찾을 수 있었다.
추후 회사 내에 필요한 것들을 이를 활용해서 만들어봐야 겠다.

profile
golang으로 devops 하고 있는 개발자입니다.

0개의 댓글