AWS CloudFormation 후크 스택 수준 필터 - AWS CloudFormation

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

AWS CloudFormation 후크 스택 수준 필터

CloudFormation 후크에 스택 수준 필터를 추가하여 스택 이름 및 역할을 기반으로 특정 스택을 대상으로 지정할 수 있습니다. 이는 리소스 유형이 동일한 스택이 여러 개 있는 경우에 유용하지만 후크는 특정 스택을 위한 것입니다.

이 섹션에서는 이러한 필터의 작동 방식을 설명하고 따를 수 있는 예제를 제공합니다.

스택 수준 필터링이 없는 후크 구성의 기본 구조는 다음과 같습니다.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {} } } }

HookConfiguration 구문에 대한 자세한 내용은 섹션을 참조하세요후크 구성 스키마 구문 참조.

스택 수준 필터를 사용하려면 아래에 StackFilters 키를 추가합니다HookConfiguration.

StackFilters 키에는 필수 멤버가 하나 있고 선택적 멤버가 두 개 있습니다.

  • FilteringCriteria(필수)

  • StackNames (선택 사항)

  • StackRoles(선택 사항)

StackNames 또는 StackRoles 속성은 선택 사항입니다. 그러나 이러한 속성을 하나 이상 지정해야 합니다.

Cloud Control API 작업을 대상으로 하는 후크를 생성하면 모든 스택 수준 필터가 무시됩니다.

FilteringCriteria

FilteringCriteria는 필터링 동작을 지정하는 필수 파라미터입니다. ALL 또는 로 설정할 수 있습니다ANY.

  • ALL는 모든 필터가 일치하는 경우 후크를 호출합니다.

  • ANY는 일치하는 필터가 하나 있는 경우 후크를 호출합니다.

StackNames

하나 이상의 스택 이름을 후크 구성의 필터로 지정하려면 다음 JSON 구조를 사용합니다.

"StackNames": { "Include": [ "string" ], "Exclude": [ "string" ] }

다음 중 하나를 지정해야 합니다.

  • Include: 포함할 스택 이름 목록입니다. 이 목록에 지정된 스택만 후크를 호출합니다.

    • 유형: 문자열 배열

    • 최대 항목: 50

    • 최소 항목: 1

  • Exclude: 제외할 스택 이름 목록입니다. 여기에 나열된 스택을 제외한 모든 스택은 후크를 호출합니다.

    • 유형: 문자열 배열

    • 최대 항목: 50

    • 최소 항목: 1

IncludeExclude 배열의 각 스택 이름은 다음 패턴 및 길이 요구 사항을 준수해야 합니다.

  • 패턴: ^[a-zA-Z][-a-zA-Z0-9]*$

  • 최대 길이: 128

StackRoles

후크 구성에서 하나 이상의 IAM 역할을 필터로 지정하려면 다음 JSON 구조를 사용합니다.

"StackRoles": { "Include": [ "string" ], "Exclude": [ "string" ] }

다음 중 하나를 지정해야 합니다.

  • Include: 이러한 역할과 연결된 스택을 대상으로 하는 IAM 역할 ARNs의 목록입니다. 이러한 역할에서 시작된 스택 작업만 후크를 호출합니다.

    • 유형: 문자열 배열

    • 최대 항목: 50

    • 최소 항목: 1

  • Exclude: 제외하려는 스택의 IAM 역할 ARNs 목록입니다. 후크는 지정된 역할에 의해 시작된 스택을 제외한 모든 스택에서 호출됩니다.

    • 유형: 문자열 배열

    • 최대 항목: 50

    • 최소 항목: 1

IncludeExclude 배열의 각 스택 역할은 다음 패턴 및 길이 요구 사항을 준수해야 합니다.

  • 패턴: arn:.+:iam::[0-9]{12}:role/.+

  • 최대 길이: 256

IncludeExclude

각 필터(StackNamesStackRoles)에는 Include 목록과 Exclude 목록이 있습니다. 를 예로 들StackNamesInclude 목록에 지정된 스택에서만 후크가 호출됩니다. 스택 이름이 Exclude 목록에만 지정된 경우 후크는 Exclude 목록에 없는 스택에서만 호출됩니다. Include 및를 모두 지정하면 후크ExcludeInclude 목록에 있는 것이 아니라 Exclude 목록에 있는 것을 대상으로 합니다.

예를 들어 A, B, C, D라는 4개의 스택이 있다고 가정해 보겠습니다.

  • "Include": ["A","B"] 후크는 A와 B에서 호출됩니다.

  • "Exclude": ["B"] 후크는 A, C 및 D에서 호출됩니다.

  • "Include": ["A","B","C"], "Exclude": ["A","D"] 후크는 B와 C에서 호출됩니다.

  • "Include": ["A","B","C"], "Exclude": ["A”,"B","C"] 후크는 스택에서 호출되지 않습니다.

스택 수준 필터의 예

이 섹션에서는 AWS CloudFormation 후크에 대한 스택 수준 필터를 생성하는 데 따를 수 있는 예를 제공합니다.

예제 1: 특정 스택 포함

다음 예제에서는 Include 목록을 지정합니다. 후크는 stack-test-1, stack-test-2 및 라는 스택에서만 호출됩니다stack-test-3.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-1", "stack-test-2", "stack-test-3" ] } } } } }

예제 2: 특정 스택 제외

대신 스택 이름이 Exclude 목록에 추가되면 이름이 , stack-test-1 stack-test-2 또는이 아닌 스택에서 후크가 호출됩니다stack-test-3.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Exclude": [ "stack-test-1", "stack-test-2", "stack-test-3" ] } } } } }

예제 3: 포함 및 제외 결합

IncludeExclude 목록을 지정하지 않으면 Exclude 목록에 없는의 스택에서만 후크Include가 호출됩니다. 다음 예제에서는 후크가 에서만 호출됩니다stack-test-3.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-1", "stack-test-2", "stack-test-3" ], "Exclude": [ "stack-test-1", "stack-test-2" ] } } } } }

예제 4: 스택 이름과 역할을 ALL 기준과 결합

다음 후크에는 스택 이름 3개와 스택 역할 1개가 포함됩니다. FilteringCriteria는 로 지정되므로 ALL후크는 스택 이름과 스택 역할이 일치하는 스택에 대해서만 호출됩니다.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-1", "stack-test-2", "stack-test-3" ] }, "StackRoles": { "Include": ["arn:aws:iam::123456789012:role/hook-role"] } } } } }

예제 5: 스택 이름과 역할을 ANY 기준과 결합

다음 후크에는 스택 이름 3개와 스택 역할 1개가 포함됩니다. FilteringCriteria는 로 지정되므로 일치하는 스택 이름 또는 일치하는 스택 역할이 있는 스택에 대해 ANY후크가 호출됩니다.

{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ANY", "StackNames": { "Include": [ "stack-test-1", "stack-test-2", "stack-test-3" ] }, "StackRoles": { "Include": ["arn:aws:iam::123456789012:role/hook-role"] } } } } }