대상 계정 게이트를 사용하여 StackSet 배포 실패 방지 - AWS CloudFormation

대상 계정 게이트를 사용하여 StackSet 배포 실패 방지

계정 게이트는 옵션 기능으로, CloudFormation이 해당 계정에서 StackSet 작업을 시작하기 전에 대상 계정이 특정 요구 사항을 충족하는지 검증할 수 있게 해줍니다. 이 검증은 사전 조건 확인 역할을 하는 AWS Lambda 함수를 통해 수행됩니다.

계정 게이트의 일반적인 예제는 대상 계정에 활성 또는 해결되지 않은 CloudWatch 경보가 없는지 확인하는 것입니다. CloudFormation은 대상 계정에서 스택 작업을 시작할 때마다 Lambda 함수를 간접적으로 호출하며, 함수가 SUCCEEDED 코드를 반환하는 경우에만 계속됩니다. Lambda 함수가 FAILED 상태를 반환하면 CloudFormation은 요청된 작업을 계속하지 않습니다. Lambda 함수가 구성된 계정 게이트가 없는 경우 CloudFormation은 확인을 건너뛰고 작업을 계속합니다.

대상 계정에서 계정 게이트 확인에 실패하면 실패한 작업은 지정된 내결함성 수 또는 스택 비율에 반영됩니다. 내결함성에 대한 자세한 내용은 StackSet 작업 옵션을 확인하십시오.

계정 게이트는 StackSets 작업에 대해서만 사용할 수 있습니다. 이 기능은 StackSet 외부의 다른 CloudFormation 작업에는 사용할 수 없습니다.

요구 사항

계정 게이트 확인을 위해서는 다음 요구 사항을 충족해야 합니다.

  • 이 기능을 사용하려면 Lambda 함수의 이름이 AWSCloudFormationStackSetAccountGate여야 합니다.

  • AWSCloudFormationStackSetExecutionRole에는 Lambda 함수를 간접적으로 호출할 권한이 필요합니다. 이 권한이 없으면 CloudFormation이 계정 게이트 확인을 건너뛰고 스택 작업을 계속 진행합니다.

  • 계정 게이트가 작동하려면 대상 계정에 Lambda InvokeFunction 권한이 추가되어야 합니다. 대상 계정 신뢰 정책에 관리자 계정과의 신뢰 관계가 있어야 합니다. 다음은 Lambda InvokeFunction 권한을 부여하는 정책 설명의 예입니다.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "*" } ] }

Lambda 함수 생성을 위한 CloudFormation 템플릿

다음 샘플 템플릿을 사용하여 Lambda AWSCloudFormationStackSetAccountGate 함수를 생성합니다. 이러한 템플릿 중 하나를 사용하여 새 스택을 생성하려면 CloudFormation 콘솔에서 스택 생성 섹션을 참조하세요.

템플릿 위치

설명

https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateSucceeded.yml

SUCCEEDED 상태를 반환하는 Lambda 계정 게이트 함수를 구현하는 스택을 생성합니다.

https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateFailed.yml

FAILED 상태를 반환하는 Lambda 계정 게이트 함수를 구현하는 스택을 생성합니다.