배경

앞서 AWS Organizations를 통한 계정 관리에서 AWS Organizations와 IAM Identity Center를 통한 계정·권한 관리 구조를 정리했다. 개념은 알고 있었지만, 막상 AWS 액세스 포털 화면을 보니 계정 이름과 ID, 이메일, 계정 아래의 Permission Set이 한꺼번에 나와 어떻게 읽어야 할지 바로 이해되지 않았다. 여러 계정을 관리한다는 개념을 아는 것과 실제 화면에서 접속할 계정과 권한을 선택하는 것은 조금 달랐다.

그래서 포털에 표시된 항목이 각각 무엇을 뜻하는지, 계정과 Permission Set을 선택하면 어떤 권한으로 접속하는지 화면을 기준으로 정리해 두려고 한다.

AWS 액세스 포털

AWS Organizations로 여러 AWS 계정을 묶고 IAM Identity Center에서 사용자 접근 권한을 관리하면, 사용자는 AWS 액세스 포털에서 자신에게 할당된 계정과 권한을 선택해 접속할 수 있다. 포털에 로그인한 뒤 어느 AWS 계정에서 어떤 권한으로 작업할지 선택하는 구조다. AWS 계정 접근과 포털 사용 흐름

AWS 액세스 포털의 개발·운영 계정 목록과 운영 계정에 할당된 Permission Set 세 가지

이미지의 계정 이름, 계정 ID, 이메일은 설명용 예시값이다. dev-workload와 prod-workload 두 계정이 보이며, 펼쳐 놓은 prod-workload 아래에는 세 가지 Permission Set이 표시된다.

화면에 표시된 항목 읽기

각 항목의 위치를 구분하면 다음과 같다.

계정 이름, 계정 ID, 계정 이메일과 Permission Set 이름의 위치를 표시한 AWS 액세스 포털 화면

이미지의 표기의미예시 화면에서 보이는 값
account_name_1, account_name_2접근할 AWS 계정의 이름(alias)dev-workload, prod-workload
account_id_1, account_id_2AWS 계정을 식별하는 12자리 계정 ID각 계정 오른쪽에 표시된 숫자
email_1, email_2해당 AWS 계정에 등록된 이메일 주소개발·운영 계정의 예시 이메일
permission_set_name_1운영 계정에서 선택할 수 있는 첫 번째 Permission SetAdministratorAccess
permission_set_name_2운영 계정에서 선택할 수 있는 두 번째 Permission SetPowerUserAccess
permission_set_name_3운영 계정에서 선택할 수 있는 세 번째 Permission SetReadOnlyAccess

여기서 AWS 계정과 로그인 사용자는 서로 다른 개념이다. AWS 계정은 리소스가 속하는 단위이고, 로그인 사용자는 그 계정에 접근하는 사람의 신원이다. 계정 행의 이메일도 로그인한 사람의 이메일을 뜻하지 않는다.

포털의 계정 목록에는 로그인 사용자에게 접근 권한이 할당된 계정이 표시된다. 따라서 이 화면에 계정이 두 개 보인다는 사실만으로 조직에 속한 전체 AWS 계정이 두 개라고 판단할 수는 없다. 포털에 표시되는 계정과 역할

계정 아래에 Permission Set이 여러 개 보이는 이유

Permission Set은 IAM 정책을 묶어 사용자나 그룹의 계정 접근 권한을 정의하는 템플릿이다. IAM Identity Center가 이를 대상 계정에 프로비저닝하면 해당 권한을 가진 IAM Role이 만들어지고, 사용자는 그 Role을 통해 계정에 접근한다. 포털에서는 Permission Set의 이름이 선택 가능한 역할로 표시된다. Permission Set과 IAM Role의 관계

예시의 AdministratorAccess, PowerUserAccess, ReadOnlyAccess는 같은 운영 계정에 들어가는 서로 다른 권한 선택지다. 조회 업무를 위해 읽기 권한으로 들어가는 경우와 리소스를 변경하기 위해 더 넓은 권한으로 들어가는 경우를 나눌 수 있다.

