本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
確定參考指定 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 參數,來指定待掃描的資源類型:
回應範圍
您可使用 ResourceTypes 參數來自訂 ResourceTypeOptions 值,藉此限制 EC2 執行個體與啟動範本的回應範圍。主控台與 IncludeAllResourceTypes 參數皆使用預設選項值。若 ResourceTypes 與 IncludeAllResourceTypes 一起使用,ResourceTypes 選項值會優先於預設值。
下面為預設值:
| Resource Type (資源類型) |
範圍選項 (OptionName) |
用途 |
OptionValue 與 主控台的預設值 |
| EC2 執行個體 |
state-name |
依據執行個體狀態篩選 |
pending、running、shutting-down、terminated、stopping、stopped (所有狀態) |
| 啟動範本 |
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"
]
}
}
}
]
}
檢查 AMI 參考的步驟
使用下列程序來識別哪些 AWS 資源正在參考指定的 AMIs。
- Console
-
確定參考指定 AMI 的資源
-
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在導覽窗格中,選擇 AMI。
-
選取一個或多個要檢查參考的 AMI。
-
請選擇動作、AMI 用量、檢視參考的資源。
-
在檢視參考所選 AMI 的資源頁面:
-
對於資源類型,請選取一個或多個資源類型。
-
請選擇檢視資源。
-
參考所選 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')
}
)
}
)