使用 AWS re:Post 即表示您同意 AWS re:Post 使用條款

如何在 RunInstances 的 IAM 政策具有標籤型限制時,透過 CloudFormation 建立 Amazon EC2 執行個體?

1 分的閱讀內容
0

我想要透過 AWS CloudFormation 建立 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。我的 RunInstances 的 AWS Identity and Access Management (IAM) 政策具有標籤型限制。

解決方法

AWS::EC2::Instance 資源的「標籤」屬性不會延伸至您透過 CloudFormation 建立的磁碟區。如果與使用者或角色相關聯的 IAM 政策具有對磁碟區標籤的限制,則您會收到下列錯誤: "You are not authorized to perform this operation."

若要將標籤透過 CloudFormation 傳遞至 ec2:CreateVolume,您必須在 CloudFormation 範本的 AWS::EC2::LaunchTemplate 資源中定義標籤。

若要設定此組態,請完成下列步驟:

  1. 在堆疊中定義啟動範本資源,並將 IAM 政策和 ResourceType 需要的標籤設定為磁碟區
    這是您可以使用的程式碼的其中一個範例:

    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 呼叫的標記需求。

AWS 官方
AWS 官方已更新 1 個月前