AWS Organizations 구성원 계정에서 권한 있는 작업 수행하기
AWS Organizations 구성원 계정에서 권한 있는 작업 수행하기
AWS Organizations 관리 계정이나 IAM의 위임 관리자 계정은 루트 사용자 자격 증명이 필요했을 일부 권한 있는 작업을 구성원 계정에서 수행할 수 있어요. 중앙 집중식 루트 접근(centralized root access)을 사용하면 이 작업들은 단기 권한 있는 세션(privileged sessions)을 통해 수행돼요. 이 세션은 구성원 계정에서 루트 사용자 로그인이 필요 없이, 특정 권한 있는 액션으로 범위가 제한된 임시 자격 증명을 제공해요.
출처: 문서
본문
권한 있는 세션을 시작하면 잘못 구성된 Amazon S3 버킷 정책을 삭제하고, 잘못 구성된 Amazon SQS 큐 정책을 삭제하며, 구성원 계정의 루트 사용자 자격 증명을 삭제하고, 구성원 계정의 루트 사용자 자격 증명을 다시 활성화할 수 있어요.
참고 – 중앙 집중식 루트 접근을 사용하려면
sts:AssumeRoot권한이 명시적으로 부여된 IAM 사용자나 역할로 관리 계정 또는 위임 관리자 계정을 통해 로그인해야 해요. 루트 사용자 자격 증명으로는sts:AssumeRoot를 호출할 수 없어요.
사전 요구 사항 (Prerequisites)
권한 있는 세션을 시작하기 전에 다음 설정이 있어야 해요.
- 조직에서 중앙 집중식 루트 접근을 활성화했어요. 활성화 단계는 구성원 계정의 루트 접근 중앙화를 참고하세요.
- 관리 계정 또는 위임 관리자 계정에
sts:AssumeRoot권한이 있어요.
구성원 계정에서 권한 있는 액션 수행 (콘솔)
AWS Management Console에서 구성원 계정의 권한 있는 액션용 세션 시작
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 열어요.
- 콘솔 탐색 창에서 Root access management를 선택해요.
- 구성원 계정 목록에서 이름을 선택하고 Take privileged action을 선택해요.
- 구성원 계정에서 수행할 권한 있는 액션을 선택해요.
- Delete Amazon S3 bucket policy를 선택하면 모든 프린시펄이 Amazon S3 버킷에 접근하지 못하게 하는 잘못 구성된 버킷 정책을 제거해요. Browse S3를 선택해 구성원 계정이 소유한 버킷에서 이름을 선택하고 Choose를 선택한 뒤 Delete bucket policy를 선택해요. 잘못 구성된 정책을 삭제한 뒤에는 Amazon S3 콘솔로 버킷 정책을 수정해야 해요. 자세한 내용은 _Amazon S3 사용자 가이드_의 Amazon S3 콘솔로 버킷 정책 추가를 참고하세요.
- Delete Amazon SQS policy를 선택하면 모든 프린시펄이 Amazon SQS 큐에 접근하지 못하게 하는 Amazon Simple Queue Service 리소스 기반 정책을 삭제해요. SQS queue name에 큐 이름을 입력하고 Delete SQS policy를 선택해요. 잘못 구성된 정책을 삭제한 뒤에는 Amazon SQS 콘솔로 큐 정책을 수정해야 해요. 자세한 내용은 _Amazon SQS 개발자 가이드_의 Amazon SQS에서 액세스 정책 구성을 참고하세요.
- Delete root credentials를 선택하면 구성원 계정에서 루트 접근을 제거해요. 루트 사용자 자격 증명을 삭제하면 구성원 계정의 루트 사용자 비밀번호, 액세스 키, 서명 인증서가 제거되고 다중 인증(MFA)이 비활성화돼요. Delete root credentials를 선택해요.
- Allow password recovery를 선택하면 구성원 계정의 루트 사용자 자격 증명을 복구해요. 이 옵션은 구성원 계정에 루트 사용자 자격 증명이 없을 때만 사용할 수 있어요. Allow password recovery를 선택해요. 이 권한 있는 액션을 취하면 구성원 계정의 루트 사용자 이메일 받은 편지함에 접근할 수 있는 사람이 루트 사용자 비밀번호를 재설정하고 구성원 계정 루트 사용자로 로그인할 수 있어요.
구성원 계정에서 권한 있는 액션 수행 (AWS CLI)
AWS Command Line Interface에서 구성원 계정의 권한 있는 액션용 세션 시작
- 루트 사용자 세션을 맡으려면
aws sts assume-root명령을 사용해요.
참고 –
sts:AssumeRoot는 글로벌 엔드포인트를 지원하지 않아요. 이 요청은 리전별 AWS STS 엔드포인트로 보내야 해요. 자세한 내용은 AWS 리전에서 AWS STS 관리를 참고하세요.
- 구성원 계정의 권한 있는 루트 사용자 세션을 시작할 때,
task-policy-arn을 정의해 세션을 세션 중 수행할 권한 있는 액션으로 범위를 제한해야 해요. 다음 AWS 관리형 정책 중 하나로 권한 있는 세션 액션을 범위를 제한할 수 있어요.
IAMAuditRootUserCredentials
IAMCreateRootUserPassword
IAMDeleteRootUserCredentials
S3UnlockBucketPolicy
SQSUnlockQueuePolicy
관리 계정이나 위임 관리자가 권한 있는 루트 사용자 세션 중 수행할 수 있는 액션을 제한하려면 AWS STS 조건 키 sts:TaskPolicyArn을 사용할 수 있어요.
다음 예시에서 위임 관리자는 구성원 계정 ID 111122223333의 루트 사용자 자격 증명을 삭제하려고 root를 맡아요.
aws sts assume-root \
--target-principal 111122223333 \
--task-policy-arn arn=arn:aws:iam::aws:policy/root-task/IAMDeleteRootUserCredentials \
--duration-seconds 900
- 응답의
SessionToken,AccessKeyId,SecretAccessKey를 사용해 구성원 계정에서 권한 있는 액션을 수행해요. 요청에서 사용자 이름과 비밀번호를 생략하면 구성원 계정을 기본값으로 사용할 수 있어요.
- 루트 사용자 자격 증명 상태 확인 – 구성원 계정의 루트 사용자 자격 증명 상태를 확인하려면 다음 명령을 사용해요.
get-user
get-login-profile
list-access-keys
list-signing-certificates
list-mfa-devices
get-access-key-last-used
- 루트 사용자 자격 증명 삭제 – 루트 접근을 삭제하려면 다음 명령을 사용해요. 루트 사용자 비밀번호, 액세스 키, 서명 인증서를 제거하고 다중 인증(MFA)을 비활성화해 루트 사용자에 대한 모든 접근과 복구를 제거할 수 있어요.
delete-login-profile
delete-access-key
delete-signing-certificate
deactivate-mfa-device
- Amazon S3 버킷 정책 삭제 – 모든 프린시펄이 Amazon S3 버킷에 접근하지 못하게 하는 잘못 구성된 버킷 정책을 읽고, 편집하고, 삭제하려면 다음 명령을 사용해요.
list-buckets
get-bucket-policy
put-bucket-policy
delete-bucket-policy
- Amazon SQS 정책 삭제 – 모든 프린시펄이 Amazon SQS 큐에 접근하지 못하게 하는 Amazon Simple Queue Service 리소스 기반 정책을 보고 삭제하려면 다음 명령을 사용해요.
list-queues
get-queue-url
get-queue-attributes
set-queue-attributes
- 비밀번호 복구 허용 – 사용자 이름을 보고 구성원 계정의 루트 사용자 자격 증명을 복구하려면 다음 명령을 사용해요.
get-login-profile
create-login-profile
구성원 계정에서 권한 있는 액션 수행 (AWS API)
AWS API에서 구성원 계정의 권한 있는 액션용 세션 시작
- 루트 사용자 세션을 맡으려면
AssumeRoot명령을 사용해요.
참고 – AssumeRoot는 글로벌 엔드포인트를 지원하지 않아요. 이 요청은 리전별 AWS STS 엔드포인트로 보내야 해요. 자세한 내용은 AWS 리전에서 AWS STS 관리를 참고하세요.
- 구성원 계정의 권한 있는 루트 사용자 세션을 시작할 때,
TaskPolicyArn을 정의해 세션을 세션 중 수행할 권한 있는 액션으로 범위를 제한해야 해요. 다음 AWS 관리형 정책 중 하나로 권한 있는 세션 액션의 범위를 제한할 수 있어요.
IAMAuditRootUserCredentials
IAMCreateRootUserPassword
IAMDeleteRootUserCredentials
S3UnlockBucketPolicy
SQSUnlockQueuePolicy
관리 계정이나 위임 관리자가 권한 있는 루트 사용자 세션 중 수행할 수 있는 액션을 제한하려면 AWS STS 조건 키 sts:TaskPolicyArn을 사용할 수 있어요.
다음 예시에서 위임 관리자는 구성원 계정 ID 111122223333의 Amazon S3 버킷에 대한 잘못 구성된 리소스 기반 정책을 읽고, 편집하고, 삭제하려고 root를 맡아요.
https://sts.us-east-2.amazonaws.com/
?Version=2011-06-15
&Action=AssumeRoot
&TargetPrincipal=111122223333
&PolicyArns.arn=arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy
&DurationSeconds=900
- 응답의
SessionToken,AccessKeyId,SecretAccessKey를 사용해 구성원 계정에서 권한 있는 액션을 수행해요. 요청에서 사용자 이름과 비밀번호를 생략하면 구성원 계정을 기본값으로 사용할 수 있어요.
- 루트 사용자 자격 증명 상태 확인
GetUser
GetLoginProfile
ListAccessKeys
ListSigningCertificates
ListMFADevices
GetAccessKeyLastUsed
- 루트 사용자 자격 증명 삭제
DeleteLoginProfile
DeleteAccessKey
DeleteSigningCertificate
DeactivateMfaDevice
- Amazon S3 버킷 정책 삭제
ListBuckets
GetBucketPolicy
PutBucketPolicy
DeleteBucketPolicy
- Amazon SQS 정책 삭제
ListQueues
GetQueueUrl
GetQueueAttributes
SetQueueAttributes
- 비밀번호 복구 허용
GetLoginProfile
CreateLoginProfile