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

최종 업데이트 날짜: 2020년 10월 15일

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

간략한 설명

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

AWS CloudFormation에서 AWS::EC2::Instance 리소스를 사용하여 EC2 인스턴스를 생성할 때 AWS CloudFormation은 RunInstancesCreateTags의 API 2개를 호출합니다. RunInstances는 인스턴스를 생성하고, CreateTags는 인스턴스가 생성된 후 필요한 태그를 적용합니다. AWS CloudFormation를 사용한 RunInstances 요청은 태그를 지원하지 않지만 이 API는 태그를 지원합니다. RunInstances 요청에 태그가 포함되어 있기 때문에 IAM 태그 기반 제한이 충족되지 않고 오류 메시지가 표시됩니다. 오류 메시지는 “You are not authorized to perform this operation”입니다.

참고: AWS CloudFormation은 단독 요청(즉, RunInstances API 호출에 대한 요청)에서 태그를 사용한 인스턴스 생성을 지원하지 않습니다.

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

해결 방법

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

  RequiredTagsLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateData:
        TagSpecifications:
          - ResourceType: instance
            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: instance
            Tags:
              - Key: Env
                Value: Dev

3.    시작 템플릿에 IAM 정책에 필요한 모든 필수 태그가 있는지 확인합니다.

IAM 정책에 볼륨 태그에 대한 제한이 있는 경우 시작 템플릿의 Type: AWS::EC2::LaunchTemplate 섹션에 제한을 포함합니다. 그런 다음 ResourceTypevolume으로 설정합니다. 예를 들면 다음과 같습니다.

 TagSpecifications:
   - ResourceType: volume
     Tags:
       - Key: Env
         Value: Dev

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


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?