指定した AMI を参照しているリソースを識別します。 - Amazon Elastic Compute Cloud

指定した AMI を参照しているリソースを識別します。

指定した Amazon マシンイメージ (AMI) を参照する AWS リソースは、AMI がパブリックかプライベートか、または誰が所有しているかに関係なく識別できます。この可視性により、リソースが最新の準拠 AMI を使用することが保証されます。

主な利点

AMI の参照をチェックすると、次のことに役立ちます。

  • アカウントでの AMI の使用を監査します。

  • 特定の AMI が参照されている場所を確認します。

  • リソースを更新して最新の AMI を参照することでコンプライアンスを維持します。

 

サポートされるリソース

AMI の参照は以下でチェックできます。

  • EC2インスタンス

  • 起動テンプレート

  • SSM パラメータ

  • Image Builder のイメージレシピ

  • Image Builder コンテナレシピ

AMI 参照チェックの仕組み

基本オペレーション

AMI 参照チェックを実行する際は、以下の手順を実行します。

  • 確認する AMI を指定します。

  • スキャンするリソースタイプを選択します。

  • 指定した AMI を参照するリソースのリストを受け取ります。

リソースタイプの選択

コンソールで、スキャンするリソースタイプを選択します。

CLI では、次の CLI パラメータのいずれかまたは両方を使用して、スキャンするリソースタイプを指定します。

  • IncludeAllResourceTypes: サポートされているすべてのリソースタイプをスキャンします。

  • ResourceTypes: 指定したリソースタイプをスキャンします。

応答の範囲設定

ResourceTypes パラメータを使用して ResourceTypeOptions の値をカスタマイズすることで、EC2 インスタンスと起動テンプレートの応答範囲を指定できます。コンソールと IncludeAllResourceTypes パラメータはどちらもデフォルトのオプション値を使用します。ResourceTypesIncludeAllResourceTypes を一緒に使用すると、ResourceTypes オプション値がデフォルトよりも優先されます。

デフォルト値を以下に示します。

リソースタイプ 範囲オプション (OptionName 目的 OptionValue とコンソールのデフォルト値
EC2インスタンス state-name インスタンスの状態でフィルタリングする pendingrunningshutting-downterminatedstoppingstopped (すべての状態)
起動テンプレート version-depth 確認する起動テンプレートのバージョンの数を指定します (最新バージョンから開始)。 10 (最新バージョン)

必要な IAM 許可

DescribeImageReferences API を使用して、指定された AMI を参照するリソースを特定するには、リソースを記述するために次の IAM アクセス許可が必要です。

  • ec2:DescribeInstances

  • ec2:DescribeLaunchTemplates

  • ec2:DescribeLaunchTemplateVersions

  • ssm:DescribeParameters

  • ssm:GetParameters

  • imagebuilder:ListImageRecipes

  • imagebuilder:ListContainerRecipes

  • imagebuilder:GetContainerRecipe

DescribeImageReferences API を使用するための IAM ポリシーの例

次のポリシー例では、DescribeImageReferences API を使用するアクセス許可を付与します。これには、EC2 インスタンス、起動テンプレート、Systems Manager パラメータ、Image Builder イメージレシピ、Image Builder コンテナレシピを記述するアクセス許可が含まれます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeImageReferences", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "ssm:DescribeParameters", "ssm:GetParameters", "imagebuilder:ListImageRecipes", "imagebuilder:ListContainerRecipes", "imagebuilder:GetContainerRecipe" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "ec2-images.amazonaws.com" ] } } } ] }
重要

自分でポリシーを作成する代わりに、AWS マネージドポリシー AmazonEC2ImageReferencesAccessPolicy を使用することを強くお勧めします。必要なアクセス許可のみを提供するカスタム IAM ポリシーを作成するには時間と専門知識が必要で、新しいリソースタイプが利用可能になったときに更新が必要になります。

AmazonEC2ImageReferencesAccessPolicy マネージドポリシー:

  • DescribeImageReferences API を使用するために必要なすべてのアクセス許可を付与します (EC2 インスタンス、起動テンプレート、Systems Manager パラメータ、Image Builder コンテナとイメージレシピを記述するためのアクセス許可が含まれます)。

  • 利用可能になった新しいリソースタイプを自動的にサポートします (IncludeAllResourceTypes パラメータを使用する場合、特に重要です)。

AmazonEC2ImageReferencesAccessPolicy ポリシーは IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。

このポリシーに含まれるアクセス許可を確認するには、「AWS マネージドポリシーリファレンス」の「AmazonEC2ImageReferencesAccessPolicy」を参照してください。

AMI の参照を確認する手順

次の手順を使用して、指定した AMI を参照している AWS リソースを特定します。

Console
指定した AMI を参照するリソースを識別するには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで [AMI] を選択してください。

  3. 参照をチェックする 1 つまたは複数の AMI を選択します。

  4. [アクション][AMI の使用状況][参照先リソースを表示] の順に選択します。

  5. [選択した AMI を参照しているリソースを表示] ページで次の操作を実行します。

    1. [リソースタイプ] で 1 つ以上のリソースタイプを選択します。

    2. [リソースの表示] を選択します。

  6. [選択した AMI を参照するリソース] セクションが表示されます。リストには、指定された AMI を参照するリソースが表示されます。各行には、以下に関する情報が表示されます。

    • [AMI ID] – 参照されている AMI の ID。

    • [リソースタイプ] – AMI を参照しているリソースのリソースタイプ。

    • [リソース ID] – AMI を参照しているリソースの ID。

AWS CLI
特定のリソースタイプの AMI 参照を確認するには

--resource-types パラメータで describe-image-references コマンドを使用します。次の例では、EC2 インスタンス(インスタンスの状態による範囲指定)、起動テンプレート (最新の 20 個の起動テンプレートバージョンによる範囲指定)、その他の特定のリソースタイプをチェックします。

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --resource-types \ 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]' \ 'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=[20]}]' \ 'ResourceType=ssm:Parameter' \ 'ResourceType=imagebuilder:ImageRecipe' \ 'ResourceType=imagebuilder:ContainerRecipe'

