

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

# IaC를 사용하여 "필수 태그 키" 적용
<a name="enforce-required-tag-keys-iac"></a>

태그 정책은 코드형 인프라(IaC) 배포 전반에서 일관된 태그 지정을 유지하는 데 도움이 됩니다. “필수 태그 키”를 사용하면 Terraform CloudFormation및 Pulumi와 같은 IaC 도구를 통해 생성된 모든 리소스에 조직에서 정의한 필수 태그가 포함되도록 할 수 있습니다.

이 기능은 리소스를 생성하기 전에 조직의 태그 정책을 기준으로 IaC 배포를 확인합니다. 배포에 필수 태그가 없는 경우 개발 팀에 경고하거나 배포를 완전히 방지하도록 IaC 설정을 구성할 수 있습니다. 이 선제적 접근 방식은 나중에 수동 수정을 요구하지 않고 리소스가 생성되는 순간부터 태그 지정 규정 준수를 유지합니다. 적용은 단일 태그 정책 정의를 사용하여 여러 IaC 도구에서 작동하므로 조직에서 사용하는 각 도구에 대해 별도의 태그 지정 규칙을 구성할 필요가 없습니다.

**Topics**
+ [를 사용하여 적용 CloudFormation](#enforce-with-cloudformation)
+ [Terraform으로 적용](#enforce-with-terraform)
+ [Pulumi로 적용](#enforce-with-pulumi)

## 를 사용하여 적용 CloudFormation
<a name="enforce-with-cloudformation"></a>

**참고**  
에서 필수 태그 키를 적용하려면 태그 정책에서 리소스 유형에 필요한 태그를 지정 CloudFormation해야 합니다. 자세한 내용은 ["필수 태그 키" 보고](orgs_manage_policies_tag-policies-report-tagging-compliance.md#reporting-required-tag-key) 섹션을 참조하세요.

 ** AWS다음을 위한 실행 역할 설정::TagPolicies::TaggingComplianceValidator 후크** 

`AWS::TagPolicies::TaggingComplianceValidator` 후크를 활성화하기 전에 후크가 AWS 서비스에 액세스하는 데 사용하는 실행 역할을 생성해야 합니다. 역할에는 다음과 같은 신뢰 정책이 연결되어 있어야 합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "resources.cloudformation.amazonaws.com",
                    "hooks.cloudformation.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole"
            ]
        }
    ]
}
```

실행 역할에는 최소한 다음 권한이 있는 역할 정책도 있어야 합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "tag:ListRequiredTags"
            ],
            "Resource": "*"
        }
    ]
}
```

퍼블릭 확장을 위한 실행 역할 설정에 대한 자세한 내용은 CloudFormation 사용 설명서의 [IAM 권한을 사용하여 실행 역할 구성 및 퍼블릭 확장 액세스를 위한 신뢰 정책을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-execution-role) 참조하세요.

 ** AWS::TagPolicies::TaggingComplianceValidator 후크 활성화** 

**중요**  
계속하기 전에 후크 작업에 필요한 권한이 있는지 확인하고 CloudFormation 콘솔에서 사전 예방적 제어를 확인합니다. 자세한 내용은 [ CloudFormation 후크에 대한 IAM 권한 부여를 참조하세요](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/grant-iam-permissions-for-hooks.html).

태그 정책을 업데이트한 후에는 필요한 태그 지정 규정 준수를 적용하려는 모든 AWS 계정 및 리전에서 `AWS::TagPolicies::TaggingComplianceValidator` 후크를 활성화해야 합니다.

이 AWS관리형 후크는 다음 두 가지 모드로 구성할 수 있습니다.
+  **경고 모드**: 배포를 진행하도록 허용하지만 필수 태그가 누락된 경우 경고를 생성합니다.
+  **실패 모드**: 필수 태그가 누락된 배포를 차단합니다.

 AWS CLI를 사용하여 후크를 활성화하려면

```
aws cloudformation activate-type \
    --type HOOK \
    --type-name AWS::TagPolicies::TaggingComplianceValidator \
    --execution-role-arn arn:aws:iam::123456789012:role/MyHookExecutionRole \
    --publisher-id aws-hooks \
    --region us-east-1
```

```
aws cloudformation set-type-configuration \
  --configuration '{"CloudFormationConfiguration":{"HookConfiguration":{"HookInvocationStatus": "ENABLED", "FailureMode": "WARN", "TargetOperations": ["STACK"], "Properties":{}}}}' \
  --type-arn "arn:aws:cloudformation:us-east-1:123456789012:type/hook/AWS-TagPolicies-TaggingComplianceValidator" \
  --region us-east-1
```

