

# Identifique sus recursos haciendo referencia a las AMI especificadas
<a name="ec2-ami-references"></a>

Puede identificar los recursos de AWS que hacen referencia a Imágenes de máquina de Amazon (AMI) especificadas, independientemente de si las AMI son públicas o privadas o de quién es su propietario. Esta visibilidad ayuda a garantizar que sus recursos utilicen las AMI compatibles más recientes.

**Ventajas principales**

Comprobar las referencias de AMI le ayuda a:
+ Auditar el uso de las AMI en su cuenta.
+ Compruebe dónde se hace referencia a las AMI específicas.
+ Mantener el cumplimiento actualizando sus recursos para que hagan referencia a las AMI más recientes.

 

**Topics**
+ [Recursos admitidos](#ec2-ami-references-supported-resources)
+ [Cómo funcionan las comprobaciones de referencia de la AMI](#how-ami-references-works)
+ [Permisos de IAM necesarios](#ami-references-required-permissions)
+ [Pasos para comprobar las referencias de la AMI](#ami-reference-procedures)

## Recursos admitidos
<a name="ec2-ami-references-supported-resources"></a>

Las referencias de AMI se pueden comprobar en:
+ instancias de EC2
+ Plantillas de inicialización
+ Parámetros de SSM
+ Recetas de imágenes de Generador de Imágenes
+ Recetas de contenedor de Generador de Imágenes

## Cómo funcionan las comprobaciones de referencia de la AMI
<a name="how-ami-references-works"></a>

**Funcionamiento básico**

Al realizar una comprobación de referencia de la AMI, usted:
+ Especifique qué AMI desea comprobar.
+ Elija los tipos de recursos que desee analizar.
+ Reciba una lista de sus recursos que hacen referencia a las AMI especificadas.

**Selección del tipo de recurso**

En la consola, seleccione los tipos de recursos que se van a analizar.

En la CLI, especifique los tipos de recursos que se van a escanear mediante uno o ambos de los siguientes parámetros de la CLI:
+ `IncludeAllResourceTypes`: escanea todos los tipos de recursos admitidos.
+ `ResourceTypes`: escanea los tipos de recursos especificados.

**Alcance de la respuesta**

Puede determinar el alcance de la respuesta para las instancias de EC2 y las plantillas de inicialización personalizando los valores de `ResourceTypeOptions` mediante el parámetro `ResourceTypes`. Tanto la consola como el parámetro `IncludeAllResourceTypes` utilizan valores de opción predeterminados. Cuando se `ResourceTypes` y `IncludeAllResourceTypes` utilizan juntos, los valores de las opciones de `ResourceTypes` tienen prioridad sobre los valores predeterminados.

Se usan los siguientes valores predeterminados:


| Tipo de recurso | Opción de alcance (`OptionName`) | Finalidad | Valores predeterminados para `OptionValue` y la consola | 
| --- | --- | --- | --- | 
| instancias de EC2 | state-name | Filtrar por estado de instancia | pending, running, shutting-down, terminated, stopping, stopped (todos los estados) | 
| Plantillas de inicialización | version-depth | Especifique el número de versiones de la plantilla de inicialización que desee comprobar (empezando por la versión más reciente) | 10 (las versiones más recientes) | 

## Permisos de IAM necesarios
<a name="ami-references-required-permissions"></a>

Para usar la API DescribeImageReferences para identificar los recursos que hacen referencia a determinadas AMI, necesita los siguientes permisos de IAM para describir los recursos:
+ `ec2:DescribeInstances`
+ `ec2:DescribeLaunchTemplates`
+ `ec2:DescribeLaunchTemplateVersions`
+ `ssm:DescribeParameters`
+ `ssm:GetParameters`
+ `imagebuilder:ListImageRecipes`
+ `imagebuilder:ListContainerRecipes`
+ `imagebuilder:GetContainerRecipe`

**Ejemplo de política de IAM para usar la API DescribeImageReferences**  
El siguiente ejemplo de política le concede los permisos para usar la API DescribeImageReferences, que incluye los permisos para describir las instancias de EC2, las plantillas de inicialización, los parámetros de Systems Manager, las recetas de imágenes de Image Builder y las recetas de contenedores de 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"
					]
				}
			}
		}
	]
}
```

------

**importante**  
Le recomendamos encarecidamente que utilice la política administrada deAWS, [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html), en lugar de crearla usted mismo. Crear una política de IAM personalizada que proporcione solo los permisos necesarios requiere tiempo y experiencia, y requerirá actualizaciones a medida que haya nuevos tipos de recursos disponibles.  
La política administrada `AmazonEC2ImageReferencesAccessPolicy`:  
Otorga todos los permisos necesarios para usar la API DescribeImageReferences (incluidos los permisos para describir las instancias de EC2, las plantillas de inicialización, los parámetros de Systems Manager y las recetas de contenedores e imágenes de Image Builder).
Admite automáticamente nuevos tipos de recursos a medida que están disponibles (lo que es especialmente importante cuando se utiliza el parámetro `IncludeAllResourceTypes`).
Puede asociar la política `AmazonEC2ImageReferencesAccessPolicy` a sus identidades de IAM (usuarios, grupos y roles).   
Para ver los permisos incluidos en esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) en la *Referencia de la política administrada de AWS*.

## Pasos para comprobar las referencias de la AMI
<a name="ami-reference-procedures"></a>

Utilice los siguientes procedimientos para identificar cuáles de sus recursos de AWS hacen referencia a las AMI especificadas.

------
#### [ Console ]

**Identificación de los recursos que hacen referencia a las AMI especificadas**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **AMIs**.

1. Seleccione una o más AMI para comprobar las referencias.

1. Elija **Acciones**, **Uso de AMI**, **Ver recursos referenciados**.

1. En la página **Ver los recursos que hacen referencia a las AMI seleccionadas**:

   1. En **Tipos de recursos**, seleccione uno o más tipos de recursos.

   1. Seleccione **Ver recursos**.

1. Aparece la sección **Recursos que hacen referencia a las AMI seleccionadas**. La lista muestra los recursos que hacen referencia a las AMI especificadas. Cada fila proporciona la siguiente información:
   + **ID de la AMI**: el ID de la AMI a la que se hace referencia.
   + **Tipo del recurso**: el tipo de recurso del recurso que hace referencia a la AMI.
   + **ID del recurso**: el ID del recurso que hace referencia a la AMI.

------
#### [ AWS CLI ]

**Para comprobar las referencias de AMI de tipos de recursos específicos**  
Utilice el comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) con el parámetro `--resource-types`. En el siguiente ejemplo, se comprueban las instancias de EC2 (el ámbito se basa en el estado de la instancia), las plantillas de inicialización (se basa en las 20 versiones más recientes de la plantilla de inicialización) y otros 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'
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "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 comprobar las referencias de AMI de todos los tipos de recursos compatibles**  
Utilice el comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) con el parámetro `--include-all-resource-types`.

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --include-all-resource-types
```