다만 이름만으로 실제 허용 작업을 확정할 수는 없다. Permission Set 이름은 관리자가 정하고, 실제 권한은 연결된 정책으로 구성된다. AWS 관리형 정책과 이름이 같아도 어떤 정책을 연결했는지 확인해야 하며, 조직의 SCP나 권한 경계 등도 실제 허용 범위를 제한할 수 있다. 정책 평가와 권한 범위

또한 화면에 세 가지 Permission Set이 보인다고 해서 세 권한을 합친 상태로 접속하는 것은 아니다. 사용자가 선택한 Permission Set에 해당하는 역할로 세션을 시작한다. 같은 이름의 Permission Set이 다른 계정에도 있더라도, 작업 대상은 선택한 AWS 계정이다.

콘솔에 들어가기

포털의 계정 탭에서 작업할 계정을 펼친 뒤 사용할 Permission Set을 선택하면, 해당 계정의 역할로 AWS Management Console에 접속할 수 있다. 포털은 계정과 권한을 고르는 진입점이고, 실제 EC2나 S3 같은 리소스를 다루는 곳은 접속 후의 콘솔이다. AWS 액세스 포털과 관리 콘솔

예를 들어 운영 계정의 리소스를 조회하려면 prod-workload를 펼친 뒤 조회에 필요한 Permission Set을 선택한다. 접속한 다음에는 콘솔의 계정 정보에서 작업 대상 계정과 역할을 확인한다. 여러 계정을 오가며 작업할 때는 계정 이름과 Permission Set을 함께 확인하는 것이 좋다.

액세스 키와 CLI 접근

각 Permission Set 오른쪽의 액세스 키는 선택한 계정과 역할에 대한 임시 자격 증명을 얻는 메뉴다. IAM User의 장기 액세스 키를 새로 만드는 기능과는 다르다. 임시 자격 증명을 직접 사용하는 경우에는 Access Key ID, Secret Access Key, Session Token 세 값이 함께 필요하며, 만료 후에는 다시 발급받아야 한다. 포털에서 임시 자격 증명 얻기

반복해서 AWS CLI를 사용할 때는 키를 매번 복사하는 대신 AWS CLI v2의 SSO 프로필을 설정할 수 있다. 다음은 prod-workload 계정의 ReadOnlyAccess Permission Set을 선택하는 설정 예시다. 실제 계정에서 실행한 결과를 기록한 것은 아니며, 대괄호로 표시한 값은 사용하는 환경에 맞게 바꿔야 한다.

aws configure sso --profile prod-readonly

설정 과정에서 포털의 시작 URL과 IAM Identity Center가 구성된 리전을 입력하고, 브라우저에서 인증한 뒤 사용할 계정과 Permission Set을 고른다. 설정은 ~/.aws/config에 저장되며, SSO 세션을 사용하는 프로필은 다음과 같은 형태다. AWS CLI의 SSO 프로필 설정

[sso-session work]
sso_start_url = https://[PORTAL_DOMAIN].awsapps.com/start
sso_region = [SSO_REGION]
sso_registration_scopes = sso:account:access
 
[profile prod-readonly]
sso_session = work
sso_account_id = [PROD_ACCOUNT_ID]
sso_role_name = ReadOnlyAccess
region = ap-northeast-2
output = json

sso_account_id는 포털에서 선택한 계정 ID이고, sso_role_name은 선택한 Permission Set의 이름이다. sso_region은 IAM Identity Center가 구성된 리전이며, region은 CLI 명령의 기본 작업 리전이다. 둘은 서로 다를 수 있다. SSO 설정 파일의 항목

프로필을 만든 뒤 로그인하고, 명령이 어느 계정과 역할로 실행되는지 확인하려면 다음 순서로 사용한다.

aws sso login --profile prod-readonly
aws sts get-caller-identity --profile prod-readonly

get-caller-identity 응답의 Account와 Arn을 확인하면 CLI에서 사용하는 계정과 역할을 확인할 수 있다. 프로필 이름 자체가 권한을 부여하는 것은 아니므로, 이름보다 실제 연결된 계정과 Permission Set을 기준으로 판단해야 한다. SSO 로그인 후 CLI 명령 실행