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 リソースの Tags プロパティは、CloudFormation 経由で作成されたボリュームに対しては拡張されません。ユーザーまたはロールに関連付けられている IAM ポリシーでボリュームタグが制限されている場合、次のエラーが表示されます。 「この操作の実行は許可されていません」

タグを CloudFormation 経由で ec2:CreateVolume に渡すには、CloudFormation テンプレートの AWS::EC2::LaunchTemplate リソースでタグを定義する必要があります。

この構成を作成するには、次の手順を実行します。

  1. IAM ポリシーに必要なタグおよび、volume に設定した 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ヶ月前
コメントはありません

関連するコンテンツ