AWS Organizations 멤버 계정이 다음과 유사한 명시적 거부 오류 메시지를 받았습니다. ‘The IAM Entity is not authorized to perform API action on resource: arn:aws:iam::123456789012:role/Admin with an explicit deny in a service control policy’.
간략한 설명
Organizations 서비스 제어 정책(SCP)을 사용해 조직의 멤버 계정 권한을 관리할 수 있습니다. 단, SCP는 조직의 AWS Identity and Access Management(IAM) ID에 권한을 부여하지 않습니다.
API 작업에 대한 액세스 권한을 부여하려면 SCP와 IAM ID 기반 정책이 모두 멤버 계정에 대한 액세스를 허용해야 합니다.
해결 방법
SCP가 요청을 거부했기 때문에 명시적 거부 오류가 발생한 것인지 확인하려면 AWS CloudTrail Event History를 사용해 이벤트 이름을 검색합니다. 그런 다음 AWS Organizations 관리 계정에서 Organizations 콘솔을 사용해 정책을 제거하거나 수정하여 API 작업 요청을 허용합니다.
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
CloudTrail 이벤트 기록 검토
CloudTrail 콘솔 사용
지난 90일간의 모든 지원되는 서비스 및 통합과 이벤트 유형(만들기, 수정, 삭제 및 변경 불가능한 활동 등)을 볼 수 있습니다. CloudTrail 이벤트 기록을 사용하려고 트레일을 설정할 필요는 없습니다.
자세한 설명은 CloudTrail 콘솔에서 최근 CloudTrail 이벤트 보기를 참조하십시오.
AWS CLI 사용
lookup-events AWS CLI 명령을 사용해 지난 90일간의 관리 이벤트 또는 CloudTrail Insights 이벤트를 조회합니다.
filter-log-events 명령을 실행해 지표 필터를 적용하여 로그 이벤트에서 특정 용어, 문구 및 값을 검색합니다. 그런 다음 해당 결과를 CloudWatch 지표 및 경보로 변경할 수 있습니다.
자세한 내용은 지표 필터, 구독 필터, 필터 로그 이벤트 및 Live Tail에 대한 필터 패턴 구문을 참조하십시오.
AWS Organizations 콘솔을 사용해 SCP 제거 또는 수정
다음 단계를 완료하십시오.
- AWS Organizations 관리 계정을 사용해 AWS Organizations 콘솔을 엽니다.
- 탐색 창에서 AWS accounts(AWS 계정)를 선택하고 영향을 받은 멤버 계정을 선택합니다.
- Policies(정책) 탭을 선택하고 API 작업에 대한 액세스를 제한하는 모든 적용된 SCP를 검토합니다.
- 정책을 편집하려면 SCP를 선택하고 Edit policy(정책 편집)를 선택합니다. 정책을 편집하고 나서 Save changes(변경 사항 저장)를 선택합니다.
-또는-
정책을 삭제하려면 SCP를 선택하고 Delete(삭제)를 선택합니다.
-또는-
정책을 분리하려면 SCP를 선택하고 Detach(분리)를 선택합니다.
AWS CLI를 사용해 서비스 제어 정책 관리
정책 세부 정보 가져오기
정책을 설명하고 정책의 현재 구성 및 내용을 검토하려면 다음 describe-policy AWS CLI 명령을 실행합니다.
aws organizations describe-policy --policy-id policy-id
참고: policy-id를 해당하는 정책 ID로 바꾸십시오.
앞의 명령은 정책의 메타데이터를 반환하며, 여기에는 이름, 설명, 유형 및 전체 JSON 정책 문서가 포함됩니다.
연결된 대상 식별
어느 조직 단위(OU) 또는 계정이 정책으로 인해 영향을 받는지 알아보려면 다음 list-targets-for-policy AWS CLI 명령을 실행합니다.
aws organizations list-targets-for-policy --policy-id policy-id
참고: policy-id를 해당하는 정책 ID로 바꾸십시오.
앞의 명령은 현재 해당 정책이 연결되어 있는 모든 대상을 나열합니다. 이렇게 하면 변경 사항을 적용하기 전에 변경의 영향 범위를 평가하는 데 도움이 됩니다.
정책 업데이트
정책을 수정하려면 업데이트된 JSON 정책 문서를 사용해 다음 update-policy AWS CLI 명령을 실행합니다.
aws organizations update-policy --policy-id policy-id --content "Updated JSON"
참고: policy-id를 해당하는 정책 ID로, Updated JSON을 업데이트된 정책 문서로 바꾸십시오.
JSON 내용이 적절하게 이스케이프되고 형식이 지정되었는지 확인합니다. 복잡한 정책의 경우, JSON을 파일에 저장하고 file:// 접두사를 사용하십시오.
aws organizations update-policy --policy-id policy-id --content file://updated-policy.json
참고: policy-id를 해당하는 정책 ID로, updated-policy.json을 정책 문서 파일로 바꾸십시오.
정책 분리 또는 삭제
정책을 수정하는 것이 아니라 완전히 제거해야 하는 경우, 다음 단계를 완료하십시오.
-
특정 대상에서 정책을 분리하려면 다음 detach-policy 명령을 실행합니다.
aws organizations detach-policy --policy-id policy-id --target-id target-id
참고: policy-id를 해당하는 정책 ID로, target-id를 대상 ID로 바꾸십시오.
-
정책을 모든 대상에서 분리한 이후 삭제하려면 다음 delete-policy 명령을 실행합니다.
aws organizations delete-policy --policy-id policy-id
참고: policy-id를 해당하는 정책 ID로 바꾸십시오.
명시적 거부 오류가 해결되었는지 확인
멤버 계정에서 API 작업을 다시 실행하여 명시적 거부 오류가 해결되었는지 확인합니다.
관련 정보
서비스 제어 정책(SCP)
Enhanced access denied error messages with policy ARNs(정책 ARN을 사용한 강화된 액세스 거부 오류 메시지)
관리 계정에서 조직의 세부 정보 보기