CloudFormation에 대한 ID 기반 정책 샘플 - AWS 권장 가이드

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

CloudFormation에 대한 ID 기반 정책 샘플

이 섹션에는 CloudFormation에서 권한을 부여하고 권한을 거부하는 방법을 보여주는 ID 기반 정책 샘플이 포함되어 있습니다. 이러한 샘플 정책을 사용하여 최소 권한 원칙을 준수하는 자체 정책 설계를 시작할 수 있습니다.

CloudFormation별 작업 및 조건 목록은 Actions, resources, and condition keys for AWS CloudFormationAWS CloudFormation 조건을 참조하세요. 조건과 함께 사용할 리소스 유형 목록은 AWS 리소스 및 속성 유형 참조를 확인하세요.

보기 액세스 허용

보기 액세스는 CloudFormation에 대한 최소 권한 액세스 유형입니다. 이러한 종류의 정책은 AWS 계정의 모든 CloudFormation 스택을 보려는 IAM 위탁자에게 적합할 수 있습니다. 다음 정책 샘플은 계정에 있는 CloudFormation 스택의 세부 정보를 볼 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources" ], "Resource": "*" } ] }

템플릿을 기반으로 스택 생성 허용

다음 샘플 정책에서는 IAM 위탁자가 특정 Amazon Simple Storage Service(Amazon S3) 버킷에 저장된 CloudFormation 템플릿만 사용하여 스택을 생성할 수 있도록 허용합니다. 버킷 이름은 my-CFN-templates입니다. 승인된 템플릿을 이 버킷에 업로드할 수 있습니다. 정책의 cloudformation:TemplateUrl 조건 키는 IAM 위탁자가 다른 템플릿을 사용하여 스택을 생성하지 못하도록 방지합니다.

중요

IAM 위탁자가 이 S3 버킷에 대한 읽기 전용 액세스 권한을 갖도록 허용합니다. 이렇게 하면 IAM 위탁자가 승인된 템플릿을 추가, 제거 또는 수정하지 못하게 방지할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "StringLike": { "cloudformation:TemplateUrl": "https:// my-CFN-templates.s3.amazonaws.com/*" } } } ] }

스택 업데이트 또는 삭제 거부

비즈니스 크리티컬 AWS 리소스를 프로비저닝하는 특정 CloudFormation 스택을 보호하기 위해 해당 특정 스택에 대한 업데이트 및 삭제 작업을 제한할 수 있습니다. 이러한 작업은 소수의 지정된 IAM 위탁자에 대해서만 허용하고 환경의 다른 IAM 위탁자에 대해서는 작업을 거부할 수 있습니다. 다음 정책 문은 특정 AWS 리전 및 AWS 계정에서 특정 CloudFormation 스택을 업데이트하거나 삭제할 수 있는 권한을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>" } ] }

이 정책 문은 us-east-1 AWS 리전 및 123456789012 AWS 계정에 있는 MyProductionStack CloudFormation 스택을 업데이트하거나 삭제할 수 있는 권한을 거부합니다. 스택 ID는 CloudFormation 콘솔에서 확인할 수 있습니다. 다음은 사용 사례에 맞게 이 명령문의 Resource 요소를 수정하는 방법에 대한 몇 가지 예제입니다.

  • 이 정책의 Resource 요소에서 여러 CloudFormation 스택 ID를 추가할 수 있습니다.

  • arn:aws:cloudformation:us-east-1:123456789012:stack/*를 사용하여 IAM 위탁자가 us-east-1 AWS 리전 및 123456789012 계정에 있는 스택을 업데이트하거나 삭제하지 못하도록 할 수 있습니다.

이 명령문을 포함해야 하는 정책을 결정하는 것이 중요합니다. 다음 정책에 이 명령문을 추가할 수 있습니다.

  • IAM 위탁자에게 연결된 ID 기반 정책 - 이 정책에 명령문을 추가하면 특정 IAM 위탁자가 특정 CloudFormation 스택을 생성하거나 삭제하는 것이 제한됩니다.

  • IAM 위탁자에게 연결된 권한 경계 - 이 정책에 명령문을 배치하면 권한 가드레일이 생성됩니다. 둘 이상의 IAM 위탁자가 특정 CloudFormation 스택을 생성하거나 삭제하는 것을 제한하지만 환경의 모든 위탁자를 제한하지는 않습니다.

  • 계정, 조직 단위 또는 조직에 연결된 SCP - 이 정책에 명령문을 배치하면 권한 가드레일이 생성됩니다. 대상 계정, 조직 단위 또는 조직의 모든 IAM 위탁자가 특정 CloudFormation 스택을 생성하거나 삭제하지 못하도록 제한합니다.

    그러나 권한이 있는 위탁자인 IAM 위탁자 한 명 이상의 CloudFormation 스택 업데이트 또는 삭제를 허용하지 않으면 필요한 경우이 스택을 통해 프로비저닝된 리소스를 변경할 수 없습니다. 사용자 또는 개발 파이프라인(권장)은 이 권한이 있는 위탁자를 수임할 수 있습니다. 제한을 SCP로 배포하려면 대신 다음 정책 명령문을 사용하는 것이 좋습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>", "Condition": { "ArnNotLike": { "aws:PrincipalARN": [ "<ARN of the allowed privilege IAM principal>" ] } } } ] }

    이 명령문에서 Condition 요소는 SCP에서 제외되는 IAM 위탁자를 정의합니다. 이 명령문은 IAM 위탁자의 ARN이 Condition 요소의 ARN과 일치하지 않는 한 CloudFormation 스택을 업데이트하거나 삭제할 수 있는 IAM 위탁자 권한을 거부합니다. aws:PrincipalARN 조건 키는 목록을 수락합니다. 즉, 환경에 필요한 경우 제한에서 둘 이상의 IAM 위탁자를 제외할 수 있습니다. CloudFormation 리소스 수정을 방지하는 유사한 SCP는 SCP-CLOUDFORMATION-1(GitHub)을 참조하세요.