SCP 구문 - AWS Organizations

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SCP 구문

서비스 제어 정책 (SCP) 은 (IAM) 권한 정책 및 리소스 기반 정책 AWS Identity and Access Management (예: Amazon S3 버킷 정책) 에서 사용하는 것과 유사한 구문을 사용합니다. IAM 정책과 그 구문에 대한 자세한 내용은 IAM 사용 설명서IAM 정책 개요를 참조하세요.

SCP는 JSON 규칙에 따라 구성된 일반 텍스트 파일입니다. SCP는 이번 주제에서 설명하는 요소를 사용합니다.

참고

SCP 내 모든 문자는 최대 크기를 기준으로 계수됩니다. 이 설명서의 예제는 가독성을 높이기 위한 추가 공백으로 포맷된 SCP를 보여 줍니다. 하지만 정책 크기가 최대 크기에 근접한 경우 공백을 저장하려면 인용 부호 바깥에 있는 공백 문자(예: 공백 및 줄 바꿈)를 모두 삭제할 수 있습니다.

SCP에 대한 일반적인 내용은 서비스 제어 정책(SCP) 단원을 참조하세요.

요소 요약

다음 표에는 SCP에서 사용할 수 있는 정책 요소가 요약되어 있습니다. 일부 정책 요소는 작업을 거부하는 SCP에서만 사용할 수 있습니다. 지원되는 효과(Supported effects) 열에는 SCP에서 각 정책 요소와 함께 사용할 수 있는 효과 유형이 나열되어 있습니다.

Element 용도 지원되는 효과
버전 정책을 처리하는 데 사용할 언어 구문 규칙을 지정합니다.

Allow, Deny

Statement 정책 요소 컨테이너의 역할을 합니다. SCP에 여러 문을 포함할 수 있습니다. Allow, Deny
Statement ID(Sid) (선택 사항) 문의 표시 이름을 제공합니다. Allow, Deny
효과 SCP 문이 계정의 IAM 사용자 및 역할에 대해 액세스를 허용하는지, 아니면 거부하는지를 정의합니다. Allow, Deny

작업

SCP가 AWS 허용하거나 거부하는 서비스 및 작업을 지정합니다.

Allow, Deny

NotAction

SCP에서 제외되는 AWS 서비스 및 작업을 지정합니다. Action 요소 대신 사용합니다.

Deny

리소스 SCP가 적용되는 AWS 리소스를 지정합니다. Deny
Condition 문이 효력을 발휘하는 조건을 지정합니다. Deny

다음 섹션에서는 SCP에서 정책 요소가 사용되는 방식에 대한 자세한 설명 및 예제를 제공합니다.

Version 요소

모든 SCP에는 값이 "2012-10-17"Version 요소가 있어야 합니다. 이 버전 값은 IAM 권한 정책의 최신 버전과 같습니다.

"Version": "2012-10-17",

자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: 버전을 참조하세요.

Statement 요소

SCP는 하나 이상의 Statement 요소로 구성됩니다. 정책은 Statement 키워드 하나만 가질 수 있지만, 값은 ([ ] 문자로 구분한) JSON 문 어레이가 될 수 있습니다.

다음 예제는 하나의 Effect, ActionResource 요소로 구성된 한 문을 보여줍니다.

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

다음 예제는 하나의 Statement 요소 안에 어레이 목록으로 존재하는 문 2개를 보여줍니다. 첫 번째 문은 모든 작업을 허용하지만 두 번째 문은 모든 EC2 작업을 거부합니다. 그 결과 계정 관리자는 Amazon Elastic Compute Cloud(Amazon EC2)를 제외한 모든 출처의 권한을 위임할 수 있습니다.

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: 문을 참조하세요.

Statement ID(Sid) 요소

Sid는 정책 문에 입력되는 식별자(옵션)입니다. Sid 값은 문 배열에서 각 문에 할당할 수 있습니다. 다음 예제 SCP는 샘플 Sid 문을 보여줍니다.

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: ID를 참조하세요.

Effect 요소

각 문에는 Effect 요소 하나가 있어야 합니다. 이때 값은 Allow 또는 Deny가 될 수 있습니다. 이것은 같은 문에서 나열하는 모든 작업에 영향을 줍니다.

자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: 효과를 참조하세요.

"Effect": "Allow"

다음 예제는 계정 사용자가 Amazon S3 서비스를 위한 작업을 수행하도록 허용하는 Allow 값을 갖는 Effect 요소를 포함한 문이 있는 SCP를 보여줍니다. 이 예제는 허용 목록 전략을 사용하는 조직에서 유용하게 활용할 수 있습니다(기본 FullAWSAccess 정책이 모두 분리되어 있어 기본적으로 권한이 묵시적으로 거부되는 전략). 결과적으로 이 문은 연결된 모든 계정에 대해 Amazon S3 권한을 허용합니다.

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

이 문은 IAM 권한 정책과 동일한 Allow 값 키워드를 사용하지만, SCP에서는 실제로 사용자에게 특정 작업을 수행할 수 있는 권한을 부여하지 않습니다. 대신 SCP는 조직의 IAM 사용자 및 IAM 역할에 대한 최대 권한을 지정하는 필터 역할을 합니다. 이전 예제에서, 계정의 사용자에게 AdministratorAccess 관리형 정책이 연결돼 있다 하더라도 이 SCP는 영향받는 계정의 모든 사용자가 Amazon S3 작업만 할 수 있게 합니다.

"Effect": "Deny"

Effect 요소의 값이 Deny인 문에서는 특정 리소스에 대한 액세스를 제한하거나 SCP가 효력을 발휘하는 조건을 정의할 수도 있습니다.

다음 예제는 거부 문에서 조건 키를 사용하는 방법을 보여줍니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

