本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
識別參考指定 AMIs的資源
您可以識別參考指定 Amazon Machine Image (AMIs) AWS 的資源,無論 AMIs 是公有還是私有,還是擁有者。此可見性可協助您確保您的資源使用最新的合規 AMIs。
主要優點
檢查 AMI 參考可協助您:
-
稽核您帳戶中 AMIs的使用情形。
-
檢查正在參考特定 AMIs的位置。
-
更新 資源以參考最新的 AMIs以維持合規性。
支援的資源
可以簽入 AMI 參考:
-
EC2 執行個體
-
啟動範本
-
SSM 參數
-
映像建置器映像配方
-
映像建置器容器配方
AMI 參考檢查的運作方式
基本操作
當您執行 AMI 參考檢查時,您會:
-
指定要檢查AMIs。
-
選擇要掃描的資源類型。
-
接收參考指定 AMIs的資源清單。
資源類型選取
在 主控台中,您可以選取要掃描的資源類型。
在 CLI 中,您可以使用下列其中一個或兩個 CLI 參數來指定要掃描的資源類型:
回應範圍
您可以使用 ResourceTypes
參數自訂ResourceTypeOptions
值,以限制 EC2 執行個體和啟動範本的回應範圍。主控台和IncludeAllResourceTypes
參數都使用預設選項值。當 ResourceTypes
和 IncludeAllResourceTypes
一起使用時,ResourceTypes
選項值優先於預設值。
以下是預設值:
資源類型 |
範圍選項 (OptionName ) |
用途 |
OptionValue 和 主控台的預設值 |
EC2 執行個體 |
state-name |
依執行個體狀態篩選 |
pending 、running 、shutting-down 、terminated 、stopping 、 stopped (所有狀態) |
啟動範本 |
version-depth |
指定要檢查的啟動範本版本數量 (從最新版本開始) |
10 (最新版本) |
所需的 IAM 許可
若要使用 DescribeImageReferences API 來識別參考指定 AMIs的資源,您需要下列 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 參數、映像建置器映像配方和映像建置器容器配方的許可。
- 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
-
識別參考指定 AMIs的資源
-
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在導覽窗格中,選擇 AMIs (AMI)。
-
選取要檢查參考AMIs。
-
選擇動作、AMI 用量、檢視參考的資源。
-
在參考所選 AMIs檢視資源頁面上:
-
針對資源類型,選取一或多個資源類型。
-
選擇檢視資源。
-
參考所選 AMIs的資源區段隨即出現。清單會顯示參考指定 AMIs的資源。每一列都提供下列資訊:
-
AMI ID – 參考 AMI 的 ID。
-
資源類型 – 參考 AMI 的資源類型。
-
資源 ID – 參考 AMI 的資源 ID。
- AWS CLI
-
檢查特定資源類型的 AMI 參考
使用 describe-image-references 命令搭配 --resource-types
參數。下列範例會檢查 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 參考
使用 describe-image-references 命令搭配 --include-all-resource-types
參數。
aws ec2 describe-image-references \
--image-ids ami-0abcdef1234567890
ami-1234567890abcdef0
\
--include-all-resource-types
檢查所有支援的資源類型和特定選項的 AMI 參考
使用 describe-image-references 命令搭配 --include-all-resource-types
和 --resource-types
參數。此範例會檢查所有資源類型,同時將 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 參考
使用 Get-EC2ImageReference cmdlet 搭配 -ResourceType
參數。下列範例會檢查 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 參考
使用 Get-EC2ImageReference cmdlet 搭配 -IncludeAllResourceTypes
參數。
Get-EC2ImageReference `
-ImageId 'ami-0abcdef1234567890
', 'ami-1234567890abcdef0
' `
-IncludeAllResourceTypes
檢查所有支援的資源類型和特定選項的 AMI 參考
使用 Get-EC2ImageReference cmdlet 搭配 -IncludeAllResourceTypes
和 -ResourceType
參數。此範例會檢查所有資源類型,同時將 EC2 執行個體的回應範圍限定為執行中或待定的執行個體。
Get-EC2ImageReference `
-ImageId 'ami-0abcdef1234567890
', 'ami-1234567890abcdef0
' `
-IncludeAllResourceTypes `
-ResourceType @(
@{
ResourceType = 'ec2:Instance'
ResourceTypeOptions = @(
@{
OptionName = 'state-name'
OptionValues = @('running'
, 'pending'
)
}
)
}
)