AWS Organizations를 사용하여 서비스 제어 정책(SCP) 문제 해결 - AWS Organizations

AWS Organizations를 사용하여 서비스 제어 정책(SCP) 문제 해결

여기에 있는 정보를 사용하여 서비스 제어 정책(SCP)에서 발견되는 일반적인 오류를 진단하고 해결하세요.

AWS Organizations의 서비스 제어 정책(SCP)은 IAM 정책과 유사하며 같은 구문을 사용합니다. 이 구문은 JavaScript Object Notation(JSON) 규칙으로 시작합니다. JSON은 객체를 구성하는 이름과 값 쌍으로 객체를 설명합니다. IAM 정책 문법은 정책을 사용하여 권한을 부여하는 AWS 서비스에서 어떤 이름과 값이 의미를 가지며 어떤 의미로 이해되는지를 정의함으로써 JSON을 기반으로 생성됩니다.

AWS Organizations는 IAM 구문과 문법의 하위 집합을 사용합니다. 자세한 내용은 단원을 참조하세요SCP 구문

정책 객체가 하나 이상인 경우

SCP는 단 하나의 JSON 객체로 구성되어야 합니다. 객체는 중괄호 { }로 묶어 표시합니다. 대괄호 [ ] 안에 중괄호 { }를 추가로 삽입하여 JSON 객체 내에 다른 객체를 중첩시킬 수도 있지만 정책에 따라 중괄호 { }를 묶는 대괄호 [ ]는 하나로 제한됩니다. 다음 예제는 올바르지 않은데, 최상위 레벨에 (붉은색으로 호출한) 객체 2개가 있기 때문입니다.

{ "Version": "2012-10-17", "Statement": { "Effect":"Allow", "Action":"ec2:Describe*", "Resource":"*" } } { "Statement": { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } }

하지만 올바른 정책 문법을 사용하여 이전 예제의 의도를 만족하는 방법도 있습니다. 2개의 정책 객체에 Statement 요소를 각각 추가하지 않고 두 블록을 단일 Statement 요소로 결합하면 됩니다. 그러면 다음 예제와 같이 Statement 요소가 두 객체 배열을 값으로 인식합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":" *" }, { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }

이 예제는 서로 효과가 다른 요소 2개가 있어 요소가 하나인 Statement로 추가 압축할 수 없습니다. 일반적으로 각 문의 EffectResource 요소가 같을 때만 문을 결합할 수 있습니다.

Statement 요소가 하나 이상인 경우

이 오류는 처음에는 이전 섹션에 나온 오류의 변형처럼 보일지도 모릅니다. 하지만 구문으로 보면 다른 유형의 오류입니다. 다음 예제를 보면 중괄호 { } 한 쌍이 최상위 레벨로 정책 객체 하나만 표시하고 있습니다. 하지만 객체에 포함된 Statement 요소는 2개입니다.

SCP는 콜론 왼쪽의 이름(Statement)과 오른쪽의 값으로 구성된 Statement 요소 1개만 포함해야 합니다. 그리고, Statement 요소의 값은 Effect 요소 1개와 Action 요소 1개, 그리고 Resource 요소 1개가 중괄호 { }로 묶여 구성된 객체가 되어야 합니다. 다음은 예제는 올바르지 않은데, 정책 객체에 Statement 요소 2개가 있기 때문입니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, "Statement": { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } }

값 객체는 다수의 값 객체 배열이 될 수 있으므로 이 문제는 다음 예제와 같이 Statement 요소 2개를 객체 배열을 통해 하나의 요소로 결합하여 해결할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":"*" }, { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }

Statement 요소 값이 객체 배열이 되었습니다. 예제의 배열은 두 객체로 구성되며, 각 객체 자체가 정확한 Statement 요소 값으로 인식됩니다. 배열을 구성하는 각 객체는 쉼표로 구분합니다.

정책 문서가 최대 크기를 초과함

SCP 문서의 최대 크기는 5,120자입니다. 이 최대 크기는 공백을 포함하여 모든 문자를 포함합니다. SCP의 크기를 줄이려면 인용 부호 바깥에 있는 공백 문자(예: 공백 및 줄 바꿈)를 모두 제거할 수 있습니다.

참고

AWS Management Console을 사용하여 정책을 저장하면 JSON 요소 사이와 따옴표 밖의 여분의 공백은 제거되며 계산에 포함되지 않습니다. SDK 작업 또는 AWS CLI를 사용하여 정책을 저장하면 정책이 입력된 대로 정확히 저장되며 문자가 자동으로 제거되지 않습니다.