Identificar seus recursos que referenciam AMIs específicas
É possível identificar seus recursos da AWS que referenciam imagens de máquina da Amazon (AMIs) específicas, independentemente de as AMIs serem públicas ou privadas ou de quem as possui. Essa visibilidade ajuda você a garantir que seus recursos usem as mais recentes AMIs compatíveis.
Benefícios principais
A verificação das referências de AMIs ajuda para que você:
-
Audite o uso de AMIs em sua conta.
-
Verifique onde as AMIs específicas estão sendo referenciadas.
-
Mantenha a conformidade atualizando seus recursos para referenciar as AMIs mais recentes.
Recursos compatíveis
As referências de AMIs podem ser verificadas em:
Como funcionam as verificações de referência de AMIs
Operação básica
Ao executar uma verificação de referência de AMIs:
-
Especifique quais AMIs devem ser verificadas.
-
Escolha quais tipos de recursos serão verificados.
-
Receba uma lista de seus recursos que referenciam AMIs específicas.
Seleção do tipo de recurso
No console, você seleciona os tipos de recursos a serem verificados.
Na CLI, você especifica os tipos de recursos a serem verificados usando um ou os dois dos seguintes parâmetros da CLI:
Definir o escopo de respostas
É possível definir o escopo de respostas para instâncias do EC2 e modelos de inicialização personalizando os valores de ResourceTypeOptions usando o parâmetro ResourceTypes. Tanto o console quanto o parâmetro IncludeAllResourceTypes usam valores de opção padrão. Quando ResourceTypes e IncludeAllResourceTypes são usados juntos, os valores das opções de ResourceTypes têm precedência sobre os padrões.
Os seguintes valores padrão são usados:
| Tipo de recurso |
Opção de escopo (OptionName) |
Finalidade |
Valores padrão para OptionValue e o console |
| Instâncias do EC2 |
state-name |
Filtrar por estado da instância |
pending, running, shutting-down, terminated, stopping, stopped (todos os estados) |
| Modelos de execução |
version-depth |
Especifique o número de versões do modelo de inicialização a serem verificadas (começando pela versão mais recente) |
10 (versões mais recentes) |
Permissões obrigatórias do IAM
Para usar a API DescribeImageReferences para identificar seus recursos que referenciam AMIs específicas, você precisa das seguintes permissões do IAM para descrever os recursos:
-
ec2:DescribeInstances
-
ec2:DescribeLaunchTemplates
-
ec2:DescribeLaunchTemplateVersions
-
ssm:DescribeParameters
-
ssm:GetParameters
-
imagebuilder:ListImageRecipes
-
imagebuilder:ListContainerRecipes
-
imagebuilder:GetContainerRecipe
Exemplo de política do IAM para usar a API DescribeImageReferences
O exemplo de política a seguir concede a você as permissões para usar a API DescribeImageReferences, que inclui as permissões para descrever instâncias do EC2, modelos de inicialização, parâmetros do Systems Manager, fórmulas de imagens do Image Builder e fórmulas de contêineres do 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"
]
}
}
}
]
}
É altamente recomendável usar a política gerenciada AmazonEC2ImageReferencesAccessPolicy da AWS em vez de criar a política você mesmo. Criar uma política do IAM personalizada que forneça somente as permissões necessárias requer tempo e experiência, e exigirá atualizações à medida que novos tipos de recursos forem disponibilizados.
A política gerenciada AmazonEC2ImageReferencesAccessPolicy:
-
Concede todas as permissões necessárias para usar a API DescribeImageReferences, que inclui as permissões para descrever instâncias do EC2, modelos de inicialização, parâmetros do Systems Manager e fórmulas de imagens e de contêineres do Image Builder.
-
É automaticamente compatível com novos tipos de recursos à medida que ficam disponíveis (especialmente importante ao usar o parâmetro IncludeAllResourceTypes).
É possível anexar a política AmazonEC2ImageReferencesAccessPolicy às identidades do IAM (usuários, grupos e perfis).
Para visualizar as permissões incluídas nessa política, consulte AmazonEC2ImageReferencesAccessPolicy na Referência de políticas gerenciadas pela AWS.
Etapas para verificar as referências de AMIs
Use os procedimentos a seguir para identificar quais dos seus recursos da AWS estão referenciando AMIs específicas.
- Console
-
Para identificar recursos referenciando AMIs específicas
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione AMIs.
-
Selecione uma ou mais AMIs para verificar as referências.
-
Escolha Ações, Uso de AMIs, Visualizar recursos referenciados.
-
Na página Visualizar recursos referenciando AMIs selecionadas:
-
Em Tipos de recursos, selecione um ou mais tipos de recursos.
-
Escolha Visualizar recursos.
-
A seção Recursos referenciando AMIs selecionadas é exibida. A lista exibe os recursos que referenciam AMIs específicas. Cada linha fornece as seguintes informações:
-
ID da AMI: o ID da AMI referenciada.
-
Tipo de recurso: o tipo de recurso do recurso que referencia a AMI.
-
ID do recurso: o ID do recurso que referencia a AMI.
- AWS CLI
-
Para verificar as referências de AMIs para tipos de recursos específicos
Use o comando describe-image-references com o parâmetro --resource-types. O exemplo a seguir verifica as instâncias do EC2 (definição do escopo por estado da instância), modelos de inicialização (considerando as 20 versões mais recentes de modelos de inicialização) e outros tipos de recursos específicos.
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'
O seguinte é um exemplo de saída.
{
"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"
}
]
}
Para verificar as referências de AMIs para todos os tipos de recursos compatíveis
Use o comando describe-image-references com o parâmetro --include-all-resource-types.
aws ec2 describe-image-references \
--image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
--include-all-resource-types
Para verificar as referências de AMIs para todos os tipos de recursos compatíveis e opções específicas
Use o comando describe-image-references com os parâmetros --include-all-resource-types e --resource-types. Este exemplo verifica todos os tipos de recursos ao definir o escopo da resposta das instâncias do EC2 para as instâncias em execução ou pendentes.
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
-
Para verificar as referências de AMIs para tipos de recursos específicos
Use o cmdlet Get-EC2ImageReference com o parâmetro -ResourceType. O exemplo a seguir verifica as instâncias do EC2 (definição do escopo por estado da instância), modelos de inicialização (considerando as 20 versões mais recentes de modelos de inicialização) e outros tipos de recursos específicos.
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'
}
)
Para verificar as referências de AMIs para todos os tipos de recursos compatíveis
Use o cmdlet Get-EC2ImageReference com o parâmetro -IncludeAllResourceTypes.
Get-EC2ImageReference `
-ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
-IncludeAllResourceTypes
Para verificar as referências de AMIs para todos os tipos de recursos compatíveis e opções específicas
Use o cmdlet Get-EC2ImageReference com os parâmetros -IncludeAllResourceTypes e -ResourceType. Este exemplo verifica todos os tipos de recursos ao definir o escopo da resposta das instâncias do EC2 para as instâncias em execução ou pendentes.
Get-EC2ImageReference `
-ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
-IncludeAllResourceTypes `
-ResourceType @(
@{
ResourceType = 'ec2:Instance'
ResourceTypeOptions = @(
@{
OptionName = 'state-name'
OptionValues = @('running', 'pending')
}
)
}
)