**Para comprobar las referencias de AMI de todos los tipos de recursos compatibles y las opciones específicas**  
Utilice el comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) con los parámetros `--include-all-resource-types` y `--resource-types`. En este ejemplo, se comprueban todos los tipos de recursos y, al mismo tiempo, se limita la respuesta de las instancias de EC2 a las instancias en ejecución o pendientes.

```
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 comprobar las referencias de AMI de tipos de recursos específicos**  
Utilice el cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) con el parámetro `-ResourceType`. En el siguiente ejemplo, se comprueban las instancias de EC2 (el ámbito se basa en el estado de la instancia), las plantillas de inicialización (se basa en las 20 versiones más recientes de la plantilla de inicialización) y otros 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 comprobar las referencias de AMI de todos los tipos de recursos compatibles**  
Utilice el cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) con el parámetro `-IncludeAllResourceTypes`.

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -IncludeAllResourceTypes
```

**Para comprobar las referencias de AMI de todos los tipos de recursos compatibles y las opciones específicas**  
Utilice el cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) con los parámetros `-IncludeAllResourceTypes` y `-ResourceType`. En este ejemplo, se comprueban todos los tipos de recursos y, al mismo tiempo, se limita la respuesta de las instancias de EC2 a las instancias en ejecución o pendientes.

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

------