SCP에서 이 문은 Amazon EC2 인스턴스가 t2.micro로 설정되지 않은 경우 영향받는 계정(SCP가 계정 자체에 연결된 계정 또는 계정을 포함한 조직 루트 또는 OU에 연결된 계정)이 Amazon EC2 인스턴스를 시작하는 것을 금지하는 가드레일을 설정합니다. 이 작업을 허용하는 IAM 정책이 계정에 연결되어 있더라도 SCP에 의해 생성된 가드레일이 이를 금지합니다.

ActionNotAction 요소

각 문은 다음 중 하나를 포함해야 합니다.

  • 허용 및 거부 문에서, Action 요소.

  • 거부 문에서만(Effect 요소의 값이 Deny인 경우), Action 또는 NotAction 요소.

Actionor NotAction 요소의 값은 명령문에 의해 허용되거나 거부되는 AWS 서비스 및 작업을 식별하는 문자열 목록 (JSON 배열) 입니다.

각 문자열은 서비스의 소문자 약자("s3", "ec2", "iam" 또는 "organizations" 등) 뒤에 콜론이 오고 그 뒤에 해당 서비스의 작업이 붙는 형태로 구성됩니다. Action 및 NotAction은 대/소문자를 구분하며, 각 서비스의 문서에 표시된 그대로 입력해야 합니다. 일반적으로 각 단어는 첫 글자만 대문자로, 나머지는 소문자로 입력합니다. 예를 들면 "s3:ListAllMyBuckets"입니다.

SCP에서 별표(*) 또는 물음표(?) 와 같은 와일드카드 문자도 사용할 수도 있습니다.

  • 이름의 일부를 공유하는 여러 작업을 일치시키려면 별표(*)를 와일드카드로 사용하십시오. "s3:*" 값은 Amazon S3 서비스의 모든 작업을 의미합니다. "ec2:Describe*" 값은 "Describe"로 시작하는 EC2 작업에만 대응합니다.

  • 단일 문자를 일치시키려면 물음표(?) 와일드카드를 사용하십시오.

참고

SCP에서 Action 또는 NotAction 요소의 와일드카드 문자 (*) 및 (?)는 단독으로 또는 문자열 끝에만 사용할 수 있습니다. 문자열 처음이나 중간에는 표시할 수 없습니다. 따라서 "servicename:action*"은 유효하지만 "servicename:*action""servicename:some*action"은 SCP에서 유효하지 않습니다.

AWS Organizations SCP와 IAM 권한 정책에서 지원하는 모든 서비스 및 작업의 목록은 IAM 사용 설명서의 AWS 서비스에 대한 작업, 리소스 및 조건 키를 참조하십시오.

자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: 작업IAM JSON 정책 요소:를 참조하십시오. NotAction

Action 요소 예제

다음은 계정 관리자가 계정의 EC2 인스턴스에 대한 권한 설명, 시작, 중단, 중지를 위임하게 하는 문이 포함된 SCP를 보여주는 예제입니다. 이 예제는 허용 목록의 예입니다. 허용 목록은 기본 Allow * 정책이 연결되지 않아 기본적으로 권한이 묵시적으로 거부되는 때에 유용합니다. 기본 Allow * 정책이 다음과 같은 정책이 연결된 루트, OU 또는 계정에 여전히 연결돼 있다면, 해당 정책은 영향을 주지 못하게 됩니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

다음 예제는 연결된 계정에서 사용하지 않으려는 서비스에 대해 액세스를 거부하는 방법을 보여 줍니다. 기본 "Allow *" SCP가 모든 OU와 루트에 여전히 연결돼 있다고 가정합니다. 이 예제 정책은 연결 계정에 있는 계정 관리자가 IAM, Amazon EC2, Amazon RDS 서비스에 대해 어떤 권한도 위임하지 못하게 합니다. 이러한 권한을 거부하는 다른 연결된 정책이 없는 한, 다른 서비스의 모든 작업을 위임할 수 있습니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

NotAction 요소 예제

다음 예는 NotAction 요소를 사용하여 정책의 영향에서 AWS 서비스를 제외하는 방법을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

이 설명문을 사용하면 IAM 작업을 사용하는 경우를 제외하고 영향을 받는 계정은 지정된 AWS 리전작업을 수행하는 것으로 제한됩니다.

Resource 요소

Effect 요소의 값이 Allow인 문에서는 SCP의 Resource 요소에 "*"만 지정할 수 있습니다. 개별 Amazon 리소스 이름(ARN) 리소스를 지정할 수 없습니다.

리소스 요소에서 별표(*) 또는 물음표(?)와 같은 와일드카드 문자를 사용할 수도 있습니다.

  • 이름의 일부를 공유하는 여러 작업을 일치시키려면 별표(*)를 와일드카드로 사용하십시오.

  • 단일 문자를 일치시키려면 물음표(?) 와일드카드를 사용하십시오.

Effect 요소의 값이 Deny인 문에서는 다음 예제와 같이 개별 ARN을 지정하는 것이 가능합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

이 SCP는 영향받는 계정의 IAM 사용자 및 역할이 조직 내 모든 계정에 생성된 공통 관리 IAM 역할을 변경하지 못하게 제한합니다.

자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: 리소스를 참조하세요.

Condition 요소

SCP에서 거부 문에 Condition 요소를 지정할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

이 SCP는 나열된 서비스의 작업을 제외하고 eu-central-1eu-west-1 리전 외부의 작업에 대한 액세스를 거부합니다.

자세한 정보는 IAM 사용 설명서IAM JSON 정책 요소: 조건을 참조하세요.

지원되지 않는 요소

다음 요소는 SCP에서 지원되지 않습니다.

  • Principal

  • NotPrincipal

  • NotResource