를 대상 AWS 리전`region`으로 바꾸고 경고 모드를 원하는 `"FailureMode":"WARN"` 경우를 `"FailureMode":"FAIL"`로 변경합니다.

 ** CloudFormation StackSets를 사용하여 여러 계정 및 리전에서 AWS::TagPolicies::TaggingComplianceValidator 후크 활성화** 

 AWS 계정이 여러 개인 조직의 경우 AWS CloudFormation StackSets를 사용하여 모든 계정과 리전에서 태깅 규정 준수 후크를 동시에 활성화할 수 있습니다.

CloudFormation StackSets를 사용하면 단일 작업으로 여러 계정 및 리전에 동일한 CloudFormation 템플릿을 배포할 수 있습니다. 이 접근 방식을 사용하면 각 계정에서 수동으로 구성할 필요 없이 AWS 조직 전체에서 일관된 태그 지정을 적용할 수 있습니다.

이를 위해 CloudFormation StackSets를 사용하려면:

1. 태그 지정 규정 준수 후크를 활성화하는 CloudFormation 템플릿 생성

1.  CloudFormation StackSets를 사용하여 템플릿을 배포하여 조직 단위 또는 특정 계정을 대상으로 지정

1. 적용을 활성화하려는 모든 리전 지정

 CloudFormation StackSets 배포는 지정된 모든 계정 및 리전에서 활성화 프로세스를 자동으로 처리하여 조직 전체에서 균일한 태그 지정 규정 준수를 보장합니다. 서비스 관리형StackSets를 사용하여 조직에 CloudFormation 후크를 배포하는 방법을 알아보려면이 [AWS 블로그](https://aws.amazon.com/blogs/devops/deploy-cloudformation-hooks-to-an-organization-with-service-managed-stacksets/)를 참조하세요. CloudFormation StackSets 

 * CloudFormation StackSets를 사용하여 아래 CloudFormation 템플릿을 배포하여 조직의 계정에 대해 AWS::TagPolicies::TaggingComplianceValidator 후크를 활성화합니다.*

**중요**  
이 후크는 StackHook로만 작동합니다. 리소스 후크로 사용할 때는 효과가 없습니다.

```
Resources:
  # Activate the AWS-managed hook type
  HookTypeActivation:
    Type: AWS::CloudFormation::TypeActivation
    Properties:
        AutoUpdate: True
        PublisherId: "AWS"
        TypeName: "AWS::TagPolicies::TaggingComplianceValidator"
  
  # Configure the hook
  HookTypeConfiguration:
    Type: AWS::CloudFormation::HookTypeConfig
    DependsOn: HookTypeActivation
    Properties:
      TypeName: "AWS::TagPolicies::TaggingComplianceValidator"
      TypeArn: !GetAtt HookTypeActivation.Arn
      Configuration: !Sub |
        {
          "CloudFormationConfiguration": {
            "HookConfiguration": {
              "TargetStacks": "ALL",
              "TargetOperations": ["STACK"],
              "Properties": {},
              "FailureMode": "Warn",
              "TargetFilters": {
                "Actions": [
                    "CREATE",
                    "UPDATE"
                ]}
            }
          }
        }
```

**참고**  
 CloudFormation 후크 실행에 대한 자세한 내용은 [계정에서 사전 예방적 제어 기반 후크 활성화를 참조하세요](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/proactive-controls-hooks-activate-hooks.html).

## Terraform으로 적용
<a name="enforce-with-terraform"></a>

Terraform에서 필수 태그 키를 적용하려면 Terraform AWS 공급자를 6.22.0 이상으로 업데이트하고 공급자 구성에서 태그 정책 검증을 활성화해야 합니다. 구현 세부 정보 및 구성 예제는 [ 태그 정책 적용에 대한 Terraform AWS Provider 설명서를](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/tag-policy-compliance) 참조하세요.

## Pulumi로 적용
<a name="enforce-with-pulumi"></a>

Pulumi에서 필수 태그 키를 적용하려면 Pulumi Cloud에서 태그 정책 보고 정책 팩을 활성화하고 태그 정책 읽기 권한으로 IAM 역할을 구성해야 합니다. 구현 세부 정보 및 구성 예제는 [ 태그 정책 적용에 대한 Pulumi 설명서를](https://www.pulumi.com/docs/insights/policy/integrations/aws-organizations-tag-policies/#aws-organizations-tag-policies) 참조하세요.