確定參考指定 AMI 的資源 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

確定參考指定 AMI 的資源

您可以識別參考指定 Amazon Machine Image (AMIs) AWS 的資源,無論 AMIs 是公有還是私有,還是擁有者。此可見度有助您確認資源使用最新的合規 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 選項值會優先於預設值。

下面為預設值:

Resource Type (資源類型) 範圍選項 (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 參考的步驟

使用下列程序來識別哪些 AWS 資源正在參考指定的 AMIs。

Console
確定參考指定 AMI 的資源
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMI

  3. 選取一個或多個要檢查參考的 AMI。

  4. 請選擇動作AMI 用量檢視參考的資源

  5. 檢視參考所選 AMI 的資源頁面:

    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 參數並搭配 New-EC2Instance cmdlet。下面的範例將檢查 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 參數並搭配 New-EC2Instance cmdlet。

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -IncludeAllResourceTypes
檢查所有受支援資源類型與特定選項的 AMI 參考

請使用 -IncludeAllResourceTypes-ResourceType 參數並搭配 Get-EC2ImageReference cmdlet。此範例將檢查所有資源類型,同時將 EC2 執行個體的回應範圍限定為執行中或擱置中執行個體。

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