[SAC] Cross Account Role 설정 가이드 in AWS
이 문서는 다른 계정의 리소스 정보 동기화 절차만을 제공하며, 다른 계정의 리소스에 접속할 수 있는 절차는 제공하지 않습니다. 다른 계정의 리소스에 접속하기 위해서는 VPC Peering Connections, Transit Gateways, Private Links 등을 활용하여 별도의 통신 구간 허용 작업을 수행하여야 합니다.
Overview
QueryPie 가 설치되는 Account 와 실제 동기화 대상 리소스의 Account 가 분리되어 있는 경우, QueryPie 가 설치 되어있는 Account 에서는 STS(Security Token Service)를 통해 대상 리소스의 Account IAM Role 로 부터 임시 자격 증명 (Token)을 요청 받아 리소스 정보들을 동기화 할 수 있습니다.
아래 절차는 QueryPie instance 가 설치된 계정 (이하 Security Account) 에서 동기화 대상 리소스가 존재하는 계정 (이하 Workloads Account) 으로 부터 임시 자격 증명을 획득하여 리소스 정보를 동기화 하는 절차를 안내합니다.
절차를 진행하시기 전에, 다음 세 가지 사항을 사전에 숙지해 주시기 바랍니다:
AssumeRole 동작은 Security Account 측에서만 수행됩니다.
Workloads Account에서는 직접적으로 AssumeRole을 호출하지 않습니다.
대신, Workloads Account에서는 외부 계정이 해당 Role을 Assume할 수 있도록 Trust Relationship을 적절히 설정해 주셔야 합니다.
1. Security Account : QueryPie 에서 수행해야 하는 작업
1.1 Cloud Provider 에서 External ID 발급 및 추출
Name: 식별 가능한 이름 입력
Region: 리소스를 수집한 리전 지정 ( e.g. Asia Pacific (Seoul) )
Credential: Cross Account Role
Follow the steps down below. 클릭
하단에 생성되는
External ID를 복사하여 보관
External ID 는 생성 시 마다 Create Provider 버튼을 클릭하여 진입하는 시점 마다 신규 생성이 됩니다. 이 문서의 절차를 진행하는 동안에는 유실 또는 변경 되지 않도록 주의가 필요합니다.
2. Workloads Account : 리소스를 보유한 계정에서의 수행 작업
2.1. IAM Role 생성
Trusted entitiy type : AWS account
An AWS account : Another AWS account
Account ID : Security Account의 AWS Account ID 입력
Options
Require external ID (Best practice when a third party will assume this role) 활성화 → QueryPie 에서 복사한
External ID입력
Next클릭
Add permission : QueryPie instance 와 연동할 리소스의 퍼미션 추가 (e.g. AmazonEC2ReadOnlyAccess)
Next클릭
Role name : 식별 가능한 이름 입력
Create Role클릭
3. Security Account : QueryPie instance를 보유한 계정에서의 수행 작업
3.1. sts:AssumeRole Policy 생성
Policy editor 를 Visual → JSON 으로 변경 후, 아래 형식의 Policy 를 추가
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "<CrossAccount Role ARN from Workloads Account>"
}
]
}Next클릭Policy name : 식별 가능한 Policy name 입력
Create policy클릭
3.2. (Instance 에 IAM Role 미 등록 시) IAM Role 생성 및 QueryPie instance에 적용
Trusted entitiy type: AWS service
Use case:
Service or use case: EC2
Next클릭
Permissions policies: 위에서 생성한 sts:AssumeRole Policy 추가
Next클릭
Role name: 식별 가능한 Role name 입력
Description: 필요 시 수정
Create role클릭
IAM role: 위에서 생성한 IAM role 선택
Update IAM role클릭
3.3. (Instance 에 IAM Role 사전 등록 시) QueryPie instance에 적용한 IAM Role에, sts:AssumeRole Policy를 추가
Permissions → Add permissions → Attach policies 클릭
위에서 생성한 Policy 를 검색하여 선택
Add perimissions클릭
3.4. QueryPie 에서 Workloads Account 에서 생성한 Role ARN 을 붙여넣기 후 저장
Workloads Account 에서 생성한 IAM Role 의 ARN 정보를 복사 → Security Account 의 QueryPie Cloud Provider 설정에 추가 후 저장
FAQ
Dry run 또는 Synchronize 시, QueryPie가 임시 자격 증명을 부여 받는 주기가 어떻게 될까요?
Cross Account Role 동기는 Dry Run / Synchronize 시 마다 임시권한을 요청하여 획득하는 방식입니다.
요청 시 마다 획득하는 임시권한의 유효 시간은 AWS 에서 최소 단위로 지정하고 있는 1시간 입니다.