以下は出力の例です。

{ "ImageReferences": [ { "ImageId": "ami-0abcdef1234567890", "ResourceType": "ec2:Instance", "Arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" }, { "ImageId": "ami-1234567890abcdef0", "ResourceType": "ec2:LaunchTemplate", "Arn": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-1234567890abcdef0" } ] }
サポートされているすべてのリソースタイプの AMI 参照を確認するには

--include-all-resource-types パラメータで describe-image-references コマンドを使用します。

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --include-all-resource-types
サポートされているすべてのリソースタイプと特定のオプションの AMI 参照を確認するには

--include-all-resource-types--resource-types の両方のパラメータで describe-image-references コマンドを使用します。この例では、実行中または保留中のインスタンスに対する EC2 インスタンスの応答範囲を指定しながら、すべてのリソースタイプをチェックします。

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --include-all-resource-types \ --resource-types 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]'
PowerShell
特定のリソースタイプの AMI 参照を確認するには

-ResourceType パラメータで Get-EC2ImageReference コマンドレットを使用します。次の例では、EC2 インスタンス(インスタンスの状態による範囲指定)、起動テンプレート (最新の 20 個の起動テンプレートバージョンによる範囲指定)、その他の特定のリソースタイプをチェックします。

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -ResourceType @( @{ ResourceType = 'ec2:Instance' ResourceTypeOptions = @( @{ OptionName = 'state-name' OptionValues = @('running', 'pending') } ) }, @{ ResourceType = 'ec2:LaunchTemplate' ResourceTypeOptions = @( @{ OptionName = 'version-depth' OptionValues = @('20') } ) }, @{ ResourceType = 'ssm:Parameter' }, @{ ResourceType = 'imagebuilder:ImageRecipe' }, @{ ResourceType = 'imagebuilder:ContainerRecipe' } )
サポートされているすべてのリソースタイプの AMI 参照を確認するには

-IncludeAllResourceTypes パラメータで Get-EC2ImageReference コマンドレットを使用します。

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -IncludeAllResourceTypes
サポートされているすべてのリソースタイプと特定のオプションの AMI 参照を確認するには

-IncludeAllResourceTypes-ResourceType の両方のパラメータで Get-EC2ImageReference コマンドレットを使用します。この例では、実行中または保留中のインスタンスに対する EC2 インスタンスの応答範囲を指定しながら、すべてのリソースタイプをチェックします。

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -IncludeAllResourceTypes ` -ResourceType @( @{ ResourceType = 'ec2:Instance' ResourceTypeOptions = @( @{ OptionName = 'state-name' OptionValues = @('running', 'pending') } ) } )