RunInstances에 대한 IAM 정책에 태그 기반 제한이 있는 경우 CloudFormation을 통해 Amazon EC2 인스턴스를 생성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 11월 1일

AWS CloudFormation을 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 만들고 싶습니다. 하지만 RunInstances에 대한 AWS Identity and Access Management(IAM) 정책에는 태그 기반 제한이 있습니다.

간략한 설명

CloudFormation에서 시작 템플릿을 사용하여 Amazon EC2 인스턴스를 생성할 수 있습니다.

AWS::EC2::Instance 리소스의 Tags 속성은 CloudFormation을 통해 생성된 볼륨까지 확장되지 않습니다. 사용자 또는 역할과 연결된 IAM 정책에 볼륨 태그에 대한 제한이 있는 경우 다음 오류가 발생합니다.

‘이 작업을 수행할 권한이 없습니다.’

CloudFormation을 통해 ec2:CreateVolume로 태그를 전달하려면 CloudFormation 템플릿의 AWS::EC2::LaunchTemplate 리소스에서 태그를 정의해야 합니다.

해결 방법

1.    IAM 정책에 필요한 태그를 사용하여 스택의 시작 템플릿을 정의합니다. 예를 들어, 다음과 같습니다.

RequiredTagsLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateData:
        TagSpecifications:
          - ResourceType: volume
            Tags:
              - Key: Env
                 Value: Dev

2.    시작 템플릿을 EC2 인스턴스 리소스에 연결합니다. 예를 들면 다음과 같습니다.

Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      LaunchTemplate:
        LaunchTemplateId: !Ref RequiredTagsLaunchTemplate
        Version: 1
      InstanceType: r4.xlarge
      .
      .
  RequiredTagsLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateData:
        TagSpecifications:
          - ResourceType: volume
            Tags:
              - Key: Env
                Value: Dev

3.    시작 템플릿에 필요한 태그가 모두 있는지 확인합니다.

중요: 스택을 생성하는 역할 또는 사용자에게 태그 제한 없이 시작 템플릿을 생성하고 사용할 수 있는 권한이 있는지 확인해야 합니다. aws:CalledVia 조건 키를 사용하여 CloudFormation API 호출에 대한 태깅 요구 사항을 면제하는 새 문을 생성할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?