

# Imágenes de máquina de Amazon (AMI) en Amazon EC2
<a name="AMIs"></a>

Una imagen de máquina de Amazon (AMI) es una imagen que ofrece el software que se necesita para configurar y arrancar una instancia de Amazon EC2. Cada AMI tambien contiene una asignación de dispositivos de bloques que especifica los dispositivos de bloques que se deben asociar a las instancias que se lancen. Debe especificar una AMI al iniciar una instancia. La AMI debe ser compatible con el tipo de instancia que haya elegido para la instancia. Puede utilizar una AMI proporcionada por AWS, una AMI pública, una AMI que otra persona compartió con usted o una AMI que adquirió en AWS Marketplace.

Una AMI es específica para lo siguiente:
+ Región
+ Sistema operativo
+ Arquitectura del procesador
+ Tipo de volumen raíz
+ Tipo de virtualización

Cuando necesite varias instancias con la misma configuración, puede iniciarlas desde una misma AMI. Cuando necesite instancias con distintas configuraciones, puede utilizar distintas AMI para iniciarlas, como se muestra en el diagrama siguiente.

![\[Lance varias instancias desde una AMI.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/launch-from-ami.png)


Puede crear una AMI a partir de las instancias de Amazon EC2 y, a continuación, utilizarla para lanzar instancias con la misma configuración. Puede copiar una AMI a otra región de AWS y, a continuación, utilizarla para lanzar instancias en esa región. También puede compartir una AMI que haya creado con otras cuentas, para que puedan lanzar instancias con la misma configuración. Puede vender la AMI a través de AWS Marketplace.

**Topics**
+ [Características de las AMI](ComponentsAMIs.md)
+ [Buscar una AMI](finding-an-ami.md)
+ [AMI de pago en AWS Marketplace](paid-amis.md)
+ [Ciclo de vida de AMI](ami-lifecycle.md)
+ [Modos de arranque](ami-boot.md)
+ [Cifrado de AMI](AMIEncryption.md)
+ [AMI compartidas](sharing-amis.md)
+ [Supervisión de los eventos de las AMI](monitor-ami-events.md)
+ [Comprender la facturación de la AMI](ami-billing-info.md)
+ [Cuotas de IAM](ami-quotas.md)

# Tipos y características de AMI en Amazon EC2
<a name="ComponentsAMIs"></a>

Cuando lance una instancia, la AMI que elija debe ser compatible con el tipo de instancia que elija. Puede elegir la AMI que va a utilizar en función de las características siguientes:
+ [Región](using-regions-availability-zones.md)
+ Sistema operativo
+ Arquitectura del procesador
+ [Permisos de inicialización](#launch-permissions)
+ [Tipo de volumen raíz](#storage-for-the-root-device)
+ [Tipos de virtualización](#virtualization_types)

## Permisos de inicialización
<a name="launch-permissions"></a>

Los permisos de lanzamiento determinan quién puede usar una AMI para lanzar instancias. Puede entender los permisos de lanzamiento como una forma de [compartir una AMI](sharing-amis.md): al conceder estos permisos, comparte la AMI con otros usuarios. Solo el propietario de una AMI puede determinar su disponibilidad mediante la especificación de permisos de lanzamiento. Los permisos de inicialización se dividen en las categorías siguientes.


| Permiso de inicialización | Descripción | 
| --- | --- | 
| público | El propietario concede permisos de inicialización a todas las cuentas de AWS. | 
| explícito | El propietario concede permisos de inicialización a cuentas de AWS, organizaciones o unidades organizativas (OU) específicas. | 
| implícito | El propietario posee permisos de inicialización implícitos de una AMI. | 

Amazon y la comunidad de Amazon EC2 ofrecen una amplia selección de AMI públicas. Para obtener más información, consulte [Descripción del uso de las AMI compartidas en Amazon EC2](sharing-amis.md). Los desarrolladores podrían cobrar una tarifa por sus AMI. Para obtener más información, consulte [AMI de pago en AWS Marketplace para las instancias de Amazon EC2](paid-amis.md).

## Tipo de volumen raíz
<a name="storage-for-the-root-device"></a>

Todas las AMI están *basadas en Amazon EBS* o *basadas en Amazon S3*.
+ AMI basada en Amazon EBS: el volumen raíz de una instancia iniciada desde la AMI es un volumen de Amazon Elastic Block Store (Amazon EBS) creado a partir de una instantánea de Amazon EBS. Compatible con AMI de Linux y Windows.
+ AMI basada en Amazon S3: el volumen raíz de una instancia iniciada desde la AMI es un volumen de almacén de instancias creado a partir de una plantilla almacenada en Amazon S3. Solo es compatible con las AMI de Linux. Las AMI de Windows no admiten el almacén de instancias para el volumen raíz.

Para obtener más información, consulte [Volúmenes raíz para las instancias de Amazon EC2](RootDeviceStorage.md).

**nota**  
Las AMI basadas en Amazon S3 se consideran obsoletas y no se recomiendan para nuevos usos. Solo se admiten en los siguientes tipos de instancia más antiguos: C1, C3, D2, I2, M1, M2, M3, R3 y X1.

En la tabla siguiente se resumen las diferencias importantes a la hora de usar los dos tipos de AMI.


| Característica | AMI respaldada por Amazon EBS | AMI basada en Amazon S3 | 
| --- | --- | --- | 
| Volumen raíz | Volumen de EBS | Volumen de almacén de instancias | 
| Tiempo de arranque de una instancia | Normalmente menos de 1 minuto | Normalmente menos de 5 minutos | 
| Persistencia de datos  |  De manera predeterminada, el volumen raíz se elimina cuando la instancia finaliza.\$1 Los datos en cualquier otro volumen de EBS persisten después de la finalización de la instancia de manera predeterminada.  |  Los datos en cualquier volumen de almacenes de instancias se conservan solo durante el ciclo de vida de la instancia.  | 
| Estado detenido |  Puede estar en un estado detenido. Incluso cuando la instancia se detiene y no se ejecuta, el volumen raíz persiste en Amazon EBS.  |  No puede estar en el estado detenido; las instancias están ejecutándose o se han finalizado.  | 
| Modificaciones |  El tipo de instancia, el kernel, el disco de la RAM y los datos de usuario se pueden cambiar cuando la instancia está detenida.  |  Los atributos de instancia son invariables durante el ciclo de vida de una instancia.  | 
| Cargos |  Se cobra por el uso de la instancia, por el uso del volumen de EBS y por almacenar la AMI como una instantánea de EBS.  |  Se cobra por el uso de la instancia y por almacenar la AMI en Amazon S3.  | 
| Creación y agrupación de AMI | Utiliza un solo comando/llamada | Hay que instalarlo y utilizar herramientas de AMI | 

\$1De forma predeterminada, los volúmenes raíz de EBS tienen el indicador `DeleteOnTermination` establecido en `true`. Para obtener más información acerca de cómo cambiar este indicador para que el volumen se conserve hasta la finalización, consulte [Conserve el volumen raíz de Amazon EBS después de que la instancia de Amazon EC2 termina.](configure-root-volume-delete-on-termination.md).

\$1\$1Solo es compatible con `io2` Block Express de EBS. Para obtener más información, consulte [Volúmenes SSD de IOPS aprovisionadas (io2) Block Express](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html#io2-block-express) en la *Guía del usuario de Amazon EBS*.

# Identificación del tipo de volumen raíz determinado por la AMI
<a name="display-ami-root-device-type"></a>

La AMI que utiliza para lanzar una instancia de EC2 determina el tipo de volumen raíz. El volumen raíz de una instancia de EC2 es un volumen de EBS o un volumen del almacén de instancias.

Las [instancias basadas en Nitro](instance-types.md#instance-hypervisor-type) solo admiten volúmenes raíz de EBS. Los siguientes tipos de instancia de la generación anterior son los únicos tipos de instancia que admiten volúmenes raíz del almacén de instancias: C1, C3, D2, I2, M1, M2, M3, R3 y X1.

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

**Identificación del tipo de volumen raíz determinado por una AMI**

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, elija **AMI** y, a continuación, seleccione la AMI.

1. En la pestaña **Detalles**, verifique el valor de **Tipo de dispositivo raíz** de la siguiente manera:
   + `ebs`: las instancias iniciadas desde esta AMI obtendrán un volumen raíz de EBS.
   + `instance store`: las instancias iniciadas desde esta AMI obtendrán un volumen raíz del almacén de instancias.

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

**Identificación del tipo de volumen raíz determinado por una AMI**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) .

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].RootDeviceType
```

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

```
ebs
```

------
#### [ PowerShell ]

**Identificación del tipo de volumen raíz determinado por una AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image `
    -ImageId ami-0abcdef1234567890).RootDeviceType.Value
```

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

```
ebs
```

------

## Tipos de virtualización
<a name="virtualization_types"></a>

Las Imágenes de máquina de Amazon utilizan uno de los dos tipos de virtualización: paravirtual (PV) o máquina virtual de hardware (HVM). Las principales diferencias entre las AMI PV y HVM son el modo de arranque y si admiten extensiones de hardware especiales (CPU, red y almacenamiento) para mejorar su rendimiento. Las AMI de Windows son AMI de HVM.

En la siguiente tabla se comparan las AMI de HVM y PV.


| Característica | HVM | PV | 
| --- | --- | --- | 
| Descripción | Las AMI HVM se presentan con un conjunto de hardware totalmente virtualizado y se cierran ejecutando el Master Boot Record del dispositivo de bloques raíz de la imagen. Este tipo de virtualización ofrece la posibilidad de ejecutar un sistema operativo directamente en una máquina virtual sin ninguna modificación, como si se ejecutara en el propio hardware bare metal. El sistema host de Amazon EC2 emula una parte o todo el hardware subyacente que se presenta al invitado. | Las AMI PV arrancan con un cargador de arranque especial llamado PV-GRUB, que inicia el ciclo de arranque y, a continuación, carga en cadena el kernel especificado en el archivo menu.lst de la imagen. Los invitados paravirtuales pueden ejecutarse en hardware host que no tenga compatibilidad explícita para la virtualización. Para obtener más información sobre PV-GRUB y su utilización en Amazon EC2, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html). | 
| Tipos de instancias admitidas | Todos los tipos de instancia de la generación actual admiten AMI HVM. | Los siguientes tipos de instancia de generaciones anteriores admiten AMI PV: C1, C3, M1, M3, M2 y T1. Los tipos de instancia de la generación actual no admiten AMI PV. | 
| Compatibilidad para extensiones de hardware | Los invitados HVM pueden hacer uso de las extensiones de hardware que proporcionan acceso rápido al hardware subyacente en el sistema host. Deben usar redes mejoradas y procesamiento de GPU. A fin de transferir las instrucciones a los dispositivos especializados de red y GPU, el SO debe obtener acceso a la plataforma de hardware nativa y la virtualización HVM proporciona dicho acceso. Para obtener más información, consulte [Redes mejoradas en instancias de Amazon EC2](enhanced-networking.md). | No, no pueden aprovechar las extensiones de hardware especiales, como la red mejorada o el procesamiento de GPU. | 
| [Cómo encontrar](finding-an-ami.md) | Compruebe que el tipo de virtualización de la AMI esté configurado en hvm mediante la consola o el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). | Compruebe que el tipo de virtualización de la AMI esté configurado en paravirtual mediante la consola o el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). | 

**PV frente a HVM**  
Tradicionalmente, los invitados paravirtuales tenían un mejor desempeño en las operaciones de almacenamiento y redes que los invitados HVM porque podían hacer uso de controladores especiales para E/S que evitaban el costo adicional de tener que emular hardware de red y de disco, mientras que los invitados HVM tenían que traducir estas instrucciones en un hardware emulado. Actualmente, estos controladores PV están disponibles para invitados HVM, de forma que, si un sistema operativo no se puede transferir para ejecutarse en un entorno paravirtualizado, aún puede usar estos controladores para optimizar la E/S de las redes y el almacenamiento. Además, con los controladores PV para HVM, los invitados HVM obtienen el mismo rendimiento, o incluso mejor, que con los invitados paravirtuales.

# Búsqueda de una AMI que cumpla los requisitos para la instancia de EC2
<a name="finding-an-ami"></a>

Una AMI incluye los componentes y las aplicaciones, como el sistema operativo y el tipo de volumen raíz, necesarios para lanzar una instancia. Para lanzar una instancia, debe buscar una AMI que satisfaga sus necesidades.

Cuando seleccione una AMI, tenga en cuenta los siguientes requisitos que podría tener para las instancias que desea lanzar:
+ La región de AWS de la AMI como los id. de la AMI son exclusivos para cada región.
+ El sistema operativo (por ejemplo, Linux o Windows).
+ La arquitectura (por ejemplo, 32 bits, 64 bits o ARM de 64 bits).
+ El tipo de volumen raíz (por ejemplo, Amazon EBS o almacén de instancias).
+ El proveedor (por ejemplo, Amazon Web Services).
+ Software adicional (por ejemplo, SQL Server).

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

Puede seleccionar de la lista de AMI cuando utilice el asistente de inicialización de instancias, o puede buscar todas las AMI disponibles a través de la página de **Imágenes**.

**Para buscar una AMI de Inicio rápido mediante el asistente de inicialización de instancias**

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

1. En la barra de navegación, seleccione la región en la que se iniciarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación. Cada ID de AMI es exclusivo para cada región de AWS.

1. En el panel de la consola, elija **Iniciar instancia**.

1. En **Imágenes de aplicaciones y sistema operativo (imagen de máquina de Amazon)**, elija **Inicio rápido**, elija el sistema operativo de la instancia y, a continuación, en **Imagen de máquina de Amazon (AMI)**, seleccione una de las AMI más utilizadas que aparecen en la lista. Si no ve la AMI que necesita, puede elegir **Examinar más AMI** para navegar por el catálogo completo de AMI. Para obtener más información, consulte [Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)](ec2-instance-launch-parameters.md#liw-ami).

**Para buscar una AMI mediante la página de AMI**

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

1. En la barra de navegación, seleccione la región en la que se iniciarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación. Cada ID de AMI es exclusivo para cada región de AWS.

1. En el panel de navegación, elija **AMI**.

1. (Opcional) Utilice las opciones Filtrar y Buscar para acotar la lista de AMI que se muestran de modo que solo aparezcan las AMI que coincidan con sus criterios.

   Por ejemplo, para enumerar todas las AMI que proporciona AWS, seleccione **Imágenes públicas**. Después, utilice las opciones de búsqueda para acotar aún más la lista de AMI mostradas. Elija la barra **Buscar** y, en el menú, elija **Alias del propietario**, luego el operador **=** y luego el valor **amazon**. Para buscar las AMI que coincidan con una plataforma específica, por ejemplo, Linux o Windows, vuelva a seleccionar la barra de **búsqueda** para elegir **Plataforma**, luego el operador **=** y, por último, el sistema operativo de la lista proporcionada.

1. (Opcional) Elija el icono **Preferencias** para seleccionar los atributos de imagen que se van a mostrar, como el tipo de volumen raíz. Además, puede seleccionar una AMI de la lista y ver sus propiedades en la pestaña **Detalles**.

1. Antes de seleccionar una AMI, es importante que compruebe si está respaldada por un almacén de instancias o por Amazon EBS, y que usted es consciente de los efectos de esta diferencia. Para obtener más información, consulte [Tipo de volumen raíz](ComponentsAMIs.md#storage-for-the-root-device).

1. Para iniciar una instancia desde esta AMI, selecciónela y elija **iniciar instancia a partir de una imagen**. Para obtener información sobre el uso de la consola para iniciar una instancia, consulte [Inicialización de una instancia de EC2 mediante el asistente de inicialización de instancias de la consola](ec2-launch-instance-wizard.md). Si no está preparado para iniciar la instancia en ese momento, anote el ID de la AMI para usarlo más adelante.

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

Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para buscar una AMI que cumpla los requisitos. De forma predeterminada, este comando devuelve todas las AMI que son públicas, las que son de su propiedad y las que se comparten con usted.

**Búsqueda de una AMI de propiedad de Amazon**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) con la opción `--owners`.

```
aws ec2 describe-images --owners amazon
```

**Búsqueda de una AMI de Windows**  
Agregue el siguiente filtro para mostrar solo las AMI de Windows.

```
--filters "Name=platform,Values=windows"
```

**Búsqueda de una AMI respaldada por EBS**  
Agregue el siguiente filtro para mostrar solo las AMI respaldadas por Amazon EBS.

```
--filters "Name=root-device-type,Values=ebs"
```

------
#### [ PowerShell ]

Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) para buscar una AMI que cumpla los requisitos. De forma predeterminada, este cmdlet devuelve todas las AMI que son públicas, las que son de su propiedad o las que se comparten con usted.

**Búsqueda de una AMI de propiedad de Amazon**  
Utilice el comando [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) con el parámetro `-Owner`.

```
Get-EC2Image -Owner amazon
```

**Búsqueda de una AMI de Windows**  
Agregue el siguiente filtro para mostrar solo las AMI de Windows.

```
-Filter @{Name="platform"; Values="windows"}
```

Para obtener ejemplos adicionales, consulte [Find an Amazon Machine Image Using Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-ec2-get-amis.html) en la *Guía del usuario de Herramientas de AWS para PowerShell*.

------

**Recursos relacionados**

Para obtener más información sobre las AMI para un sistema operativo específico, consulte lo siguiente:
+ Amazon Linux 2023: [AL2023 en Amazon EC2](https://docs.aws.amazon.com/linux/al2023/ug/ec2.html) en la *Guía del usuario de Amazon Linux 2023*
+ Ubuntu: [Localizador de AMI de Amazon EC2](https://cloud-images.ubuntu.com/locator/ec2/) en el *sitio web de Canonical Ubuntu*
+ RHEL: [Imágenes de Red Hat Enterprise Linux (AMI) disponibles en Amazon Web Services (AWS)](https://access.redhat.com/solutions/15356) en el sitio web de Red Hat
+ Windows Server: [referencia de la AMI de Windows de AWS](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/windows-amis.html)

Para obtener información sobre las AMI a las que puede suscribirse en el AWS Marketplace, consulte [AMI de pago en AWS Marketplace para las instancias de Amazon EC2](paid-amis.md).

Para obtener información sobre cómo usar Systems Manager para ayudar a los usuarios a encontrar la AMI más reciente que deben usar al iniciar una instancia, consulte lo siguiente:
+ [Referencia de AMI a través de los parámetros de Systems Manager](using-systems-manager-parameter-to-find-AMI.md)
+ [Referencia de AMI a través de los parámetros de Systems Manager](finding-an-ami-parameter-store.md)

# Referencia de AMI a través de los parámetros de Systems Manager
<a name="using-systems-manager-parameter-to-find-AMI"></a>

Cuando inicia una instancia con el asistente de inicialización de instancias de EC2 en la consola de Amazon EC2, puede seleccionar una AMI de la lista o seleccionar un parámetro AWS Systems Manager que apunte a un ID de AMI (según se describe en esta sección). Si utiliza código de automatización para iniciar las instancias, puede especificar el parámetro de Systems Manager en lugar del ID de AMI.

Un parámetro de Systems Manager es un par clave-valor definido por el cliente que puede crear en el almacén de parámetros de Systems Manager. El almacén de parámetros proporciona un almacén central para externalizar los valores de configuración de la aplicación. Para obtener más información, consulte el [Almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) en la *Guía del usuario de AWS Systems Manager*.

Cuando cree un parámetro que apunte a un ID de AMI, asegúrese de especificar el tipo de datos como `aws:ec2:image`. Especificar este tipo de datos garantiza que, cuando se crea o modifica el parámetro, el valor del parámetro se valida como un ID de AMI. Para obtener más información, consulte [Compatibilidad con parámetros nativos para los ID de Imagen de máquina de Amazon](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html) en la *Guía del usuario de AWS Systems Manager*.

**Topics**
+ [Casos de uso](#systems-manager-parameter-use-case)
+ [Permisos](#systems-manager-permissions)
+ [Limitaciones](#AMI-systems-manager-parameter-limitations)
+ [Iniciar una instancia mediante un parámetro de Systems Manager](#systems-manager-parameter-launch-instance)

## Casos de uso
<a name="systems-manager-parameter-use-case"></a>

Cuando utiliza los parámetros de Systems Manager para apuntar a los ID de AMI, es más fácil para los usuarios seleccionar la AMI correcta cuando inician las instancias. Los parámetros de Systems Manager también pueden simplificar el mantenimiento del código de automatización.

**Más fácil para los usuarios**

Si necesita que las instancias se lancen con una AMI específica y si esa AMI se actualiza con regularidad, se recomienda que exija a los usuarios que seleccionen un parámetro de Systems Manager para encontrar la AMI. Exigir a los usuarios que seleccionen un parámetro de Systems Manager garantiza que se utilice la última AMI para iniciar instancias.

Por ejemplo, cada mes en su organización puede crear una nueva versión de su AMI que tenga los últimos parches de aplicaciones y sistema operativo. También requiere que los usuarios inicien instancias con la última versión de su AMI. Para asegurarse de que los usuarios utilizan la versión más reciente, puede crear un parámetro de Systems Manager (por ejemplo, `golden-ami`) que apunte al ID de AMI correcto. Cada vez que se crea una nueva versión de la AMI, se actualiza el valor del ID de la AMI en el parámetro para que siempre apunte a la AMI más reciente. No es necesario que los usuarios sepan sobre las actualizaciones periódicas de la AMI, ya que seleccionan el mismo parámetro de Systems Manager cada vez. Utilizar un parámetro de Systems Manager para su AMI les facilita seleccionar la AMI correcta para la inicialización de una instancia.

**Simplificar el mantenimiento del código de automatización**

Si utiliza código de automatización para iniciar las instancias, puede especificar el parámetro de Systems Manager en lugar del ID de AMI. Si se crea una versión nueva de la AMI, puede cambiar el valor del ID de la AMI en el parámetro para que apunte a la AMI más reciente. Cada vez que se crea una nueva versión de la AMI no tiene que modificarse el código de automatización que hace referencia al parámetro. Esto simplifica el mantenimiento de la automatización y ayuda a reducir los costos de implementación.

**nota**  
Las instancias en ejecución no se ven afectadas cuando se cambia el ID de la AMI al que apunta el parámetro de Systems Manager.

## Permisos
<a name="systems-manager-permissions"></a>

Si utiliza parámetros de Systems Manager que apuntan a los ID de AMI en el asistente de inicialización de instancias, debe agregar los siguientes permisos a la política de IAM:
+ `ssm:DescribeParameters`: concede permiso para ver y seleccionar parámetros de Systems Manager.
+ `ssm:GetParameters`: concede permiso para recuperar los valores de los parámetros de Systems Manager. 

También puede restringir el acceso a parámetros de Systems Manager específicos. Para obtener más información y políticas de IAM de ejemplo, consulte [Ejemplo: uso del asistente de inicialización de instancias de EC2](iam-policies-ec2-console.md#ex-launch-wizard).

## Limitaciones
<a name="AMI-systems-manager-parameter-limitations"></a>

Las AMI y los parámetros de Systems Manager son específicos de la región. Para utilizar el mismo nombre de parámetro de Systems Manager en regiones, cree un parámetro de Systems Manager en cada región con el mismo nombre (por ejemplo, `golden-ami`). En cada región, apunte con el parámetro de Systems Manager a una AMI de esa región.

Los nombres de los parámetros distinguen entre mayúsculas y minúsculas. Las barras diagonales inversas para el nombre del parámetro solo son necesarias cuando el parámetro forma parte de una jerarquía, por ejemplo, `/amis/production/golden-ami`. Puede omitir la barra invertida si el parámetro no forma parte de una jerarquía.

## Iniciar una instancia mediante un parámetro de Systems Manager
<a name="systems-manager-parameter-launch-instance"></a>

Cuando lance una instancia, en vez de especificar un ID de AMI, puede especificar un parámetro de Systems Manager que apunte a un ID de AMI.

Para especificar el parámetro mediante programación, utilice la siguiente sintaxis, donde `resolve:ssm` es el prefijo estándar y `parameter-name` es el nombre de parámetro único.

```
resolve:ssm:parameter-name
```

Los parámetros de Systems Manager tienen compatibilidad de versión. A cada iteración de un parámetro se le asigna un número de versión único. Puede hacer referencia a la versión del parámetro de la siguiente manera, donde `version` es el número de versión único. De forma predeterminada, se utiliza la última versión del parámetro cuando no se especifica ninguna versión.

```
resolve:ssm:parameter-name:version
```

Para iniciar una instancia con un parámetro público proporcionado por AWS, consulte [Referencia de AMI a través de los parámetros de Systems Manager](finding-an-ami-parameter-store.md).

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

**Búsqueda de una AMI con un parámetro de Systems Manager**

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

1. En la barra de navegación, seleccione la región en la que se iniciarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación.

1. En el panel de la consola, elija **Launch Instance (Iniciar instancia)**.

1. En **(Imágenes de aplicaciones y sistema operativo (imagen de máquina de Amazon)**, elija **Buscar más AMI**.

1. Elija el botón de flecha situado a la derecha de la barra de búsqueda y luego elija **Buscar por parámetro de Systems Manager**.

1. Para **Parámetro de Systems Manager**, seleccione un parámetro. El ID de AMI correspondiente aparece junto a **Actualmente se resuelve en**.

1. Elija **Buscar**. Las AMI que coinciden con el ID de AMI aparecen en la lista.

1. Seleccione la AMI de la lista y elija **Seleccionar**.

Para obtener más información sobre cómo iniciar una instancia con el asistente de inicialización de instancias, consulte [Inicialización de una instancia de EC2 mediante el asistente de inicialización de instancias de la consola](ec2-launch-instance-wizard.md).

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

**Lanzamiento de una instancia mediante un parámetro de Systems Manager**  
Utilice el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) con la opción `--image-id`. En este ejemplom se utiliza un parámetro de Systems Manager llamado **golden-ami**, que especifica un ID de AMI.

```
--image-id resolve:ssm:/golden-ami
```

Puede crear versiones de un parámetro de Systems Manager. En el ejemplo siguiente, se especifica la versión 2 del parámetro **golden-ami**.

```
--image-id resolve:ssm:/golden-ami:2
```

------
#### [ PowerShell ]

**Lanzamiento de una instancia mediante un parámetro de Systems Manager**  
Utilice el cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) con el parámetro `-ImageId`. En este ejemplom se utiliza un parámetro de Systems Manager llamado **golden-ami**, que especifica un ID de AMI.

```
-ImageId "resolve:ssm:/golden-ami"
```

Puede crear versiones de un parámetro de Systems Manager. En el ejemplo siguiente, se especifica la versión 2 del parámetro **golden-ami**.

```
-ImageId "resolve:ssm:/golden-ami:2"
```

------

# Referencia de AMI a través de los parámetros de Systems Manager
<a name="finding-an-ami-parameter-store"></a>

AWS Systems Manager proporciona parámetros públicos para las AMI públicas mantenidas por AWS. Puede utilizar los parámetros públicos al lanzar instancias para asegurarse de que utiliza las AMI más recientes. Por ejemplo, el parámetro público `/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64` está disponible en todas las regiones y siempre apunta a la versión más reciente de la AMI Amazon Linux 2023 para la arquitectura arm64 en una región determinada.

Los parámetros públicos están disponibles en las siguientes rutas:
+ **Linux** – `/aws/service/ami-amazon-linux-latest`
+ **Windows** – `/aws/service/ami-windows-latest`

Para obtener más información, consulte [Trabajar con parámetros públicos](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters.html) en la *Guía del usuario de AWS Systems Manager*.

## Enumeración de las AMI de Amazon Linux
<a name="list-ami-amazon-linux-latest"></a>

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

**Enumeración de las AMI de Linux en la región de AWS actual**  
Use el comando [get-parameters-by-path](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html). El valor del parámetro `--path` es específico para las AMI de Linux.

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-amazon-linux-latest \
    --query "Parameters[].Name"
```

------
#### [ PowerShell ]

**Enumeración de las AMI de Linux en la región de AWS actual**  
Use el cmdlet [Get-SSMParametersByPath](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMParametersByPath.html).

```
Get-SSMParametersByPath `
    -Path "/aws/service/ami-amazon-linux-latest" | `
    Sort-Object Name | Format-Table Name
```

------

## Enumeración de las AMI de Windows
<a name="list-ami-windows-latest"></a>

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

**Enumeración de las AMI de Windows en la región de AWS actual**  
Use el comando [get-parameters-by-path](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html). El valor del parámetro `--path` es específico para las AMI de Windows.

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-windows-latest \
    --query "Parameters[].Name"
```

------
#### [ PowerShell ]

**Enumeración de las AMI de Windows en la región de AWS actual**  
Use el cmdlet [Get-SSMParametersByPath](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMParametersByPath.html).

```
Get-SSMParametersByPath `
    -Path "/aws/service/ami-windows-latest" | `
    Sort-Object Name | Format-Table Name
```

------

## Lanzamiento de una instancia con un parámetro público
<a name="launch-instance-public-parameter"></a>

Para especificar el parámetro público en el lanzamiento de una instancia, use la siguiente sintaxis: `resolve:ssm:public-parameter`, donde `resolve:ssm` es el prefijo estándar y `public-parameter` es la ruta y el nombre del parámetro público.

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

**Para iniciar una instancia con un parámetro público**  
Utilice el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) con la opción `--image-id`. En este ejemplo, se utiliza el parámetro público de Systems Manager para el ID de imagen a fin de iniciar una instancia con la AMI de Amazon Linux 2023 más reciente

```
--image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
```

------
#### [ PowerShell ]

**Para iniciar una instancia con un parámetro público**  
Utilice el cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) con el parámetro `-ImageId`. En este ejemplo, se utiliza el parámetro público de Systems Manager para el ID de imagen a fin de iniciar una instancia con la AMI de Windows Server 2022 más reciente.

```
-ImageId "resolve:ssm:/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base"
```

------

Para obtener más ejemplos de parámetros de Systems Manager, consulte [Consulta de los últimos ID de AMI de Amazon Linux mediante el Almacén de parámetros de AWS Systems Manager](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/) y [Consulta de las últimas AMI de Windows mediante el Almacén de parámetros de AWS Systems Manager](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).

# AMI de pago en AWS Marketplace para las instancias de Amazon EC2
<a name="paid-amis"></a>

Una *AMI pagada* es una AMI que está a la venta en AWS Marketplace. AWS Marketplace es un almacenamiento en línea donde puede comprar software que se ejecuta en AWS; incluidas las AMI que se utilizan para iniciar la instancia de EC2. Las AMI de AWS Marketplace se organizan en categorías, como herramientas para desarrolladores, con el fin de permitirle encontrar productos que se adapten a sus necesidades. Para más información acerca de AWS Marketplace, vea el sitio web de [AWS Marketplace](https://aws.amazon.com/marketplace).

Puede adquirir AMI de un tercero en AWS Marketplace, como las AMI que se incluyen en los contratos de servicio de organizaciones como Red Hat. También puede crear una AMI y venderla a otros usuarios de Amazon EC2 en AWS Marketplace. La creación de una AMI segura y útil para el consumo público es un proceso bastante sencillo si se siguen unas directrices muy simples. Para obtener información acerca de cómo crear y utilizar AMI compartidas, consulte [Descripción del uso de las AMI compartidas en Amazon EC2](sharing-amis.md).

iniciar una instancia desde una AMI de pago es lo mismo que iniciarla desde cualquier otra AMI. No se requieren más parámetros. La instancia se paga de acuerdo con las tarifas que establece el propietario de la AMI, así como las tarifas de uso estándar de los servicios web relacionados; por ejemplo, la tarifa por hora de ejecutar un tipo de instancia m5.small en Amazon EC2. Podrían aplicarse impuestos adicionales. El propietario de la AMI de pago puede confirmar si una instancia concreta se lanzó utilizando la AMI de pago. 

**importante**  
Amazon DevPay ya no acepta nuevos vendedores o productos. AWS Marketplace es ahora la única plataforma de comercio electrónico unificada para la venta de software y servicios a través de AWS. Para obtener información acerca de cómo implementar y vender software desde AWS Marketplace, consulte [Selling in AWS Marketplace](https://aws.amazon.com/marketplace/partners/management-tour). AWS Marketplace admite las AMI respaldadas por Amazon EBS.

**Topics**
+ [Venta de una AMI en AWS Marketplace](#selling-your-ami)
+ [Buscar una AMI de pago](using-paid-amis-finding-paid-ami.md)
+ [Compra de una AMI de pago en AWS Marketplace](using-paid-amis-purchasing-paid-ami.md)
+ [Recuperación del código de producto de AWS Marketplace de la instancia](get-product-code.md)
+ [Uso del soporte de pago para las ofertas de AWS Marketplace compatibles](using-paid-amis-support.md)
+ [Facturas para AMI pagada y soportadas](#using-paid-amis-bills)
+ [Administrar las suscripciones de AWS Marketplace](marketplace-manage-subscriptions.md)

## Venta de una AMI en AWS Marketplace
<a name="selling-your-ami"></a>

Puede vender la AMI mediante AWS Marketplace. AWS Marketplace ofrece una experiencia de compra organizada. Además, AWS Marketplace también admite características de AWS como puede ser el caso de las AMI basadas en Amazon EBS, las instancias reservadas o las instancias de spot.

Para obtener información acerca de cómo vender la AMI en AWS Marketplace, consulte [Selling in AWS Marketplace](https://aws.amazon.com/marketplace/partners/management-tour). 

# Buscar una AMI de pago
<a name="using-paid-amis-finding-paid-ami"></a>

Una AMI de pago es una imagen de máquina de Amazon (AMI) disponible para comprar. Una AMI de pago también tiene un código de producto. Puede encontrar las AMI disponibles para comprar en AWS Marketplace.

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

**Búsqueda de una AMI de pago**

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, elija **AMIs**. 

1. Elija **Imágenes públicas** como primer filtro.

1. Realice una de las siguientes acciones:
   + Si sabe el código de producto, elija **Código de producto**, luego **=** e introduzca el código.
   + Si no conoce el código del producto, en la barra de búsqueda, especifique el siguiente filtro: **Alias del propietario=aws-marketplace**. Especifique filtros adicionales según sea necesario.

1. Guarde el ID de la AMI.

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

**Búsqueda de una AMI de pago**  
Utilice el siguiente comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images --owners aws-marketplace
```

La salida incluye un gran número de imágenes. Puede especificar filtros que le ayuden a determinar cuál es la AMI que necesita. Después de encontrar una AMI, especifique su ID en el siguiente comando para obtener el código de producto.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[*].ProductCodes[].ProductCodeId
```

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

```
[
    "cdef1234abc567def8EXAMPLE"
]
```

Si sabe el código de producto, puede filtrar los resultados por código de producto. Este ejemplo devuelve las AMI más recientes con el código de producto especificado.

```
aws ec2 describe-images \
    --filters "Name=product-code,Values=cdef1234abc567def8EXAMPLE" \
    --query "sort_by(Images, &CreationDate)[-1].[ImageId]"
```

------
#### [ PowerShell ]

**Búsqueda de una AMI de pago**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image -Owner aws-marketplace
```

La salida incluye un gran número de imágenes. Puede especificar filtros que le ayuden a determinar cuál es la AMI que necesita. Después de encontrar una AMI, especifique su ID en el siguiente comando para obtener el código de producto.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).ProductCodes
```

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

```
ProductCodeId             ProductCodeType
-------------             ---------------
cdef1234abc567def8EXAMPLE marketplace
```

Si sabe el código de producto, puede filtrar los resultados por código de producto. Este ejemplo devuelve las AMI más recientes con el código de producto especificado.

```
(Get-EC2Image -Owner aws-marketplace -Filter @{"Name"="product-code";"Value"="cdef1234abc567def8EXAMPLE"} | sort CreationDate -Descending | Select-Object -First 1).ImageId
```

------

# Compra de una AMI de pago en AWS Marketplace
<a name="using-paid-amis-purchasing-paid-ami"></a>

Debe registrarse para (comprar) una AMI de pago antes de iniciar una instancia de Amazon EC2 con la AMI.

Por lo general, el vendedor de la AMI de pago le presenta información acerca de la AMI, incluido su precio y un enlace donde puede comprarla. Cuando hace clic en el enlace, se le pide que inicie sesión en AWS primero y, a continuación, puede comprar la AMI.

## Comprar una AMI de pago mediante la consola
<a name="purchase-paid-ami-console"></a>

Puede comprar una AMI de pago utilizando el launch wizard de Amazon EC2. Para obtener más información, consulte [Inicialización de una instancia de Amazon EC2 desde una AMI de AWS Marketplace](launch-marketplace-console.md).

## Suscribirse a un producto mediante AWS Marketplace
<a name="subscribe-to-paid-ami"></a>

Para usar AWS Marketplace, debe tener una Cuenta de AWS. Para iniciar instancias desde los productos de AWS Marketplace, debe haberse registrado para utilizar el servicio de Amazon EC2 y haberse suscrito al producto desde el que inicia la instancia. Puede utilizar uno de los siguientes métodos para suscribirse a los productos de AWS Marketplace:
+ **Sitio web de AWS Marketplace**: puede iniciar el software preconfigurado rápidamente con la característica de implementación de un clic. Para más información, consulte [AMI-based products in AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-server-products.html).
+ **Launch wizard de Amazon EC2**: puede buscar una AMI y iniciar una instancia directamente desde el asistente. Para obtener más información, consulte [Inicialización de una instancia de Amazon EC2 desde una AMI de AWS Marketplace](launch-marketplace-console.md).

# Recuperación del código de producto de AWS Marketplace de la instancia
<a name="get-product-code"></a>

Puede recuperar el código del producto de AWS Marketplace de la instancia mediante los metadatos de instancia. Si la instancia tiene un código de producto, Amazon EC2 lo devuelve. Para obtener más información acerca de la recuperación de metadatos, consulte [Acceso a los metadatos de instancia de una instancia de EC2](instancedata-data-retrieval.md).

------
#### [ IMDSv2 ]

**Linux**  
Ejecute el siguiente comando en la instancia de Linux.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/product-codes
```

**Windows**  
Ejecute los siguientes cmdlets en la instancia de Windows.

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/product-codes
```

------
#### [ IMDSv1 ]

**Linux**  
Ejecute el siguiente comando en la instancia de Linux.

```
curl http://169.254.169.254/latest/meta-data/product-codes
```

**Windows**  
Ejecute el siguiente comando en la instancia de Windows.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/product-codes
```

------

# Uso del soporte de pago para las ofertas de AWS Marketplace compatibles
<a name="using-paid-amis-support"></a>

Amazon EC2 también ofrece a los desarrolladores soporte de software (o AMI derivadas). Los desarrolladores pueden crear productos de soporte para cuyo uso se puede registrar. Durante el registro para recibir el producto de soporte, el desarrollador le proporciona un código de producto que debe asociar a la AMI. Esto permite al desarrollador confirmar que la instancia tiene derecho a soporte. También garantiza que, cuando ejecute las instancias del producto, se le cobre según los términos que especifique el desarrollador. 

**Limitaciones**
+ Una vez establecido el atributo de código de producto, no se puede cambiar ni quitar.
+ No puede usar un producto de soporte con instancias reservadas. Siempre pagará el precio que especifique el vendedor del producto de soporte.

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

**Asociación de un código de producto a la AMI**  
Utilice el comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html).

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --product-codes "cdef1234abc567def8EXAMPLE"
```

------
#### [ PowerShell ]

**Asociación de un código de producto a la AMI**  
Utilice el cmdlet [Edit-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html).

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -ProductCode "cdef1234abc567def8EXAMPLE"
```

------

## Facturas para AMI pagada y soportadas
<a name="using-paid-amis-bills"></a>

Al final de mes, recibirá un correo electrónico con la cantidad que se ha cobrado en la tarjeta de crédito por el uso de alguna AMI de pago o admitida durante el mes. Esta factura es independiente de la factura habitual de Amazon EC2. Para obtener más información, consulte [Paying for products](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-paying-for-products.html) en la *Guía del comprador de AWS Marketplace*.

# Administrar las suscripciones de AWS Marketplace
<a name="marketplace-manage-subscriptions"></a>

En el sitio web de AWS Marketplace, puede consultar los detalles de la suscripción, ver las instrucciones de uso del proveedor, administrar las suscripciones y mucho más.

## Verificación de los detalles de suscripción de
<a name="check-sub-details"></a>

**Para consultar los detalles de las suscripciones**

1.  Inicie sesión en la [AWS Marketplace](https://aws.amazon.com/marketplace).

1. Elija **Su cuenta de Marketplace**.

1. Elija **Administrar las suscripciones de software**. 

1. Se muestra una lista de las suscripciones activas. Elija **Instrucciones de uso** para ver instrucciones específicas de uso del producto, por ejemplo, un nombre de usuario para conectarse a la instancia en ejecución.

## Cancelación de la suscripción
<a name="cancel-sub"></a>

**nota**  
Cancelar una suscripción no termina las instancias iniciadas con esa AMI. Se continuará el cobro por las instancias en ejecución hasta su terminación. Debe terminar todas las instancias iniciadas con esa AMI para que el cobro de la suscripción se detenga.
Después de cancelar la suscripción, ya no puede iniciar ninguna instancia desde esa AMI. Para volver a utilizar esa AMI, debe volver a suscribirse a ella, ya sea en el sitio web de AWS Marketplace o a través del asistente de inicialización en la consola de Amazon EC2.

**Para cancelar una suscripción de AWS Marketplace**

1. Para dejar de recibir cargos por la suscripción, asegúrese de terminar todas las instancias creadas a partir de esta.
**aviso**  
**La terminación de una instancia es permanente e irreversible.**  
Después de terminar una instancia, ya no podrá conectarse a esta ni recuperarla. Todos los volúmenes de Amazon EBS asociados que estén configurados para eliminarse en la terminación también se eliminan de manera permanente y no se pueden recuperar. Todos los datos almacenados en volúmenes de almacén de instancias se perderán de forma permanente. Para obtener más información, consulte [Cómo funciona la terminación de instancias](how-ec2-instance-termination-works.md).  
Antes de terminar una instancia, asegúrese de haber realizado una copia de seguridad en un almacenamiento persistente de todos los datos que necesite retener después de la terminación.

   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 **Instances (Instancias)**.

   1. Seleccione la instancia y luego elija **Estado de la instancia**, **Terminar (eliminar) instancia**.

   1. Cuando se le indique que confirme, elija **Terminar (eliminar)**.

1. Inicie sesión en [AWS Marketplace](https://aws.amazon.com/marketplace) y elija **Su cuenta de Marketplace** y, a continuación, **Administrar las suscripciones de software**.

1. Elija **Cancelar suscripción**. Se le pide que confirme la cancelación. 

# Ciclo de vida de la AMI de Amazon EC2
<a name="ami-lifecycle"></a>

Una imagen de máquina de Amazon (AMI) es una imagen que contiene la configuración de software requerida para configurar y arrancar una instancia. Debe especificar una AMI al iniciar una instancia. Puede utilizar las AMI proporcionadas por Amazon o crear sus propias AMI. La AMI debe estar ubicada en la Región de AWS en la que desea lanzar su instancia.

El ciclo de vida de una AMI incluye la creación, la copia, la obsolescencia, la desactivación y la eliminación (anulación del registro) de la AMI.

**Crear AMI.** Si bien Amazon proporciona AMI que puede usar para iniciar sus instancias, puede crear AMI personalizadas adaptadas a sus necesidades. Para crear una AMI personalizada, lance una instancia desde una AMI existente, personalice la instancia (por ejemplo, instale software y configure los ajustes del sistema operativo) y, a continuación, cree una AMI a partir de la instancia. Todas las personalizaciones de instancia se guardan en la nueva AMI, de modo que las instancias iniciadas desde su nueva AMI incluyen estas personalizaciones.

**AMI certificables.** Para crear una AMI que admita la atestación de instancias de EC2, consulte [AMI verificables](attestable-ami.md).

**Copiar AMI.** Puede usar una AMI para lanzar una instancia solo en la Región de AWS en la que se encuentra la AMI. Si necesita lanzar instancias con la misma configuración en varias regiones, copie la AMI a las otras regiones.

**Retirar AMI.** Para marcar una AMI como reemplazada o desactualizada, puede establecer una fecha de retiro inmediata o futura. Las AMI obsoletas se ocultan en las listas de AMI, pero los usuarios y los servicios pueden seguir utilizando AMI obsoletas si conocen el ID de la AMI.

**Inhabilitar AMI.** Para evitar que una AMI se use temporalmente, puede inhabilitarla. Cuando una AMI está deshabilitada, no puede utilizarse para lanzar nuevas instancias. Sin embargo, si vuelve a habilitar la AMI, puede volver a utilizarse para lanzar instancias. Recuerde que deshabilitar una AMI no afecta a las instancias existentes que ya hayan sido lanzadas desde ella.

**Anular el registro DE (eliminar) AMI.** Cuando ya no necesite una AMI, puede anular su registro, lo que impide que se utilice para lanzar nuevas instancias. Si la AMI cumple con una regla de retención, se traslada a la papelera de reciclaje, donde se puede restaurar antes de que venza su período de retención, tras lo cual se elimina permanentemente. Si no coincide con una regla de retención, se elimina permanentemente de forma inmediata. Tenga en cuenta que anular el registro de una AMI no afecta a las instancias existentes que se iniciaron desde la AMI.

**Automatizar los ciclos de vida de las AMI.** Puede utilizar Amazon Data Lifecycle Manager para automatizar la creación, retención, copia, obsolescencia y cancelación del registro de las AMI basadas en Amazon EBS y sus instantáneas de respaldo. También puede utilizar EC2 Image Builder para automatizar la creación, gestión e implementación de AMI personalizadas. Para obtener más información, consulte [Automatizar las copias de seguridad con Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-lifecycle.html) en la *Guía del usuario de Amazon EBS* y la [Guía del usuario de EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

**Topics**
+ [Creación de una AMI](creating-an-ami-ebs.md)
+ [Creación de una AMI basada en Amazon S3](creating-an-ami-instance-store.md)
+ [Creación de una AMI con Windows Sysprep](ami-create-win-sysprep.md)
+ [Copiar una AMI](CopyingAMIs.md)
+ [Almacenar y restaurar una AMI](ami-store-restore.md)
+ [Ascendencia de AMI](ami-ancestry.md)
+ [Uso de la AMI](ec2-ami-usage.md)
+ [Dar de baja una AMI](ami-deprecate.md)
+ [Deshabilitación de una AMI](disable-an-ami.md)
+ [Anulación del registro de una AMI](deregister-ami.md)

# Creación de una AMI basada en Amazon EBS
<a name="creating-an-ami-ebs"></a>

Puede crear su propia AMI basada en Amazon EBS a partir de una instancia de Amazon EC2 o de una instantánea del volumen raíz de una instancia de Amazon EC2.

Para crear una AMI basada en Amazon EBS, comience inicializando una instancia con una AMI basada en Amazon EBS. Esta AMI puede ser una que haya obtenido de AWS Marketplace, una que haya creado mediante [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html) o cualquier otra AMI a la que tenga acceso. Tras personalizar la instancia para que cumpla sus requisitos específicos, cree y registre una AMI nueva. Puede utilizar la nueva AMI para inicializar nuevas instancias con sus personalizaciones..

**nota**  
Para crear una AMI que admita la atestación de instancias de EC2, consulte [AMI verificables](attestable-ami.md).

Los procedimientos que se describen a continuación funcionan con instancias de Amazon EC2 respaldadas tanto por volúmenes de Amazon Elastic Block Store (Amazon EBS) cifrados (incluido el volumen raíz) como por volúmenes sin cifrar.

El proceso de creación de la AMI es diferente para las AMI basadas en Amazon S3. Para obtener más información, consulte [Creación de una AMI basada en Amazon S3](creating-an-ami-instance-store.md).

**Topics**
+ [Descripción general de la creación de AMI a partir de una instancia](#process-creating-an-ami-ebs)
+ [Creación de una AMI a partir de una instancia](#how-to-create-ebs-ami)
+ [Creación de una AMI a partir de una instantánea](#creating-launching-ami-from-snapshot)

## Descripción general de la creación de AMI a partir de una instancia
<a name="process-creating-an-ami-ebs"></a>

En el siguiente diagrama se resume el proceso de creación de una AMI basada en Amazon EBS a partir de una instancia de EC2 en ejecución: comience con una AMI existente, lance una instancia, personalícela, cree una nueva AMI a partir de ella y, finalmente, lance una instancia de la nueva AMI. Los números del diagrama coinciden con los números de la siguiente descripción.

![\[Flujo de trabajo para crear una AMI a partir de una instancia\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/running-instance.png)


**1 – AMI Nro. 1, comenzar con una AMI existente**  
Busque una AMI existente que sea similar a la AMI que desea crear. Esta puede ser una AMI que haya obtenido de AWS Marketplace, una AMI que haya creado mediante [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html) o cualquier otra AMI a la que tenga acceso. Personalizará esta AMI según sus necesidades.  
En el diagrama, **Instantánea del volumen raíz de EBS Nro. 1** indica que la AMI es una AMI basada en Amazon EBS y que la información sobre el volumen raíz se almacena en esta instantánea.

**2 – iniciar una instancia desde la AMI existente**  
La forma de configurar una AMI consiste en iniciar una instancia desde la AMI en la que desea basar la nueva AMI y, a continuación, personalizar la instancia (indicada en **3** en el diagrama). A continuación, creará una nueva AMI que incluya las personalizaciones (indicadas en **4** en el diagrama).

**3 – instancia de EC2 Nro. 1, personalizar la instancia**  
Conéctese a la instancia y personalícela. La nueva AMI incluirá estas personalizaciones.  
Puede realizar cualquiera de las siguientes acciones sobre la instancia para personalizarla y que se ajuste a sus necesidades:  
+ Instalar software y aplicaciones.
+ Copiar datos.
+ Reducir el tiempo de inicio al eliminar los archivos temporales y desfragmentar el disco duro
+ Adjuntar volúmenes de EBS adicionales.

**4 – Crear imagen**  
Cuando crea una AMI a partir de una instancia, Amazon EC2 apaga la instancia antes de crear la AMI para asegurarse de que todo lo que hay en la instancia está detenido y en un estado constante durante el proceso de creación. Si está seguro de que la instancia está en un estado coherente adecuado para la creación de una AMI, puede informar a Amazon EC2 de que no apague y reinicie la instancia. Algunos sistemas de archivos, como XFS, pueden pausar y reanudar la actividad, de forma que sea seguro crear la imagen sin tener que reiniciar la instancia.  
Durante el proceso de creación de la AMI, Amazon EC2 crea instantáneas del volumen raíz de la instancia y de cualquier otro volumen de EBS asociado a la instancia. Se le cobra por las instantáneas hasta que [anule el registro de la AMI](deregister-ami.md) y las elimine. Si alguno de los volúmenes adjuntos a la instancia está cifrado, la nueva AMI solo se inicia correctamente en instancias que admiten el cifrado de Amazon EBS.  
Según el tamaño de los volúmenes, el proceso de creación de la AMI puede tardar varios minutos en completarse (a veces, hasta 24 horas). Resulta más eficiente crear instantáneas de los volúmenes antes de crear la AMI. De esta forma, solo es necesario crear pequeñas instantáneas incrementales cuando se cree la AMI y, de esta manera, el proceso se completará más rápidamente (el tiempo total de creación de las instantáneas sigue siendo el mismo).

**5 – AMI Nro. 2, nueva AMI**  
Una vez completado el proceso, tendrá una nueva AMI y una instantánea (**instantánea Nro. 2**) creada desde el volumen raíz de la instancia. Si agrega volúmenes del almacén de instancias o volúmenes de EBS a la instancia además del volumen raíz, la asignación de dispositivos de bloques de la nueva AMI contiene información relativa a esos volúmenes.  
Amazon EC2 registra la AMI automáticamente.

**6 – iniciar una instancia desde una nueva AMI**  
Puede utilizar la nueva AMI para iniciar una instancia.

**7 – instancia de EC2 Nro. 2, nueva instancia**  
Cuando inicia una instancia con la nueva AMI, Amazon EC2 crea un nuevo volumen de EBS para el volumen raíz de la instancia mediante la instantánea. Si agregó volúmenes del almacén de instancias o volúmenes de EBS al personalizar la instancia, la asignación de dispositivos de bloques de la nueva AMI contendrá información relativa a esos volúmenes y las asignaciones de dispositivos de bloques de las instancias que lance desde la nueva AMI contendrán automáticamente información relativa a estos volúmenes. Los volúmenes de almacén de instancias especificados en la asignación de dispositivos de bloques de la nueva instancia son nuevos y no contienen ningún dato de los volúmenes de almacén de instancias de la instancia que usó para crear la AMI. Los datos en los volúmenes de EBS persisten. Para obtener más información, consulte [Asignaciones de dispositivos de bloques para volúmenes en instancias de Amazon EC2](block-device-mapping-concepts.md).  
Cuando cree una nueva instancia desde una AMI respaldada por EBS, deberá inicializar tanto su volumen raíz como cualquier almacenamiento de EBS adicional antes de ponerla en producción. Para obtener más información, consulte [Inicializar volúmenes de Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html) en la *Guía del usuario de Amazon EBS*.

## Creación de una AMI a partir de una instancia
<a name="how-to-create-ebs-ami"></a>

Si tiene una instancia existente, puede crear una AMI a partir de esta instancia.

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

**Para crear una AMI**

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 **Instances (Instancias)**.

1. Seleccione la instancia desde la cual crear la AMI y, a continuación, elija **Acciones**, **Imagen y plantillas**, **Crear imagen**.
**sugerencia**  
Si se deshabilita esta opción, la instancia no es una instancia con respaldo Amazon EBS.

1. En la página **Crear imagen**, especifique la siguiente información:

   1. En **Nombre de la imagen**, escriba un nombre único para la imagen, con un máximo de 127 caracteres.

   1. En **Descripción de la imagen**, ingrese una descripción opcional de la imagen con un máximo de 255 caracteres.

   1. En **Reiniciar instancia**, mantenga seleccionada la casilla de verificación (opción predeterminada) o bórrela.
      + Si la opción **Reiniciar instancia** está seleccionada, cuando Amazon EC2 crea la nueva AMI, reinicia la instancia para que pueda tomar instantáneas de los volúmenes asociados mientras los datos están en reposo para garantizar un estado coherente.
      + Si la opción **Reiniciar instancia** no está marcada, cuando Amazon EC2 crea la nueva AMI, no cierra ni reinicia la instancia.
**aviso**  
Si desmarca **Reiniciar instancia**, no se puede garantizar la integridad del sistema de archivos de la imagen creada.

   1. **Volúmenes de instancia**: puede modificar el volumen raíz, así como agregar más volúmenes de Amazon EBS y de almacén de instancias, de la siguiente manera:

      1. El volumen raíz se define en la primera fila.
         + A fin de cambiar el tamaño del volumen raíz, en **Tamaño**, introduzca el valor requerido.
         + Si selecciona **Eliminar al terminar**, cuando termina la instancia creada con esta AMI, se elimina el volumen de EBS. Si borra **Eliminar al terminar**, cuando termina la instancia, no se elimina el volumen de EBS. Para obtener más información, consulte [Conservación de los datos cuando se termina una instancia](preserving-volumes-on-termination.md).

      1. Para agregar un volumen de EBS, elija **Agregar volumen** (lo que agrega una fila nueva). En **Tipo de almacenamiento**, elija **EBS** y rellene los campos de la fila. Cuando inicia una instancia desde la nueva AMI, los volúmenes adicionales se asocian de forma automática a la instancia. Los volúmenes vacíos se tienen que formatear y montar. Los volúmenes basados en una instantánea se deben montar.

      1. Para añadir un volumen de almacén de instancias, consulte [Adición de volúmenes del almacén de instancias a una AMI de Amazon EC2](adding-instance-storage-ami.md). Cuando inicia una instancia desde la nueva AMI, los volúmenes adicionales se inicializan y se montan de forma automática. Estos volúmenes no contienen datos de los volúmenes de almacén de instancias de la instancia en ejecución en la que ha basado la AMI.

   1. **Destino de la instantánea**: si los volúmenes de sus instancias se encuentran en una zona local que admite instantáneas locales de EBS, elija dónde desea crear las instantáneas de la AMI:
      + **Región de AWS**: cree instantáneas en la región principal de la zona local de sus volúmenes.
      + **Zona local de AWS**: cree instantáneas en la misma zona local que sus volúmenes.
**nota**  
Esta opción solo aparece en las zonas locales que admiten instantáneas locales de EBS y solo si la instancia se creó en una zona local. Si el volumen se encuentra en una región, esta opción no aparece y la instantánea se crea automáticamente en la misma región que el volumen. Para obtener más información, consulte [Local snapshots in Local Zones](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-localzones.html) en la *Guía del usuario de Amazon EBS*.
**importante**  
Todas las instantáneas de los volúmenes de la instancia deben estar en la misma ubicación. Compruebe la ubicación de las instantáneas existentes. Si alguna instantánea existente se encuentra en una ubicación diferente a la del destino seleccionado, se producirá un error al crear la AMI.

   1. **Etiquetas**: puede etiquetar la AMI y las instantáneas con las mismas etiquetas o con etiquetas diferentes.
      + Para etiquetar la AMI y las instantáneas con las *mismas* etiquetas, elija **Etiquetar imagen e instantáneas juntas**. Las mismas etiquetas se aplican a la AMI y a todas las instantáneas que se crean.
      + Para etiquetar la AMI y las instantáneas con etiquetas *diferentes*, elija **Etiquetar imagen e instantáneas por separado**. Se aplican diferentes etiquetas a la AMI y a las instantáneas que se crean. Sin embargo, todas las instantáneas obtienen las mismas etiquetas; no puede etiquetar cada instantánea con una etiqueta diferente.

      Para agregar una etiqueta, elija **Add tag (Agregar etiqueta)** y especifique la clave y el valor de la etiqueta. Repita este proceso para cada etiqueta.

   1. Cuando lo tenga todo listo para crear la AMI, seleccione **Create image** (Crear imagen). 

1. Para ver el estado de la AMI mientras se crea:

   1. En el panel de navegación, elija **AMI**.

   1. Establezca el filtro en **De mi propiedad** y busque la AMI en la lista.

      Al principio, el estado es `pending`, pero debe cambiar a `available` después de unos minutos.

1. (Opcional) Para ver la instantánea creada para la nueva AMI:

   1. Anote el ID de la AMI que encontró en el paso anterior.

   1. En el panel de navegación, elija **Instantáneas**.

   1. Establezca el filtro en **De mi propiedad** y, a continuación, busque la instantánea con el ID de la nueva AMI en la columna **Descripción**.

      Cuando se inicia una instancia desde esta AMI, Amazon EC2 usa esta instantánea para crear el volumen raíz de la instancia.

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

**Para crear una AMI**  
Utilice el comando [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html).

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "my-web-server" \
    --description "My web server image" \
    --no-reboot
```

------
#### [ PowerShell ]

**Para crear una AMI**  
Utilice el cmdlet [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html).

```
New-EC2Image `
    -InstanceId i-1234567890abcdef0 ` 
    -Name "my-web-server" `
    -Description "My web server image" `
    -NoReboot $true
```

------

## Creación de una AMI a partir de una instantánea
<a name="creating-launching-ami-from-snapshot"></a>

Si tiene una instantánea del volumen raíz de una instancia, puede crear una AMI a partir de esta instantánea.

**nota**  
En la mayoría de los casos, las AMI para Windows, Red Hat, SUSE y SQL Server requieren que la información de licencia correcta esté presente en la AMI. Para obtener más información, consulte [Comprender la información de facturación de la AMI](ami-billing-info.md). Al crear una AMI a partir de una instantánea, la operación `RegisterImage` deriva la información de facturación correcta de los metadatos de la instantánea, pero esto requiere que estén presentes los metadatos adecuados. Para comprobar si se aplicó la información de facturación correcta, compruebe el campo **Detalles de la plataforma** en la nueva AMI. Si el campo está vacío o no coincide con el código del sistema operativo esperado (por ejemplo, Windows, Red Hat, SUSE o SQL), la creación de la AMI no ha sido correcta, por lo que debe descartar la AMI y seguir las instrucciones que se indican en [Creación de una AMI a partir de una instancia](#how-to-create-ebs-ami).

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

**Para crear una AMI a partir de una instantánea**

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, elija **Instantáneas**.

1. Seleccione la instantánea desde la cual crear la AMI y, a continuación, elija **Acciones**, **Crear imagen a partir de una instantánea**.

1. En la página **Crear imagen a partir de una instantánea**, especifique la siguiente información:

   1. En **Nombre de imagen**, ingrese un nombre descriptivo para la imagen.

   1. En **Descripción**, ingrese una breve descripción de la imagen.

   1. En **Arquitectura**, elija la arquitectura de la imagen. Elija **i386** para 32-bit; **x86\$164** para 64-bit; **arm64** para 64-bit ARM; o **x86\$164** para 64-bit macOS.

   1. En **Nombre del dispositivo raíz**, ingrese el nombre de dispositivo que utilizará para el volumen raíz. Para obtener más información, consulte [Nombres de dispositivos para los volúmenes en las instancias de Amazon EC2](device_naming.md).

   1. En **Tipo de virtualización**, elija el tipo de virtualización que utilizarán las instancias iniciadas desde esta AMI. Para obtener más información, consulte [Tipos de virtualización](ComponentsAMIs.md#virtualization_types).

   1. (Solo para virtualización paravirtual) En **ID de kernel**, seleccione el kernel del sistema operativo de la imagen. Si utiliza una instantánea del volumen raíz de una instancia, seleccione el mismo ID de kernel que la instancia original. Si no está seguro, utilice el kernel predeterminado.

   1. (Solo para virtualización paravirtual) En **ID de disco RAM**, seleccione el disco RAM de la imagen. Si seleccionó un kernel específico, es posible que tenga que seleccionar un disco RAM específico con los controladores compatibles.

   1. En **Modo de arranque**, elija el modo de arranque de la imagen o elija **Usar valor predeterminado** para que, cuando se inicie una instancia con esta AMI, lo haga con el modo de arranque compatible con el tipo de instancia. Para obtener más información, consulte [Establecimiento del modo de arranque de una AMI de Amazon EC2](set-ami-boot-mode.md).

   1. (Opcional) En la sección **Asignación de dispositivos de bloques**, personalice el volumen raíz y agregue más volúmenes de datos. 

      Para cada volumen, puede especificar el tamaño, el tipo, las características de rendimiento, el comportamiento de la eliminación al momento de la terminación y el estado de cifrado. Para el volumen raíz, el tamaño no puede ser menor que el tamaño de la instantánea. Para el tipo de volumen, el volumen SSD de uso general `gp3` es la opción predeterminada.

   1. (Opcional) En **Etiquetas**, puede agregar una o más etiquetas a la nueva AMI. Para agregar una etiqueta, elija **Agregar etiqueta** y especifique la clave y el valor de la etiqueta. Repita este proceso para cada etiqueta.

   1. Cuando lo tenga todo listo para crear la AMI, seleccione **Crear imagen**.

1. (Solo para Windows, Red Hat, SUSE y SQL Server) Para comprobar si se aplicó la información de facturación correcta, compruebe el campo **Detalles de la plataforma** en la nueva AMI. Si el campo está vacío o no coincide con el código del sistema operativo esperado (por ejemplo, **Windows** o **RedHat**), la creación de la AMI no ha sido correcta, por lo que debe descartar la AMI y seguir las instrucciones que se indican en [Creación de una AMI a partir de una instancia](#how-to-create-ebs-ami).

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

**Para crear una AMI a partir de una instantánea mediante la AWS CLI**  
Utilice el comando [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html).

```
aws ec2 register-image \
    --name my-image \
    --root-device-name /dev/xvda \
    --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0db2cf683925d191f}
```

------
#### [ PowerShell ]

**Para crear una AMI a partir de una instantánea mediante PowerShell**  
Utilice el cmdlet [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html).

```
$block = @{SnapshotId=snap-0db2cf683925d191f}
Register-EC2Image `
    -Name my-image `
    -RootDeviceName /dev/xvda `
    -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block}
```

------

# Creación de una AMI basada en Amazon S3
<a name="creating-an-ami-instance-store"></a>

La AMI que se especifica cuando se inicia una instancia determina el tipo de volumen raíz.

Para crear una AMI de Linux basada en Amazon S3, comience desde una instancia que haya iniciado a partir de una AMI de Linux existente basada en Amazon S3. Una vez que haya personalizado la instancia según sus necesidades, agrupe el volumen y registre una nueva AMI, que puede utilizar para iniciar nuevas instancias con dicha configuración personalizada.

No puede crear una AMI de Windows basada en Amazon S3, ya que las AMI de Windows no admiten el almacén de instancias para el volumen raíz.

**importante**  
Solo los siguientes tipos de instancias admiten un volumen del almacén de instancia como volumen raíz y requieren una AMI basada en Amazon S3: C1, C3, D2, I2, M1, M2, M3, R3 y X1.

El proceso de creación de la AMI es diferente para las AMI con respaldo en Amazon EBS. Para obtener más información, consulte [Creación de una AMI basada en Amazon EBS](creating-an-ami-ebs.md).

**Topics**
+ [Información general sobre la creación de AMI](#process-creating-an-ami-instance-store)
+ [Requisitos previos](#bundle-ami-prerequisites)
+ [Creación de una AMI desde una instancia de Amazon Linux](#amazon_linux_instructions)
+ [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md)
+ [Referencia de las herramientas para las AMI de Amazon EC2](ami-tools-commands.md)
+ [Conversión de la AMI basada en Amazon S3 a una AMI basada en EBS](Using_ConvertingS3toEBS.md)

## Información general sobre la creación de AMI
<a name="process-creating-an-ami-instance-store"></a>

En el siguiente diagrama se resume el proceso de creación de una AMI desde una instancia con un volumen raíz del almacén de instancias.

![\[Creación de una AMI basada en Amazon S3.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami_create_instance_store.png)


En primer lugar, lance una instancia desde una AMI que sea similar a la AMI que desea crear. Puede conectarse a la instancia y personalizarla. Cuando la instancia esté configurada como desea, puede agruparla. El proceso de agrupación tarda unos minutos en completarse. Una vez se haya completo el proceso, tiene un paquete formado por un manifiesto de imágenes (`image.manifest.xml`) y archivos (`image.part.`*xx*) que contienen una plantilla para el volumen raíz. A continuación, cargue el paquete al bucket de Amazon S3 y registre la AMI.

**nota**  
Para cargar objetos en un bucket de S3 para la AMI de Linux basada en Amazon S3, las ACL deben estar habilitadas para el bucket. De lo contrario, Amazon EC2 no podrá configurar las ACL en los objetos que se van a cargar. Si el bucket de destino utiliza la configuración impuesta por el propietario del bucket para la propiedad de objetos de S3, esto no funcionará porque las ACL están deshabilitadas. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

Cundo inicia una instancia utilizando la nueva AMI, se crea el volumen raíz de la instancia con el paquete que cargó en Amazon S3. El espacio de almacenamiento que utiliza el paquete en Amazon S3 genera cargos a la cuenta hasta que lo elimine. Para obtener más información, consulte [Anulación del registro de una AMI de Amazon EC2](deregister-ami.md).

Si añade volúmenes de almacén de instancias a la instancia además del volumen raíz, la asignación de dispositivos de bloques de la nueva AMI contiene información relativa a estos volúmenes y los mapeos de dispositivos de bloques de las instancias que lance desde la nueva AMI contienen automáticamente información relativa a estos volúmenes. Para obtener más información, consulte [Asignaciones de dispositivos de bloques para volúmenes en instancias de Amazon EC2](block-device-mapping-concepts.md).

## Requisitos previos
<a name="bundle-ami-prerequisites"></a>

Antes de poder crear una AMI, debe ejecutar las siguientes tareas:
+ Instalación de las herramientas de la AMI. Para obtener más información, consulte [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md).
+ Instale la AWS CLI. Para obtener más información, consulte [Introducción a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+ Asegúrese de tener un bucket de S3 para el paquete y de que su bucket tenga las ACL habilitadas. Para obtener más información sobre la configuración de las ACL, consulte [Configuración de la ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
  + Para crear un bucket de S3 con la Consola de administración de AWS, abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) S3 y elija **Crear bucket**.
  + Para crear un bucket de S3 con la AWS CLI, puede utilizar el comando [mb](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html). Si la versión instalada de las herramientas de AMI es la 1.5.18 o posterior, también puede usar el comando `ec2-upload-bundle` para crear el bucket de S3. Para obtener más información, consulte [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle).
+ Asegúrese de que los archivos de la agrupación no estén cifrados en el bucket de S3. Si debe cifrar la AMI, puede utilizar en su lugar una AMI basada en EBS. Para obtener más información, consulte [Usar el cifrado con las AMI con respaldo de EBS](AMIEncryption.md).
+ Asegúrese de tener el ID de la cuenta de AWS. Para obtener más información, consulte [Visualización de identificadores de la Cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html) en la *Guía de referencia de la Administración de cuentas de AWS*.
+ Asegúrese de tener credenciales para utilizar el AWS CLI. Para obtener más información, consulte [Autenticación y credenciales de acceso para la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) en la *Guía del usuario de AWS Command Line Interface*.
+ Asegúrese de tener un certificado X.509 y su correspondiente clave privada.
  + Si necesita crear un certificado X.509, consulte [Gestionar certificados de firma](set-up-ami-tools.md#ami-tools-managing-certs). El certificado X.509 y la clave privada se utilizan para cifrar y descifrar la AMI.
  + [China (Pekín)] Utilice el certificado `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem`.
  + [AWS GovCloud (EE. UU. Oeste)] Utilice el certificado `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem`.
+ Conéctese a la instancia y personalícela. Por ejemplo, puede instalar software y aplicaciones, copiar datos, eliminar archivos temporales y modificar la configuración de Linux.

## Creación de una AMI desde una instancia de Amazon Linux
<a name="amazon_linux_instructions"></a>

En los siguientes procedimientos se describe cómo crear una AMI desde una instancia con un volumen raíz del almacén de instancias que ejecuta Amazon Linux 1. Es posible que no funcionen para las instancias que ejecutan otras distribuciones de Linux.

**Para prepararse para utilizar las herramientas de la AMI (solo instancias HVM)**

1. Las herramientas de la AMI requieren GRUB Legacy para arrancar correctamente. Utilice el siguiente comando para instalar GRUB:

   ```
   [ec2-user ~]$ sudo yum install -y grub
   ```

1. Instale los paquetes de administración de particiones con el siguiente comando:

   ```
   [ec2-user ~]$ sudo yum install -y gdisk kpartx parted
   ```

**Creación de una AMI desde una instancia de Amazon Linux con un volumen raíz del almacén de instancias**

En este procedimiento se presupone que ha satisfecho los requisitos previos que se indican en [Requisitos previos](#bundle-ami-prerequisites).

En el siguiente ejemplo, reemplace cada *marcador de posición del usuario* con su propia información.

1. Cargue las credenciales en la instancia. Estas credenciales se utilizan para garantizar que solo usted y Amazon EC2 pueden obtener acceso a la AMI.

   1. Cree un directorio temporal en la instancia para las credenciales del modo siguiente:

      ```
      [ec2-user ~]$ mkdir /tmp/cert
      ```

      Esto le permite excluir las credenciales de la imagen creada.

   1. Copie el certificado X.509 y la clave privada correspondiente del equipo en el directorio `/tmp/cert` de la instancia utilizando una herramienta de copia segura como [scp](linux-file-transfer-scp.md). La opción `-i my-private-key.pem` del comando **scp** es la clave privada que utiliza para conectarse a la instancia con SSH, no la clave privada X.509. Por ejemplo:

      ```
      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem /path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/
      pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  717     0.7KB/s   00:00
      cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  685     0.7KB/s   00:00
      ```

   Puesto que se trata de archivos de texto sin formato, también puede abrir el certificado y la clave con un editor de texto y copiar el contenido en nuevos archivos en `/tmp/cert`.

1. <a name="step_with_bundle_path_amazon_linux"></a>Prepare el paquete a cargar en Amazon S3 ejecutando el comando [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) desde dentro de la instancia. Asegúrese de especificar la opción `-e` para excluir el directorio en el que están almacenadas las credenciales. De forma predeterminada, el proceso de agrupación excluye los archivos que podrían contener información confidencial. Estos archivos incluyen `*.sw`, `*.swo`, `*.swp`, `*.pem`, `*.priv`, `*id_rsa*`, `*id_dsa*` `*.gpg`, `*.jks`, `*/.ssh/authorized_keys` y `*/.bash_history`. Para incluir todos estos archivos, use la opción `--no-filter`. Para incluir algunos de estos archivos, use la opción `--include`.
**importante**  
De forma predeterminada, el proceso de agrupación de la AMI crea una serie de archivos comprimidos y cifrados en el directorio `/tmp` que representa el volumen raíz. Si no dispone de suficiente espacio libre en disco en `/tmp` para almacenar el paquete, necesita especificar una ubicación distinta para almacenar el paquete mediante la opción `-d /path/to/bundle/storage`. Algunas instancias tienen almacenamiento efímero montado en `/mnt` o en `/media/ephemeral0` que puede utilizar, o también puede crear, asociar y montar un nuevo volumen de Amazon EBS para almacenar el paquete. Para obtener más información, consulte [Creación de un volumen de Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) en la *Guía del usuario de Amazon EBS*.

   1. Debe ejecutar el comando **ec2-bundle-vol** como raíz. Para la mayoría de comandos, puede utilizar **sudo** para obtener permisos elevados, pero en este caso debe ejecutar **sudo -E su** para mantener las variables de entorno.

      ```
      [ec2-user ~]$ sudo -E su
      ```

      Tenga en cuenta que la pregunta bash ahora le identifica como el usuario raíz y que el signo de dólar se ha sustituido por un hash tag, lo que indica que se encuentra en un shell raíz:

      ```
      [root ec2-user]#
      ```

   1. Para crear el paquete de la AMI, ejecute el comando [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) del modo siguiente:

      ```
      [root ec2-user]# ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 123456789012 -r x86_64 -e /tmp/cert --partition gpt
      ```
**nota**  
En las regiones China (Pekín) y AWS GovCloud (EE. UU. Oeste), utilice el parámetro `--ec2cert` y especifique los certificados de acuerdo con lo indicado en los [requisitos previos](#bundle-ami-prerequisites).

      La creación de la imagen puede llevar unos minutos. Cuando el comando se complete, el directorio `/tmp` (o no predeterminado) contiene el paquete (`image.manifest.xml`, además de varios archivos `image.part.`*xx*).

   1. Salga del shell raíz.

      ```
      [root ec2-user]# exit
      ```

1. (Opcional) Para añadir más volúmenes de almacén de instancias, edite los mapeos de dispositivos de bloques del archivo `image.manifest.xml` de la AMI. Para obtener más información, consulte [Asignaciones de dispositivos de bloques para volúmenes en instancias de Amazon EC2](block-device-mapping-concepts.md).

   1. Cree una copia de seguridad del archivo `image.manifest.xml`.

      ```
      [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
      ```

   1. Reformatee el archivo `image.manifest.xml` para que sea más fácil de leer y editar.

      ```
      [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
      ```

   1. Edite los mapeos de dispositivos de bloques en `image.manifest.xml` con un editor de texto. En el siguiente ejemplo se muestra una nueva entrada para el volumen de almacén de instancias `ephemeral1`. 
**nota**  
Para obtener una lista de los archivos excluidos, consulte [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol). 

      ```
          <block_device_mapping>
            <mapping>
              <virtual>ami</virtual>
              <device>sda</device>
            </mapping>
            <mapping>
              <virtual>ephemeral0</virtual>
              <device>sdb</device>
            </mapping>
            <mapping>
              <virtual>ephemeral1</virtual>
              <device>sdc</device>
            </mapping>
            <mapping>
              <virtual>root</virtual>
              <device>/dev/sda1</device>
            </mapping>
          </block_device_mapping>
      ```

   1. Guarde el archivo `image.manifest.xml` y salga del editor de texto.

1. Para cargar el paquete a Amazon S3, ejecute el comando [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle) del modo siguiente.

   ```
   [ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m /tmp/image.manifest.xml -a your_access_key_id -s your_secret_access_key
   ```
**importante**  
Para registrar la AMI en una región distinta a US East (N. Virginia), debe especificar tanto la región de destino con la opción `--region` como una ruta para el bucket que ya exista en la región de destino o bien una ruta para el bucket exclusiva que pueda crearse en la región de destino.

1. (Opcional) Una vez que el bucket se ha cargado en Amazon S3, puede eliminar el paquete del directorio `/tmp` de la instancia utilizando el siguiente comando **rm**:

   ```
   [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
   ```
**importante**  
Si ha especificado una ruta con la opción `-d /path/to/bundle/storage` en [Step 2](#step_with_bundle_path_amazon_linux), utilice dicha ruta en lugar de `/tmp`.

1. Para registrar la AMI, ejecute el comando [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) del modo siguiente.

   ```
   [ec2-user ~]$ aws ec2 register-image --image-location amzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI_name --virtualization-type hvm
   ```
**importante**  
Si ha especificado previamente una región para el comando [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle), especifique la misma región de nuevo para este comando.

# Configuración de las herramientas de la AMI de Amazon EC2
<a name="set-up-ami-tools"></a>

Puede utilizar las herramientas de la AMI para crear y administrar AMI de Linux basadas en Amazon S3. Para utilizar las herramientas, debe instalarlas en su instancia de Linux. Las herramientas de la AMI están disponibles como un archivo RPM o como un archivo .zip para distribuciones Linux que no admiten RPM. 

**Para configurar las herramientas de la AMI con RPM**

1. Instale Ruby utilizando el administrador de paquetes correspondiente de la distribución Linux, como, por ejemplo, yum. Por ejemplo:

   ```
   [ec2-user ~]$ sudo yum install -y ruby
   ```

1. Descargue el archivo RPM utilizando una herramienta como wget o curl. Por ejemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
   ```

1. Ejecute el comando siguiente para verificar la firma del archivo RPM:

   ```
   [ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
   ```

   El comando anterior debería indicar que los hashes SHA1 y MD5 del archivo son `OK.` Si el comando indica que dichos hashes son `NOT OK`, utilice el siguiente comando para ver los hashes SHA1 y MD5 del encabezado del archivo:

   ```
   [ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
   ```

   A continuación, compare los hashes SHA1 y MD5 del encabezado del archivo con los siguientes hashes verificados de las herramientas de la AMI para confirmar la autenticidad del archivo:
   + SHA1 del encabezado: a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5: 9faff05258064e2f7909b66142de6782

   Si los hashes SHA1 y MD5 del encabezado del archivo coinciden con los hashes verificados de las herramientas de la AMI, continúe con el siguiente paso.

1. Instale el RPM utilizando el siguiente comando:

   ```
   [ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
   ```

1. Verifique la instalación de las herramientas de la AMI utilizando el comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```
**nota**  
Si recibe un error de carga, como "cannot load such file -- ec2/amitools/version (LoadError)", complete el siguiente paso para añadir la ubicación de la instalación de las herramientas de la AMI a la ruta `RUBYLIB`.

1. (Opcional) Si recibió un error en el paso anterior, añada la ubicación de la instalación de las herramientas de la AMI a la ruta `RUBYLIB`.

   1. Ejecute el siguiente comando para determinar las rutas a añadir.

      ```
      [ec2-user ~]$ rpm -qil ec2-ami-tools | grep ec2/amitools/version
      /usr/lib/ruby/site_ruby/ec2/amitools/version.rb
      /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      ```

      En el ejemplo anterior, el archivo que falta según el error de carga anterior se ubica en `/usr/lib/ruby/site_ruby` y en `/usr/lib64/ruby/site_ruby`.

   1. Añada las ubicaciones del paso anterior a la ruta `RUBYLIB`.

      ```
      [ec2-user ~]$ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby
      ```

   1. Verifique la instalación de las herramientas de la AMI utilizando el comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

      ```
      [ec2-user ~]$ ec2-ami-tools-version
      ```

**Para configurar las herramientas de la AMI con el archivo .zip**

1. Instale Ruby y descomprima el archivo utilizando el administrador de paquetes correspondiente de la distribución Linux, como, por ejemplo **apt-get**. Por ejemplo:

   ```
   [ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
   ```

1. Descargue el archivo .zip utilizando una herramienta como wget o curl. Por ejemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
   ```

1. Descomprima los archivos en un directorio de instalación adecuado, como `/usr/local/ec2`.

   ```
   [ec2-user ~]$ sudo mkdir -p /usr/local/ec2
   $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2
   ```

   Observe que el archivo .zip contiene una carpeta ec2-ami-tools-*x*.*x*.*x*, donde *x*.*x*.*x* es el número de versión de las herramientas (por ejemplo, `ec2-ami-tools-1.5.7`).

1. Establezca la variable de entorno `EC2_AMITOOL_HOME` en el directorio de instalación de las herramientas. Por ejemplo:

   ```
   [ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
   ```

1. Agregue las herramientas a la variable de entorno `PATH`. Por ejemplo:

   ```
   [ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
   ```

1. Puede verificar la instalación de las herramientas de la AMI utilizando el comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```

## Gestionar certificados de firma
<a name="ami-tools-managing-certs"></a>

Ciertos comandos de las herramientas de la AMI requieren un certificado de firma (denominado también certificado X.509). Debe crear el certificado y, a continuación, cargarlo en AWS. Por ejemplo, puede utilizar una herramienta de terceros, como de OpenSSL, para crear el certificado.

**Para crear un certificado de firma**

1. Instale y configure OpenSSL.

1. Cree una clave privada mediante el comando `openssl genrsa` y guarde la clave resultante en un archivo `.pem`. Le recomendamos que cree una clave RSA de 2 048 o 4 096 bits.

   ```
   openssl genrsa 2048 > private-key.pem
   ```

1. Genere un certificado mediante el comando `openssl req`.

   ```
   openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem
   ```

Para cargar el certificado a AWS, utilice el comando [upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html).

```
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem
```

Para ver la lista de certificados de un usuario, utilice el comando [list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html):

```
aws iam list-signing-certificates --user-name user-name
```

Para deshabilitar o volver a habilitar un certificado de firma para un usuario, utilice el comando [update-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/update-signing-certificate.html). El siguiente comando deshabilita el certificado:

```
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name
```

Para eliminar un certificado, utilice el comando [delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html):

```
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE
```

# Referencia de las herramientas para las AMI de Amazon EC2
<a name="ami-tools-commands"></a>

Puede utilizar los comandos de las herramientas de la AMI para crear y administrar AMI de Linux basadas en Amazon S3. Para configurar las herramientas, consulte [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md).

Para obtener información acerca de tus claves de acceso, consulte [Managing access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) (Administración de las claves de acceso para usuarios de IAM) en la *Guía del usuario de IAM*.

**Topics**
+ [ec2-ami-tools-version](#ami-tools-version)
+ [ec2-bundle-image](#ami-bundle-image)
+ [ec2-bundle-vol](#ami-bundle-vol)
+ [ec2-delete-bundle](#ami-delete-bundle)
+ [ec2-download-bundle](#ami-download-bundle)
+ [ec2-migrate-manifest](#ami-migrate-manifest)
+ [ec2-unbundle](#ami-unbundle)
+ [ec2-upload-bundle](#ami-upload-bundle)
+ [Opciones comunes de las herramientas para AMI](#common-args-ami)

## ec2-ami-tools-version
<a name="ami-tools-version"></a>

### Descripción
<a name="ami-tools-version-description"></a>

Describe la versión de las herramientas para AMI.

### Sintaxis
<a name="ami-tools-version-request"></a>

**ec2-ami-tools-version**

### Output
<a name="ami-tools-version-output"></a>

La información de la versión.

### Ejemplo
<a name="ami-tools-version-response"></a>

El comando de este ejemplo muestra la información de versión de las herramientas para AMI que está usando.

```
[ec2-user ~]$ ec2-ami-tools-version
1.5.2 20071010
```

## ec2-bundle-image
<a name="ami-bundle-image"></a>

### Descripción
<a name="bundle-image-description"></a>

Crea una AMI de Linux basada en Amazon S3 a partir de una imagen del sistema operativo creada en un archivo de bucle invertido.

### Sintaxis
<a name="bundle-image-request"></a>

****ec2-bundle-image** -c *path* -k *path* -u *account* -i *path* [-d *path*] [--ec2cert *path*] [-r *architecture*] [--productcodes *code1*,*code2*,...] [-B *mapping*] [-p *prefix*]** 

### Opciones
<a name="bundle-image-parameters"></a>

`-c, --cert` *path*  
El archivo RSA de certificado de clave pública en código PEM del usuario.  
Obligatorio: sí

`-k, --privatekey` *path*  
La ruta de un archivo de clave RSA en código PEM. Deberá especificar esta clave para desempaquetar este paquete, por lo que conviene guardarla en un lugar seguro. Observe que la clave no tiene que estar registrada en la cuenta de AWS.  
Obligatorio: sí

`-u, --user ` *account*  
El ID de la cuenta de AWS del usuario sin guiones.  
Obligatorio: sí

`-i, --image` *path*  
La ruta de la imagen que se agrupa.  
Obligatorio: sí

`-d, --destination` *path*  
El directorio en el que se crea la agrupación.  
Valor predeterminado: `/tmp`  
Obligatorio: no

`--ec2cert` *path*  
La ruta del certificado de clave pública Amazon EC2 X.509 utilizado para cifrar el manifiesto de la imagen.  
Las regiones `us-gov-west-1` y `cn-north-1` usan un certificado de clave pública no predeterminado y la ruta de dicho certificado debe especificarse con esta opción. La ruta del certificado varía según el método de instalación de las herramientas para AMI. En Amazon Linux, los certificados se encuentran en `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Si ha instalado las herramientas para AMI desde el archivo ZIP o RPM de [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md), los certificados se encuentran en `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obligatorio: solo para las regiones `us-gov-west-1` y `cn-north-1`.

`-r, --arch` *architecture*  
Arquitectura de la imagen. Si no proporciona la arquitectura en la línea de comandos, se le pedirá cuando se inicie la agrupación.  
Valores válidos: `i386` \$1 `x86_64`  
Requerido: No

`--productcodes` *code1,code2,...*  
Los códigos de producto que se adjuntan a la imagen en el momento del registro, separados por comas.  
Requerido: No

`-B, --block-device-mapping` *mapping*  
Define el modo en que los dispositivos de bloques se exponen a una instancia de esta AMI si el tipo de instancia admite el dispositivo especificado.  
Especifique una lista separada por comas de pares clave-valor, donde cada clave es un nombre virtual y cada valor es el nombre del dispositivo correspondiente. Entre los nombres virtuales se incluyen los siguientes:  
+ `ami`: el dispositivo del sistema de archivos raíz como lo ve la instancia
+ `root`: el dispositivo del sistema de archivos raíz como lo ve el kernel
+ `swap`: el dispositivo de intercambio como lo ve la instancia
+ `ephemeralN`: el volumen N-simo del almacén de instancias
Requerido: No

`-p, --prefix` *prefix*  
El prefijo del nombre de archivo para los archivos de AMI agrupados.  
Valor predeterminado: el nombre del archivo de imagen. Por ejemplo, si la ruta de la imagen es `/var/spool/my-image/version-2/debian.img`, el prefijo predeterminado es `debian.img`.  
Requerido: No

`--kernel` *kernel\$1id*  
Obsoleto. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para establecer el kernel.  
Requerido: No

`--ramdisk` *ramdisk\$1id*  
Obsoleto. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para establecer el disco RAM si se requiere.  
Obligatorio: no

### Output
<a name="bundle-image-output"></a>

Mensajes de estado que describen las fases y los estados del proceso de agrupación.

### Ejemplo
<a name="bundle-image-response"></a>

En este ejemplo se crea una AMI agrupada a partir de una imagen del sistema operativo que se creó en un archivo de bucle invertido.

```
[ec2-user ~]$ ec2-bundle-image -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -i image.img -d bundled/ -r x86_64
Please specify a value for arch [i386]: 
Bundling image file...
Splitting bundled/image.gz.crypt...
Created image.part.00
Created image.part.01
Created image.part.02
Created image.part.03
Created image.part.04
Created image.part.05
Created image.part.06
Created image.part.07
Created image.part.08
Created image.part.09
Created image.part.10
Created image.part.11
Created image.part.12
Created image.part.13
Created image.part.14
Generating digests for each part...
Digests generated.
Creating bundle manifest...
ec2-bundle-image complete.
```

## ec2-bundle-vol
<a name="ami-bundle-vol"></a>

### Descripción
<a name="bundle-vol-description"></a>

Crea una AMI de Linux basada en Amazon S3 comprimiendo, cifrando y firmando una copia del volumen raíz para la instancia.

Amazon EC2 intenta heredar los códigos de producto, la configuración del kernel, la configuración del disco RAM y el mapeo de los dispositivos de bloques de la instancia.

De forma predeterminada, el proceso de agrupación excluye los archivos que podrían contener información confidencial. Estos archivos incluyen `*.sw`, `*.swo`, `*.swp`, `*.pem`, `*.priv`, `*id_rsa*`, `*id_dsa*` `*.gpg`, `*.jks`, `*/.ssh/authorized_keys` y `*/.bash_history`. Para incluir todos estos archivos, use la opción `--no-filter`. Para incluir algunos de estos archivos, use la opción `--include`.

Para obtener más información, consulte [Creación de una AMI basada en Amazon S3](creating-an-ami-instance-store.md).

### Sintaxis
<a name="bundle-vol-request"></a>

****ec2-bundle-vol** -c *path* -k *path* -u *account* [-d *path*] [--ec2cert *path*] [-r *architecture*] [--productcodes *code1*,*code2*,...] [-B *mapping*] [--all] [-e *directory1*,*directory2*,...] [-i *file1*,*file2*,...] [--no-filter] [-p *prefix*] [-s *size*] [--[no-]inherit] [-v *volume*] [-P *type*] [-S *script*] [--fstab *path*] [--generate-fstab] [--grub-config *path*]** 

### Opciones
<a name="bundle-vol-parameters"></a>

`-c, --cert` *path*  
El archivo RSA de certificado de clave pública en código PEM del usuario.  
Obligatorio: sí

`-k, --privatekey ` *path*   
La ruta del archivo de clave RSA en código PEM del usuario.  
Obligatorio: sí

`-u, --user` *account*  
El ID de la cuenta de AWS del usuario sin guiones.  
Obligatorio: sí

`-d, --destination` *destination*  
El directorio en el que se crea la agrupación.  
Valor predeterminado: `/tmp`  
Obligatorio: no

`--ec2cert` *path*  
La ruta del certificado de clave pública Amazon EC2 X.509 utilizado para cifrar el manifiesto de la imagen.  
Las regiones `us-gov-west-1` y `cn-north-1` usan un certificado de clave pública no predeterminado y la ruta de dicho certificado debe especificarse con esta opción. La ruta del certificado varía según el método de instalación de las herramientas para AMI. En Amazon Linux, los certificados se encuentran en `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Si ha instalado las herramientas para AMI desde el archivo ZIP o RPM de [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md), los certificados se encuentran en `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obligatorio: solo para las regiones `us-gov-west-1` y `cn-north-1`.

`-r, --arch ` *architecture*  
La arquitectura de la imagen. Si no proporciona la arquitectura en la línea de comandos, se le pedirá que lo haga cuando se inicie la agrupación.  
Valores válidos: `i386` \$1 `x86_64`  
Requerido: No

`--productcodes` *code1,code2,...*  
Los códigos de producto que se adjuntan a la imagen en el momento del registro, separados por comas.  
Requerido: No

`-B, --block-device-mapping` *mapping*  
Define el modo en que los dispositivos de bloques se exponen a una instancia de esta AMI si el tipo de instancia admite el dispositivo especificado.  
Especifique una lista separada por comas de pares clave-valor, donde cada clave es un nombre virtual y cada valor es el nombre del dispositivo correspondiente. Entre los nombres virtuales se incluyen los siguientes:  
+ `ami`: el dispositivo del sistema de archivos raíz como lo ve la instancia
+ `root`: el dispositivo del sistema de archivos raíz como lo ve el kernel
+ `swap`: el dispositivo de intercambio como lo ve la instancia
+ `ephemeralN`: el volumen N-simo del almacén de instancias
Requerido: No

`-a, --all`  
Agrupe todos los directorios, incluidos los que se encuentran en sistemas de archivos montados de forma remota.  
Requerido: No

`-e, --exclude ` *directory1,directory2,...*  
Una lista de las rutas de directorio absolutas y los archivos que se excluyen de la operación de agrupación. Este parámetro sobrescribe la opción `--all`. Cuando se especifica la exclusión, los directorios y subdirectorios enumerados con el parámetro no se agruparán con el volumen.  
Requerido: No

`-i, --include ` *file1,file2,...*  
Una lista de los archivos que se incluirán en la operación de agrupación. De lo contrario, los archivos especificados se excluirían de la AMI porque podrían contener información confidencial.  
Requerido: No

`--no-filter`  
Si se especifica, no excluiremos los archivos de la AMI porque podrían contener información confidencial.  
Requerido: No

`-p, --prefix ` *prefix*  
El prefijo del nombre de archivo para los archivos de AMI agrupados.  
Valor predeterminado: `image`  
Requerido: No

`-s, --size` *size*  
El tamaño, en MB (1024 \$1 1024 bytes), del archivo de imagen que se va a crear. El tamaño máximo es 10.240 MB.   
Predeterminado: 10240  
Requerido: No

`--[no-]inherit`  
Indica si la imagen debería heredar los metadatos de la instancia (la opción predeterminada es heredar). La agrupación da error si habilita `--inherit` pero los metadatos de la instancia no son accesibles.  
Requerido: No

`-v, --volume ` *volume*  
La ruta absoluta del volumen montado a partir del que se crea la agrupación.  
Opción predeterminada: el directorio raíz (/)  
Requerido: No

`-P, --partition` *type*  
Indica si la imagen de disco debería usar una tabla de partición. Si no especifica un tipo de tabla de partición, la opción predeterminada es el tipo usado en el dispositivo de bloques del volumen, si se aplica; si no, la opción predeterminada es `gpt`.  
Valores válidos: `mbr` \$1 `gpt` \$1 `none`  
Requerido: No

`-S, --script` *script*  
Un script de personalización que se ejecuta justo antes de la agrupación. El script debe esperar un argumento único, el punto de montaje del volumen.  
Requerido: No

`--fstab` *path*  
La ruta de fstab que se agrupa en la imagen. Si no se especifica, Amazon EC2 agrupa /etc/fstab.  
Requerido: No

`--generate-fstab`  
Agrupa el volumen usando fstab proporcionado por Amazon EC2.  
Requerido: No

`--grub-config`  
La ruta de un archivo de configuración de grub alternativo para agrupar en la imagen. De manera predeterminada, `ec2-bundle-vol` espera que `/boot/grub/menu.lst` o `/boot/grub/grub.conf` exista en la imagen clonada. Esta opción permite especificar la ruta de un archivo de configuración de grub alternativo que después se copiará sobre los predeterminados (si existen).  
Requerido: No

`--kernel` *kernel\$1id*  
Obsoleto. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para establecer el kernel.  
Requerido: No

`--ramdisk`*ramdisk\$1id*  
Obsoleto. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para establecer el disco RAM si se requiere.  
Obligatorio: no

### Output
<a name="bundle-vol-output"></a>

Mensajes de estado que describen las fases y los estados de la agrupación.

### Ejemplo
<a name="bundle-vol-response"></a>

En este ejemplo se crea una AMI agrupada comprimiendo, cifrando y firmando una instantánea del sistema de archivos raíz del equipo local. 

```
[ec2-user ~]$ ec2-bundle-vol -d /mnt -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -r x86_64
  Copying / into the image file /mnt/image...
  Excluding:
       sys
       dev/shm
       proc
       dev/pts
       proc/sys/fs/binfmt_misc
       dev
       media
       mnt
       proc
       sys
       tmp/image
       mnt/img-mnt
  1+0 records in
  1+0 records out
  mke2fs 1.38 (30-Jun-2005)
  warning: 256 blocks unused.

  Splitting /mnt/image.gz.crypt...
  Created image.part.00
  Created image.part.01
  Created image.part.02
  Created image.part.03
  ...
  Created image.part.22
  Created image.part.23
  Generating digests for each part...
  Digests generated.
  Creating bundle manifest...
  Bundle Volume complete.
```

## ec2-delete-bundle
<a name="ami-delete-bundle"></a>

### Descripción
<a name="delete-bundle-description"></a>

Elimina la agrupación especificada del almacenamiento de Amazon S3. Después de eliminar una agrupación, no podrá iniciar instancias de la AMI correspondiente.

### Sintaxis
<a name="delete-bundle-request"></a>

****ec2-delete-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* [-t *token*] [--url *url*] [--region *region*] [--sigv *version*] [-m *path*] [-p *prefix*] [--clear] [--retry] [-y]** 

### Opciones
<a name="delete-bundle-parameters"></a>

`-b, --bucket `*bucket*  
El nombre del bucket de Amazon S3 que contienen la AMI agrupada, seguido de un prefijo de ruta delimitado por '/' opcional  
Obligatorio: sí

`-a, --access-key` *access\$1key\$1id*  
El ID de la clave de acceso de AWS.  
Obligatorio: sí

`-s, --secret-key` *secret\$1access\$1key*  
La clave de acceso secreta de AWS.  
Obligatorio: sí

`-t, --delegation-token` *token*  
El token de delegación que se pasa junto con la solicitud de AWS. Para obtener más información, consulte [Credenciales de seguridad temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) en la *Guía del usuario de IAM*.  
Obligatorio: solo cuando se utilizan credenciales de seguridad temporales.  
Valor predeterminado: el valor de la variable de entorno `AWS_DELEGATION_TOKEN` (si se ha establecido).

`--region`*region*  
La región que se usa en la firma de la solicitud.  
Valor predeterminado: `us-east-1`  
Obligatorio: obligatorio si se usa la versión 4 de firma

`--sigv`*version*  
La versión de la firma que se usará cuando se firme la solicitud.  
Valores válidos: `2` \$1 `4`  
Valor predeterminado: `4`  
Requerido: No

`-m, --manifest`*path*  
La ruta del archivo de manifiesto.  
Obligatorio: debe especificar `--prefix` o `--manifest`.

`-p, --prefix` *prefix*  
El prefijo del nombre de archivo de la AMI asociada. Proporcione el prefijo completo. Por ejemplo, si el prefijo es image.img, use `-p image.img` y no `-p image`.  
Obligatorio: debe especificar `--prefix` o `--manifest`.

`--clear`  
Elimina el bucket de Amazon S3 si está vacío después de eliminar la agrupación especificada.  
Requerido: No

`--retry`  
Reintenta automáticamente en todos los errores de Amazon S3, hasta cinco veces por operación.  
Requerido: No

`-y, --yes`  
Supone automáticamente que la respuesta a todas las peticiones es afirmativa.  
Obligatorio: no

### Output
<a name="delete-bundle-output"></a>

Amazon EC2 muestra mensajes de estado que indican las fases y el estado del proceso de eliminación.

### Ejemplo
<a name="delete-bundle-response"></a>

En este ejemplo se elimina una agrupación de Amazon S3.

```
[ec2-user ~]$ ec2-delete-bundle -b amzn-s3-demo-bucket -a your_access_key_id -s your_secret_access_key
Deleting files:
amzn-s3-demo-bucket/image.manifest.xml
amzn-s3-demo-bucket/image.part.00
amzn-s3-demo-bucket/image.part.01
amzn-s3-demo-bucket/image.part.02
amzn-s3-demo-bucket/image.part.03
amzn-s3-demo-bucket/image.part.04
amzn-s3-demo-bucket/image.part.05
amzn-s3-demo-bucket/image.part.06
Continue? [y/n]
y
Deleted amzn-s3-demo-bucket/image.manifest.xml
Deleted amzn-s3-demo-bucket/image.part.00
Deleted amzn-s3-demo-bucket/image.part.01
Deleted amzn-s3-demo-bucket/image.part.02
Deleted amzn-s3-demo-bucket/image.part.03
Deleted amzn-s3-demo-bucket/image.part.04
Deleted amzn-s3-demo-bucket/image.part.05
Deleted amzn-s3-demo-bucket/image.part.06
ec2-delete-bundle complete.
```

## ec2-download-bundle
<a name="ami-download-bundle"></a>

### Descripción
<a name="download-bundle-description"></a>

Descarga las AMI de Linux basadas en Amazon S3 especificadas del almacén de Amazon S3.

### Sintaxis
<a name="download-bundle-request"></a>

****ec2-download-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* -k *path* [--url *url*] [--region *region*] [--sigv *version*] [-m *file*] [-p *prefix*] [-d *directory*] [--retry]** 

### Opciones
<a name="download-bundle-parameters"></a>

`-b, --bucket` *bucket*  
El nombre del bucket de Amazon S3 en el que se encuentra la agrupación, seguido de un prefijo de ruta delimitado por '/' opcional.  
Obligatorio: sí

`-a, --access-key` *access\$1key\$1id*  
El ID de la clave de acceso de AWS.  
Obligatorio: sí

`-s, --secret-key` *secret\$1access\$1key*  
La clave de acceso secreta de AWS.  
Obligatorio: sí

`-k, --privatekey` *path*  
La clave privada usada para descifrar el manifiesto.  
Obligatorio: sí

`--url` *url*  
La URL del servicio Amazon S3.  
Valor predeterminado: `https://s3.amazonaws.com/`  
Requerido: No

`--region` *region*  
La región que se usa en la firma de la solicitud.  
Valor predeterminado: `us-east-1`  
Obligatorio: obligatorio si se usa la versión 4 de firma

`--sigv` *version*  
La versión de la firma que se usará cuando se firme la solicitud.  
Valores válidos: `2` \$1 `4`  
Valor predeterminado: `4`  
Requerido: No

`-m, --manifest` *file*  
El nombre del archivo de manifiesto (sin la ruta). Recomendamos que especifique el manifiesto (`-m`) o un prefijo (`-p`).  
Requerido: No

`-p, --prefix ` *prefix*  
El prefijo de nombre de archivo de los archivos de la AMI agrupados.  
Valor predeterminado: `image`  
Requerido: No

`-d, --directory ` *directory*  
El directorio donde se guarda la agrupación descargada. El directorio debe existir.  
Valor predeterminado: el directorio de trabajo actual.  
Requerido: No

 `--retry`   
Reintenta automáticamente en todos los errores de Amazon S3, hasta cinco veces por operación.  
Obligatorio: no

### Output
<a name="download-bundle-output"></a>

Se muestran los mensajes de estado que indican las distintas fases del proceso de descarga.

### Ejemplo
<a name="download-bundle-response"></a>

En este ejemplo se crea el directorio `bundled` (usando el comando de Linux **mkdir**) y se descarga la agrupación desde el bucket de Amazon S3 `amzn-s3-demo-bucket`.

```
[ec2-user ~]$ mkdir bundled
[ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d mybundle
Downloading manifest image.manifest.xml from amzn-s3-demo-bucket to mybundle/image.manifest.xml ...
Downloading part image.part.00 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.00 ...
Downloaded image.part.00 from amzn-s3-demo-bucket
Downloading part image.part.01 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.01 ...
Downloaded image.part.01 from amzn-s3-demo-bucket
Downloading part image.part.02 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.02 ...
Downloaded image.part.02 from amzn-s3-demo-bucket
Downloading part image.part.03 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.03 ...
Downloaded image.part.03 from amzn-s3-demo-bucket
Downloading part image.part.04 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.04 ...
Downloaded image.part.04 from amzn-s3-demo-bucket
Downloading part image.part.05 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.05 ...
Downloaded image.part.05 from amzn-s3-demo-bucket
Downloading part image.part.06 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.06 ...
Downloaded image.part.06 from amzn-s3-demo-bucket
```

## ec2-migrate-manifest
<a name="ami-migrate-manifest"></a>

### Descripción
<a name="migrate-manifest-description"></a>

Modifica una AMI de Linux basada en Amazon S3 (por ejemplo, su certificado, kernel y disco RAM) para que admita una región diferente.

### Sintaxis
<a name="migrate-manifest-request"></a>

****ec2-migrate-manifest** -c *path* -k *path* -m *path* \$1(-a *access\$1key\$1id* -s *secret\$1access\$1key* --region *region*) \$1 (--no-mapping)\$1 [--ec2cert *ec2\$1cert\$1path*] [--kernel *kernel-id*] [--ramdisk *ramdisk\$1id*]** 

### Opciones
<a name="migrate-manifest-parameters"></a>

`-c, --cert` *path*  
El archivo RSA de certificado de clave pública en código PEM del usuario.  
Obligatorio: sí

`-k, --privatekey` *path*  
La ruta del archivo de clave RSA en código PEM del usuario.  
Obligatorio: sí

`--manifest` *path*  
La ruta del archivo de manifiesto.  
Obligatorio: sí

`-a, --access-key` *access\$1key\$1id*  
El ID de la clave de acceso de AWS.  
Obligatorio: obligatorio si se utiliza el mapeo automático.

`-s, --secret-key ` *secret\$1access\$1key*  
La clave de acceso secreta de AWS.  
Obligatorio: obligatorio si se utiliza el mapeo automático.

`--region` *region*  
La región que se busca en el archivo de mapeo.  
Obligatorio: obligatorio si se utiliza el mapeo automático.

`--no-mapping`  
Deshabilita el mapeo automático de los kernels y discos RAM.  
 Durante la migración, Amazon EC2 remplaza el kernel y el disco RAM en el archivo de manifiesto con un kernel y un disco RAM diseñado para la región de destino. Salvo que se proporcione el parámetro `--no-mapping`, `ec2-migrate-bundle` puede usar las operaciones `DescribeRegions` y `DescribeImages` para llevar a cabo mapeos automáticos.   
Obligatorio: obligatorio si no proporciona las opciones `-a`, `-s` y `--region` usadas para el mapeo automático.

`--ec2cert` *path*  
La ruta del certificado de clave pública Amazon EC2 X.509 utilizado para cifrar el manifiesto de la imagen.  
Las regiones `us-gov-west-1` y `cn-north-1` usan un certificado de clave pública no predeterminado y la ruta de dicho certificado debe especificarse con esta opción. La ruta del certificado varía según el método de instalación de las herramientas para AMI. En Amazon Linux, los certificados se encuentran en `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Si ha instalado las herramientas para AMI del archivo ZIP en [Configuración de las herramientas de la AMI de Amazon EC2](set-up-ami-tools.md), los certificados se encuentran en `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obligatorio: solo para las regiones `us-gov-west-1` y `cn-north-1`.

`--kernel` *kernel\$1id*  
El ID del kernel que se va seleccionar.  
Recomendamos que use PV-GRUB en lugar de kernels y discos RAM. Para obtener más información, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html) en la *Guía del usuario de Amazon Linux 2*.
Obligatorio: no

`--ramdisk` *ramdisk\$1id*  
El ID del disco RAM para seleccionar.  
Recomendamos que use PV-GRUB en lugar de kernels y discos RAM. Para obtener más información, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html) en la *Guía del usuario de Amazon Linux 2*.
Obligatorio: no

### Output
<a name="migrate-manifest-output"></a>

Mensajes de estado que describen las fases y los estados del proceso de agrupación.

### Ejemplo
<a name="migrate-manifest-response"></a>

En este ejemplo se copia la AMI especificada en el manifiesto `my-ami.manifest.xml` de EE. UU. en la UE.

```
[ec2-user ~]$ ec2-migrate-manifest --manifest my-ami.manifest.xml --cert cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --privatekey pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --region eu-west-1 

Backing up manifest...
Successfully migrated my-ami.manifest.xml It is now suitable for use in eu-west-1.
```

## ec2-unbundle
<a name="ami-unbundle"></a>

### Descripción
<a name="unbundle-description"></a>

Crea de nuevo la agrupación desde una AMI de Linux basada en Amazon S3.

### Sintaxis
<a name="unbundle-request"></a>

****ec2-unbundle** -k *path* -m *path* [-s *source\$1directory*] [-d *destination\$1directory*]** 

### Opciones
<a name="unbundle-parameters"></a>

`-k, --privatekey` *path*  
La ruta del archivo de clave RSA en código PEM.  
Obligatorio: sí

`-m, --manifest` *path*  
La ruta del archivo de manifiesto.  
Obligatorio: sí

`-s, --source` *source\$1directory*  
El directorio que contiene la agrupación.  
Valor predeterminado: el directorio actual.  
Requerido: No

`-d, --destination` *destination\$1directory*  
El directorio donde se desagrupa la AMI. El directorio de destino debe existir.   
Valor predeterminado: el directorio actual.  
Obligatorio: no

### Ejemplo
<a name="unbundle-response"></a>

En este ejemplo de Linux y UNIX se desagrupa la AMI especificada en el archivo `image.manifest.xml`.

```
[ec2-user ~]$ mkdir unbundled
$ ec2-unbundle -m mybundle/image.manifest.xml -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -s mybundle -d unbundled
$ ls -l unbundled
total 1025008
-rw-r--r-- 1 root root 1048578048 Aug 25 23:46 image.img
```

### Output
<a name="unbundle-output"></a>

Se muestran los mensajes de estado que indican las distintas fases del proceso de desagrupación.

## ec2-upload-bundle
<a name="ami-upload-bundle"></a>

### Descripción
<a name="upload-bundle-description"></a>

Carga en Amazon S3 el paquete de una AMI de Linux basada en Amazon S3 y establece las listas de control de acceso (ACL) adecuadas en los objetos cargados. Para obtener más información, consulte [Creación de una AMI basada en Amazon S3](creating-an-ami-instance-store.md).

**nota**  
Para cargar objetos en un bucket de S3 para la AMI de Linux basada en Amazon S3, las ACL deben estar habilitadas para el bucket. De lo contrario, Amazon EC2 no podrá configurar las ACL en los objetos que se van a cargar. Si el bucket de destino utiliza la configuración impuesta por el propietario del bucket para la propiedad de objetos de S3, esto no funcionará porque las ACL están deshabilitadas. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

### Sintaxis
<a name="upload-bundle-request"></a>

****ec2-upload-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* [-t *token*] -m *path* [--url *url*] [--region *region*] [--sigv *version*] [--acl *acl*] [-d *directory*] [--part *part*] [--retry] [--skipmanifest]** 

### Opciones
<a name="upload-bundle-parameters"></a>

`-b, --bucket` *bucket*  
El nombre del bucket de Amazon S3 donde se almacena la agrupación, seguido de un prefijo de ruta delimitado por '/' opcional. Si el bucket no existe, se crea si se dispone del nombre del bucket. Además, si el bucket no existe y la versión de las herramientas de AMI es la 1.5.18 o posterior, este comando establece las ACL del bucket.  
Obligatorio: sí

`-a, --access-key` *access\$1key\$1id*  
El ID de la clave de acceso de AWS.  
Obligatorio: sí

`-s, --secret-key` *secret\$1access\$1key*  
La clave de acceso secreta de AWS.  
Obligatorio: sí

`-t, --delegation-token` *token*  
El token de delegación que se pasa junto con la solicitud de AWS. Para obtener más información, consulte [Credenciales de seguridad temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) en la *Guía del usuario de IAM*.  
Obligatorio: solo cuando se utilizan credenciales de seguridad temporales.  
Valor predeterminado: el valor de la variable de entorno `AWS_DELEGATION_TOKEN` (si se ha establecido).

`-m, --manifest` *path*  
La ruta del archivo de manifiesto. El archivo de manifiesto se crea durante el proceso de agrupación y se puede encontrar en el directorio que contiene la agrupación.  
Obligatorio: sí

`--url` *url*  
Obsoleto. Use la opción `--region` en su lugar salvo que el bucket esté restringido a la ubicación `EU` (y no `eu-west-1`). La marca `--location` es el único modo de controlar esa limitación de ubicación específica.  
La URL de servicio del punto de conexión de Amazon S3  
Valor predeterminado: `https://s3.amazonaws.com/`  
Requerido: No

`--region` *region*  
La región que se va a usar en la firma de la solicitud del bucket de destino de S3.  
+ Si el bucket no existe y no especifica una región, la herramienta crea el bucket sin una limitación de ubicación (en `us-east-1`).
+ Si el bucket no existe y especifica una región, la herramienta crea el bucket en la región especificada.
+ Si el bucket existe y no especifica una región, la herramienta usa la ubicación del bucket.
+ Si el bucket existe y especifica `us-east-1` como región, la herramienta usa la ubicación del bucket sin ningún mensaje de error y cualquier archivo existente que coincida se sobrescribe.
+ Si el bucket existe y especifica una región (distinta de `us-east-1`) que no coincida con la ubicación real del bucket, la herramienta sale sin dar error.
Si el bucket esté restringido a la ubicación `EU` (y no `eu-west-1`), use la marca `--location` en su lugar. La marca `--location` es el único modo de controlar esa limitación de ubicación específica.  
Valor predeterminado: `us-east-1`  
Obligatorio: obligatorio si se usa la versión 4 de firma

`--sigv` *version*  
La versión de la firma que se usará cuando se firme la solicitud.  
Valores válidos: `2` \$1 `4`  
Valor predeterminado: `4`  
Requerido: No

`--acl` *acl*  
La política de la lista de control de acceso de la imagen agrupada.  
Valores válidos: `public-read` \$1 `aws-exec-read`  
Valor predeterminado: `aws-exec-read`  
Requerido: No

`-d, --directory` *directory*  
El directorio que contiene las partes de AMI agrupadas.  
Valor predeterminado: el directorio que contiene el archivo de manifiesto (consulte la opción `-m`).  
Requerido: No

`--part` *part*  
Comienza a cargar la parte especificada y todas las partes subsecuentes. Por ejemplo, `--part 04`.  
Requerido: No

`--retry`  
Reintenta automáticamente en todos los errores de Amazon S3, hasta cinco veces por operación.  
Requerido: No

`--skipmanifest`  
No carga el manifiesto.  
Requerido: No

`--location` *location*  
Obsoleto. Use la opción `--region` en su lugar, salvo que el bucket esté restringido a la ubicación `EU` (y no `eu-west-1`). La marca `--location` es el único modo de controlar esa limitación de ubicación específica.  
La restricción de ubicación del bucket de Amazon S3 de destino. Si el bucket existe y especifica una ubicación que no coincide con la ubicación real del bucket, la herramienta sale sin dar error. Si el bucket existe y no especifica una ubicación, la herramienta usa la ubicación del bucket. Si el bucket no existe y especifica una ubicación, la herramienta crea el bucket en la ubicación especificada. Si el bucket no existe y no especifica una ubicación, la herramienta crea el bucket sin una restricción de ubicación (en `us-east-1`).   
Valor predeterminado: si se especifica `--region`, la ubicación se establece en esa región especificada. Si no se especifica `--region`, la ubicación predeterminada es `us-east-1`.  
Obligatorio: no

### Output
<a name="upload-bundle-output"></a>

Amazon EC2 muestra mensajes de estado que indican las fases y el estado del proceso de carga.

### Ejemplo
<a name="upload-bundle-response"></a>

En este ejemplo se carga la agrupación especificada en el manifiesto `image.manifest.xml`.

```
[ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key
Creating bucket...
Uploading bundled image parts to the S3 bucket amzn-s3-demo-bucket ...
Uploaded image.part.00
Uploaded image.part.01
Uploaded image.part.02
Uploaded image.part.03
Uploaded image.part.04
Uploaded image.part.05
Uploaded image.part.06
Uploaded image.part.07
Uploaded image.part.08
Uploaded image.part.09
Uploaded image.part.10
Uploaded image.part.11
Uploaded image.part.12
Uploaded image.part.13
Uploaded image.part.14
Uploading manifest ...
Uploaded manifest.
Bundle upload completed.
```

## Opciones comunes de las herramientas para AMI
<a name="common-args-ami"></a>

La mayoría de las herramientas para AMI aceptan los siguientes parámetros opcionales.

`--help, -h`  
Muestra el mensaje de ayuda.

`--version`  
Muestra la versión y el aviso de copyright.

`--manual`  
Muestra la entrada manual.

`--batch`  
Se ejecuta en modo por lotes y se suspenden las preguntas interactivas.

`--debug`  
Muestra información que puede ser útil para la solución de problemas.

# Conversión de la AMI basada en Amazon S3 a una AMI basada en EBS
<a name="Using_ConvertingS3toEBS"></a>

Puede convertir una AMI de Linux basada en Amazon S3 de la que sea propietario a una AMI de Linux basada en Amazon EBS. 

**importante**  
No puede convertir una AMI que no le pertenece.

**Conversión de una AMI basada en Amazon S3 a una AMI basada en Amazon EBS.**

1. Lance una instancia de Amazon Linux desde una AMI respaldada por Amazon EBS. Para obtener más información, consulte [Inicialización de una instancia de EC2 mediante el asistente de inicialización de instancias de la consola](ec2-launch-instance-wizard.md). Las instancias de Amazon Linux tienen las herramientas de la AMI y la AWS CLI preinstaladas.

1. Cargue la clave privada X.509 que utilizó para agrupar la AMI basada en Amazon S3 a la instancia. Esta clave se utiliza para garantizar que solo usted y Amazon EC2 pueden obtener acceso a la AMI.

   1. Cree un directorio temporal en la instancia para la clave privada X.509 del modo siguiente:

      ```
      [ec2-user ~]$ mkdir /tmp/cert
      ```

   1. Copie la clave privada X.509 del equipo en el directorio `/tmp/cert` de la instancia utilizando una herramienta de copia segura como [scp](linux-file-transfer-scp.md). El parámetro *my-private-key* del siguiente comando es la clave privada que utiliza para conectarse a la instancia con SSH. Por ejemplo:

      ```
      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/
      pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  717     0.7KB/s   00:00
      ```

1. Configurar las variables de entorno para usar el AWS CLI. Para obtener más información, consulte [Environment variables](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).

   1. (Recomendado) Configure las variables de entorno para la clave de acceso, la clave secreta y el token de acceso de AWS.

      ```
      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id
      [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
      [ec2-user ~]$ export AWS_SESSION_TOKEN=your_session_token
      ```

   1. Configure las variables de entorno para la clave de acceso y la clave secreta de AWS.

      ```
      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id
      [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
      ```

1. Prepare un volumen de Amazon Elastic Block Store (Amazon EBS) para la nueva AMI.

   1. Cree un volumen de EBS vacío en la misma zona de disponibilidad que la instancia con el comando [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html). Observe el ID de volumen en el resultado del comando.
**importante**  
 Este volumen de EBS debe tener el mismo tamaño o un tamaño mayor que el del volumen raíz del almacén de instancias original.

      ```
      aws ec2 create-volume \
          --size 10 \
          --region us-west-2 \
          --availability-zone us-west-2b
      ```

   1. Asocie el volumen a la instancia respaldada por Amazon EBS utilizando el comando [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html).

      ```
      aws ec2 attach-volume \
          --volume-id vol-01234567890abcdef \
          --instance-id i-1234567890abcdef0 \
          --region us-west-2
      ```

1. Cree una carpeta para el paquete.

   ```
   [ec2-user ~]$ mkdir /tmp/bundle
   ```

1. Descargue el paquete para la AMI basada en almacén de instancias en `/tmp/bundle` utilizando el comando [ec2-download-bundle](ami-tools-commands.md#ami-download-bundle).

   ```
   [ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
   ```

1. Reconstituya el archivo de imagen desde el paquete utilizando el comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

   1. Cambie los directorios a la carpeta del paquete.

      ```
      [ec2-user ~]$ cd /tmp/bundle/
      ```

   1. Ejecute el comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

      ```
      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
      ```

1. Copie los archivos de la imagen desagrupada al nuevo volumen de EBS.

   ```
   [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
   ```

1. Sondee el volumen por si existiera alguna partición nueva sin agrupar.

   ```
   [ec2-user bundle]$ sudo partprobe /dev/sdb1
   ```

1. Muestre los dispositivos de bloques para encontrar el nombre de dispositivo a montar.

   ```
   [ec2-user bundle]$ lsblk
   NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
   /dev/sda    202:0    0   8G  0 disk
   └─/dev/sda1 202:1    0   8G  0 part /
   /dev/sdb    202:80   0  10G  0 disk
   └─/dev/sdb1 202:81   0  10G  0 part
   ```

   En este ejemplo, la partición a montar es `/dev/sdb1`, pero el nombre de dispositivo probablemente será diferente. Si el volumen no está particionado, el dispositivo a montar será similar a `/dev/sdb` (sin el dígito final de la partición del dispositivo).

1. Cree un punto de montaje para el nuevo volumen de EBS y monte el volumen.

   ```
   [ec2-user bundle]$ sudo mkdir /mnt/ebs
   [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
   ```

1. Abra el archivo `/etc/fstab` del volumen de EBS con el editor de texto que prefiera (por ejemplo **vim** o **nano**) y elimine cualquier entrada para volúmenes (efímeros) de almacén de instancias. Puesto que el volumen de EBS está montado en `/mnt/ebs`, el archivo `fstab` se ubica en `/mnt/ebs/etc/fstab`.

   ```
   [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab
   #
   LABEL=/     /           ext4    defaults,noatime  1   1
   tmpfs       /dev/shm    tmpfs   defaults        0   0
   devpts      /dev/pts    devpts  gid=5,mode=620  0   0
   sysfs       /sys        sysfs   defaults        0   0
   proc        /proc       proc    defaults        0   0
   /dev/sdb        /media/ephemeral0       auto    defaults,comment=cloudconfig    0       2
   ```

   En este ejemplo se debe eliminar la última línea.

1. Desmonte el volumen y sepárelo de la instancia.

   ```
   [ec2-user bundle]$ sudo umount /mnt/ebs
   [ec2-user bundle]$ aws ec2 detach-volume --volume-id vol-01234567890abcdef --region us-west-2
   ```

1. Cree una AMI desde el nuevo volumen de EBS del modo siguiente.

   1. Cree una instantánea del nuevo volumen de EBS.

      ```
      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id vol-01234567890abcdef
      ```

   1. Verifique que la instantánea esté completa.

      ```
      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snap-0abcdef1234567890
      ```

   1. Identifique la arquitectura del procesador, el tipo de virtualización y la imagen del kernel (`aki`) utilizados en la AMI original con el comando **describe-images**. Para este paso, necesita el ID de AMI de la AMI original basada en Amazon S3.

      ```
      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-0abcdef1234567890 --output text
      IMAGES	x86_64	amazon/amzn-ami-pv-2013.09.2.x86_64-s3	ami-8ef297be	amazon	available	public	machine	aki-fc8f11cc	instance-store	paravirtual	xen
      ```

      En este ejemplo, la arquitectura es `x86_64` y el ID de la imagen del kernel es `aki-fc8f11cc`. Utilice estos valores en el siguiente paso. Si el resultado del comando anterior también muestra un `ari` ID, anótelo también.

   1. Registre la nueva AMI con el ID de la instantánea del nuevo volumen de EBS y los valores del paso anterior. Si el resultado del comando anterior mostró un ID `ari`, inclúyalo en el siguiente comando con `--ramdisk-id ari_id`.

      ```
      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snap-0abcdef1234567890} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
      ```

1. (Opcional) Una vez que haya probado que puede iniciar una instancia desde la nueva AMI, puede eliminar el volumen de EBS que creó para este procedimiento.

   ```
   aws ec2 delete-volume --volume-id vol-01234567890abcdef
   ```

# Creación de una AMI de Amazon EC2 con Windows Sysprep
<a name="ami-create-win-sysprep"></a>

La herramienta Microsoft System Preparation (Windows Sysprep) crea una versión generalizada del sistema operativo, en la que se elimina la configuración del sistema específica de la instancia antes de capturar una nueva imagen.

Recomendamos que utilice [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) para automatizar la creación, administración e implementación de imágenes de servidor “doradas” personalizadas, seguras y actualizadas que estén preinstaladas y preconfiguradas con software y configuración.

También puede usar Windows Sysprep para crear una AMI estándar con los agentes de lanzamiento de Windows: EC2Launch v2, EC2Launch y EC2Config.

**importante**  
No utilice Windows Sysprep para crear una copia de seguridad de la instancia. Windows Sysprep elimina información específica del sistema; la eliminación de dicha información podría tener consecuencias no deseadas para la copia de seguridad de la instancia.

Para solucionar problemas de Windows Sysprep, consulte [Solución de problemas de Sysprep con instancias de Amazon EC2 para Windows](sysprep-troubleshoot.md).

**Topics**
+ [Fases de Windows Sysprep](#sysprep-phases)
+ [Antes de empezar](#sysprep-begin)
+ [Utilización de Windows Sysprep con EC2Launch v2](sysprep-using-ec2launchv2.md)
+ [Utilización de Windows Sysprep con EC2Launch](ec2launch-sysprep.md)
+ [Utilización de Windows Sysprep con EC2Config](sysprep-using.md)

## Fases de Windows Sysprep
<a name="sysprep-phases"></a>

Windows Sysprep se ejecuta mediante las siguientes fases:
+ **Generalize**: la herramienta Sysprep elimina la información y las configuraciones específicas de la imagen. Por ejemplo, Windows Sysprep elimina el identificador de seguridad (SID), el nombre del equipo, los registros de eventos y los controladores específicos, por citar solo algunos. Una vez completada esta fase, el sistema operativo (OS) está listo para crear una AMI.
**nota**  
Cuando ejecuta Windows Sysprep con los agentes de inicialización de Windows, el sistema evita que se eliminen los controladores porque `PersistAllDeviceInstalls` está establecido como verdadero de forma predeterminada.
+ **Specialize**: La configuración "Plug and Play" analiza el equipo e instala controladores para cualquier dispositivo detectado. La herramienta Sysprep genera los requisitos del sistema operativo, como el nombre del equipo y el SID. Opcionalmente, puede ejecutar comandos en esta fase.
+ **Out-of-Box Experience (OOBE)**: el sistema ejecuta una versión abreviada de Windows Setup y le solicita que escriba información como el idioma del sistema, la zona horaria y una organización registrada. Al ejecutar Windows Sysprep con los agentes de inicialización de Windows, el archivo de respuestas automatiza esta fase.

## Antes de empezar
<a name="sysprep-begin"></a>
+ Antes de ejecutar Windows Sysprep, se recomienda que elimine todas las cuentas de usuarios locales y todos los perfiles de cuentas distintos de la cuenta de un único administrador en la que se ejecutará Windows Sysprep. Si ejecuta Windows Sysprep con otras cuentas y perfiles, es posible que se produzca un comportamiento inesperado, incluida la pérdida de datos del perfil o la imposibilidad de completar Windows Sysprep.
+ Obtenga más información sobre la [descripción general de Sysprep](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--system-preparation--overview).
+ Obtenga información sobre qué [roles de servidor admite Sysprep](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep-support-for-server-roles).

# Creación de una AMI mediante Windows Sysprep con EC2Launch v2
<a name="sysprep-using-ec2launchv2"></a>

Cuando crea una imagen a partir de una instancia con el agente de EC2Launch v2 instalado, EC2Launch v2 realiza tareas específicas a medida que se prepara la imagen. Esto incluye trabajar con Windows Sysprep. Para obtener más información, consulte [Fases de Windows Sysprep](ami-create-win-sysprep.md#sysprep-phases).

**Topics**
+ [Acciones de Windows Sysprep](#sysprep-actions-ec2launchv2)
+ [Después de Sysprep](#sysprep-post-ec2launchv2)
+ [Ejecutar Windows Sysprep con EC2Launch v2](#sysprep-gui-procedure-ec2launchv2)

## Acciones de Windows Sysprep
<a name="sysprep-actions-ec2launchv2"></a>

Windows Sysprep y EC2Launch v2 realizan las siguientes acciones al preparar una imagen.

1. Cuando elige **Shutdown with Sysprep** en el cuadro de diálogo de **EC2Launch settings**, el sistema ejecuta el comando `ec2launch sysprep`.

1. EC2Launch v2 edita el contenido del archivo `unattend.xml` leyendo el valor del registro en `HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName`. El archivo se encuentra en el siguiente directorio: `C:\ProgramData\Amazon\EC2Launch\sysprep`.

1. El sistema ejecuta `BeforeSysprep.cmd`. Este comando crea una clave del Registro como la siguiente:

   **reg add "HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Control\$1Terminal Server" /v fDenyTSConnections /t REG\$1DWORD /d 1 /f**

   La clave de registro deshabilita las conexiones RDP hasta que se vuelvan a habilitar. Deshabilitar las conexiones RDP es una medida de seguridad necesaria porque, durante la primera sesión de arranque tras ejecutarse Windows Sysprep, hay un breve período en el que RDP habilita las conexiones y la contraseña del administrador está vacía.

1. El servicio EC2Launch v2 llama a Windows Sysprep mediante la ejecución del siguiente comando:

   **sysprep.exe /oobe /generalize /shutdown /unattend: "C:\$1ProgramData\$1Amazon\$1EC2Launch\$1sysprep\$1unattend.xml"**

### Fase Generalize
<a name="sysprep-generalize-ec2launchv2"></a>
+ EC2Launch v2 elimina la información y la configuración específicas de la imagen, como el nombre del equipo y el SID. Si la instancia pertenece a un dominio, se elimina de dicho dominio. El archivo de respuestas `unattend.xml` incluye la siguiente configuración que afecta a esta fase: 
  + **PersistAllDeviceInstalls**: Esta configuración evita que Windows Setup elimine y vuelva a configurar dispositivos, lo que acelera el proceso de preparación de imágenes, ya que las AMI de Amazon requieren la ejecución de ciertos controladores y la nueva detección de dichos controladores podría llevar tiempo.
  + **DoNotCleanUpNonPresentDevices**: Esta configuración conserva la información Plug and Play de los dispositivos que no están presentes en ese momento.
+ Windows Sysprep apaga el sistema operativo al prepararse para crear la AMI. El sistema inicia una nueva instancia o bien inicia la instancia original.

### Fase Specialize
<a name="sysprep-specialize-ec2launchv2"></a>

El sistema genera los requisitos específicos del sistema operativo, como el nombre del equipo y un SID. Además, el sistema realiza las siguientes acciones en función de la configuración que especifique en el archivo de respuestas `unattend.xml`.
+ **CopyProfile**: Windows Sysprep se puede configurar para eliminar todos los perfiles de usuario, incluido el perfil de administrador integrado. Esta configuración conserva la cuenta de administrador incorporada para que cualquier personalización que realice en la cuenta se traslade a la nueva imagen. El valor predeterminado es `True`.

  **CopyProfile** sustituye el perfil predeterminado con el perfil de administrador local existente. Todas las cuentas en las que inicie sesión después de ejecutar Windows Sysprep recibirán una copia de dicho perfil y su contenido en el primer inicio de sesión. 

  Si no tiene ninguna personalización de perfiles de usuario específica que desee trasladar a la nueva imagen, cambie esta configuración a `False`. Windows Sysprep eliminará todos los perfiles de usuario (esto permite ahorrar tiempo y espacio en disco).
+ **TimeZone**: de forma predeterminada, la zona horaria está establecida en tiempo universal coordinado (UTC).
+ **Synchronous command with order 1**: El sistema ejecuta el siguiente comando que habilita la cuenta de administrador y especifica el requisito de contraseña:

  ```
  net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
  ```
+ **Synchronous command with order 2**: El sistema codifica la contraseña de administrador. Esta medida de seguridad está diseñada para evitar que se pueda acceder a la instancia después de que Windows Sysprep se complete si no configuró la tarea `setAdminAccount`.

  El sistema ejecuta el siguiente comando desde el directorio local de agentes de lanzamiento (`C:\Program Files\Amazon\EC2Launch\`).

  ```
  EC2Launch.exe internal randomize-password --username Administrator
  ```
+ Para habilitar las conexiones de escritorio remoto, el sistema establece la clave de registro de Terminal Server `fDenyTSConnections` en falso.

### Fase OOBE
<a name="sysprep-oobe-ec2launchv2"></a>

1. El sistema especifica las siguientes configuraciones mediante el archivo de respuesta de EC2Launch v2:
   + `<InputLocale>en-US</InputLocale>`
   + `<SystemLocale>en-US</SystemLocale>`
   + `<UILanguage>en-US</UILanguage>`
   + `<UserLocale>en-US</UserLocale>`
   + `<HideEULAPage>true</HideEULAPage>`
   + `<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>`
   + `<ProtectYourPC>3</ProtectYourPC>`
   + `<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>`
   + `<TimeZone>UTC</TimeZone>`
   + `<RegisteredOrganization>Amazon.com</RegisteredOrganization>`
   + `<RegisteredOwner>EC2</RegisteredOwner>`
**nota**  
Durante las fases de generalización y especialización, EC2Launch v2 monitorea el estado del sistema operativo. Si EC2Launch v2 detecta que el sistema operativo se encuentra en una fase de Sysprep, publica el siguiente mensaje en el registro del sistema:  
Se está configurando Windows. SysprepState=IMAGE\$1STATE\$1UNDEPLOYABLE

1. El sistema ejecuta EC2Launch v2.

## Después de Sysprep
<a name="sysprep-post-ec2launchv2"></a>

Después de que Windows Sysprep se complete, EC2Launch v2 envía el siguiente mensaje a la salida de la consola:

```
Windows sysprep configuration complete.
```

A continuación, EC2Launch v2 realiza las siguientes acciones:

1. Lee el contenido del archivo `agent-config.yml` y ejecuta las tareas configuradas. 

1. Ejecuta todas las tareas de la etapa `preReady`.

1. Después de que finalice, envía un mensaje `Windows is ready` a los registros del sistema de la instancia.

1. Ejecuta todas las tareas de la etapa `PostReady`.

Para obtener más información acerca de EC2Launch v2, consulte [Uso del agente EC2Launch v2 para realizar tareas durante la inicialización de una instancia de EC2](ec2launch-v2.md).

## Ejecutar Windows Sysprep con EC2Launch v2
<a name="sysprep-gui-procedure-ec2launchv2"></a>

Utilice el siguiente procedimiento para crear una AMI estandarizada mediante Windows Sysprep con EC2Launch v2.

1. En la consola de Amazon EC2, localice una AMI que desee duplicar.

1. Lance y conéctese a la instancia de Windows.

1. Configuración personalizada

   1. En el menú de **Inicio** de Windows, busque y elija **Configuración de Amazon EC2Launch**. Para obtener más información sobre las opciones y la configuración del cuadro de diálogo **Configuración de EC2Launch** de Amazon, consulte [Configuración de EC2Launch v2 en instancias de Windows](ec2launch-v2-settings.md).

   1. Si ha realizado cambios, seleccione **Guardar** antes de cerrar.

1. Seleccione **Cerrar con Sysprep** o **Cerrar sin Sysprep**.

Cuando se le solicite que confirme que desea ejecutar Windows Sysprep y cerrar la instancia, haga clic en **Sí**. EC2Launch v2 ejecuta Windows Sysprep. A continuación, se cierra la sesión en la instancia y esta se cierra. Si comprueba la página **Instancias** en la consola de Amazon EC2, el estado de la instancia cambia de `Running` a `Stopping` a `Stopped`. En este momento, es seguro crear una AMI desde esta instancia.

Puede invocar la herramienta Windows Sysprep manualmente desde la línea de comando utilizando el siguiente comando:

```
"%programfiles%\amazon\ec2launch\ec2launch.exe" sysprep --shutdown=true
```

# Creación de una AMI mediante Windows Sysprep con EC2Launch
<a name="ec2launch-sysprep"></a>

Cuando crea una imagen a partir de una instancia con el agente de EC2Launch instalado, EC2Launch realiza tareas específicas a medida que se prepara la imagen. Esto incluye trabajar con Windows Sysprep. Para obtener más información, consulte [Fases de Windows Sysprep](ami-create-win-sysprep.md#sysprep-phases).

EC2Launch ofrece un archivo de respuestas predeterminado y archivos por lotes para Windows Sysprep que automatizan y protegen el proceso de preparación de imágenes de la AMI. Es opcional modificar estos archivos. Estos archivos se encuentran de manera predeterminada en el siguiente directorio: `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep`.

**importante**  
No utilice Windows Sysprep para crear una copia de seguridad de la instancia. Windows Sysprep elimina la información específica del sistema. Si elimina esta información, podrían producirse consecuencias no deseadas en una copia de seguridad de instancias.

**Topics**
+ [Archivos por lotes y respuestas de EC2Launch para Windows Sysprep](#ec2launch-sysprep-answer-batch)
+ [Ejecute Windows Sysprep con EC2Launch](#ec2launch-sysprep-running)
+ [Actualice las rutas de metadatos/KMS para Server 2016 y versiones posteriores al iniciar una AMI personalizada.](#update-metadata-KMS)

## Archivos por lotes y respuestas de EC2Launch para Windows Sysprep
<a name="ec2launch-sysprep-answer-batch"></a>

El archivo de respuestas EC2Launch y los archivos por lotes de Windows Sysprep incluyen lo siguiente:

`Unattend.xml`  
Este es el archivo de respuestas predeterminado. Si ejecuta `SysprepInstance.ps1` o elige **ShutdownWithSysprep** en la interfaz de usuario, el sistema lee los ajustes en este archivo.

`BeforeSysprep.cmd`  
Personalice este archivo por lotes para que ejecute comandos antes de que EC2Launch ejecute Windows Sysprep.

`SysprepSpecialize.cmd`  
Personalice este archivo por lotes para que ejecute comandos durante la fase de specialize de Windows Sysprep.

## Ejecute Windows Sysprep con EC2Launch
<a name="ec2launch-sysprep-running"></a>

En la instalación completa de Windows Server 2016 y versiones posteriores (con la experiencia de escritorio), puede ejecutar Windows Sysprep con EC2Launch manualmente o con la aplicación **EC2 Launch Settings**.

**Para ejecutar Windows Sysprep mediante la aplicación EC2Launch Settings**

1. En la consola de Amazon EC2, localice o cree una AMI de Windows Server 2016 o posterior.

1. Lance una instancia de Windows desde la AMI.

1. Conéctese a la instancia de Windows y personalícela.

1. Busque la aplicación **EC2LaunchSettings** y ejecútela. De forma predeterminada, se encuentra en el siguiente directorio: `C:\ProgramData\Amazon\EC2-Windows\Launch\Settings`.  
![\[Aplicación EC2 Launch Settings\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ec2launch-sysprep.png)

1. Seleccione o borre las opciones que correspondan. Esta configuración se almacena en el archivo `LaunchConfig.json`.

1. En **Contraseña del administrador**, realice una de las acciones siguientes:
   + Elija **Asignación al azar**. EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras la inicialización de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.
   + Elija **Especificarla** y escriba una contraseña que cumpla los requisitos del sistema. La contraseña se almacena en `LaunchConfig.json` como texto sin cifrar y se elimina después de que Windows Sysprep define la contraseña del administrador. Si apaga en equipo en este momento, la contraseña se establece inmediatamente. EC2Launch cifra la contraseña usando la clave del usuario.
   + Elija **No hacer nada** y especifique una contraseña en el archivo `unattend.xml`. Si no especifica una contraseña en el archivo `unattend.xml`, la cuenta del administrador se deshabilitará.

1. Elija **Cerrar con Sysprep**.

**Para ejecutar Windows Sysprep manualmente mediante EC2Launch**

1. En la consola de Amazon EC2, localice o cree una AMI para Windows Server 2016 Datacenter Edition o posterior que desee duplicar.

1. Lance y conéctese a la instancia de Windows.

1. Personalice la instancia.

1. Especifique las opciones en el archivo `LaunchConfig.json`. De forma predeterminada, este archivo se encuentra en el directorio `C:\ProgramData\Amazon\EC2-Windows\Launch\Config`.

   En `adminPasswordType`, especifique uno de los siguientes valores:  
`Random`  
EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras la inicialización de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.  
`Specify`  
EC2Launch usa la contraseña que ha especificado en `adminPassword`. Si la contraseña no cumple los requisitos del sistema, EC2Launch genera una contraseña aleatoria en su lugar. La contraseña se almacena en `LaunchConfig.json` como texto sin cifrar y se elimina después de que Windows Sysprep define la contraseña del administrador. EC2Launch cifra la contraseña usando la clave del usuario.  
`DoNothing`  
EC2Launch usa la contraseña que ha especificado en el archivo `unattend.xml`. Si no especifica una contraseña en el archivo `unattend.xml`, la cuenta del administrador se deshabilitará.

1. (Opcional) Especifique los ajustes en `unattend.xml` y en los otros archivos de configuración. Si tiene pensado estar presente durante la instalación, no es necesario que realice cambios en estos archivos. Los archivos se encuentran de manera predeterminada en el siguiente directorio: `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep`.

1. En Windows PowerShell, ejecute `./InitializeInstance.ps1 -Schedule`. De forma predeterminada, el script se encuentra en el siguiente directorio: `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts`. Este script programa la instancia para que se inicialice durante el siguiente arranque. Debe ejecutar este script antes de ejecutar el script `SysprepInstance.ps1` en el paso siguiente.

1. En Windows PowerShell, ejecute `./SysprepInstance.ps1`. De forma predeterminada, el script se encuentra en el siguiente directorio: `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts`. 

Se cierra la sesión en la instancia y esta se cierra. Si comprueba la página **Instancias** en la consola de Amazon EC2, el estado de la instancia cambia de `Running` a `Stopping` y, a continuación, a `Stopped`. En este punto es seguro crear una AMI desde esta instancia.

## Actualice las rutas de metadatos/KMS para Server 2016 y versiones posteriores al iniciar una AMI personalizada.
<a name="update-metadata-KMS"></a>

Para actualizar las rutas de metadatos/KMS para Server 2016 y versiones posteriores al iniciar una AMI personalizada, aplique alguna de las siguientes acciones:
+ Ejecute la GUI EC2LaunchSettings (C:\$1ProgramData\$1Amazon\$1EC2-Windows\$1Launch\$1Settings\$1Ec2LaunchSettings.exe) y seleccione la opción para cerrar el sistema con Windows Sysprep.
+ Ejecute EC2LaunchSettings y cierre el sistema sin Windows Sysprep antes de crear la AMI. Esto establece las tareas de inicialización de inicialización de EC2 para que se ejecuten en el siguiente arranque; con ello, se establecen las rutas basadas en la subred para la instancia.
+ Si lo prefiere, puede reprogramar manualmente las tareas de inicialización de inicialización de EC2 antes de crear una AMI desde [PowerShell](ec2launch-config.md#ec2launch-inittasks). 
**importante**  
Tenga en cuenta el comportamiento predeterminado de restablecimiento de contraseña antes de reprogramar las tareas.
+ Para actualizar las rutas en una instancia en ejecución en la que se produzcan errores en sus metadatos durante la activación o comunicación con Windows, consulte ["No se puede activar Windows"](common-messages.md#activate-windows).

# Creación de una AMI mediante Windows Sysprep con EC2Config
<a name="sysprep-using"></a>

Cuando crea una imagen a partir de una instancia con el servicio de EC2Config instalado, EC2Config realiza tareas específicas a medida que se prepara la imagen. Esto incluye trabajar con Windows Sysprep. Para obtener más información, consulte [Fases de Windows Sysprep](ami-create-win-sysprep.md#sysprep-phases).

**Topics**
+ [Acciones de Windows Sysprep](#sysprep-actions)
+ [Después de Sysprep](#sysprep-post)
+ [Ejecución de Windows Sysprep con el servicio EC2Config](#sysprep-gui-procedure)

## Acciones de Windows Sysprep
<a name="sysprep-actions"></a>

Windows Sysprep y el servicio EC2Config realizan las siguientes acciones al preparar una imagen.

1. Cuando elige **Apagado con Sysprep** en el cuadro de diálogo **Propiedades del servicio EC2**, el sistema ejecuta el comando **ec2config.exe -sysprep**.

1. El servicio EC2Config lee el contenido del archivo `BundleConfig.xml`. De forma predeterminada, este archivo está ubicado en el siguiente directorio: `C:\Program Files\Amazon\Ec2ConfigService\Settings`.

    El archivo `BundleConfig.xml` incluye la siguiente configuración. Puede cambiar esta configuración:
   + **AutoSysprep**: indica si utilizar Windows Sysprep automáticamente. No es necesario cambiar este valor si ejecuta Windows Sysprep desde el cuadro de diálogo EC2 Service Properties. El valor predeterminado es `No`.
   + **SetRDPCertificate**: establece un certificado autofirmado para el servidor de Escritorio remoto. De este modo puede utilizar el Protocolo de escritorio remoto (RDP) de forma segura para conectarse a la instancia. Si las nuevas instancias deben utilizar un certificado, cambie el valor a `Yes`. Esta configuración no se utiliza con instancias de Windows Server 2012 porque estos sistemas operativos pueden generar sus propios certificados. El valor predeterminado es `No`.
   + **SetPasswordAfterSysprep**: establece una contraseña aleatoria para una instancia recién iniciada, la cifra con la clave de inicialización del usuario y devuelve la contraseña cifrada a la consola. Si las nuevas instancias no deben configurarse con una contraseña cifrada aleatoria, cambie el valor a `No`. El valor predeterminado es `Yes`.
   +  **PreSysprepRunCmd**: La ubicación del comando que se debe ejecutar. De forma predeterminada, el comando se encuentra en el siguiente directorio: `C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd`

1. El sistema ejecuta `BeforeSysprep.cmd`. Este comando crea una clave del Registro como la siguiente:

   ```
   reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
   ```

   La clave de registro deshabilita las conexiones RDP hasta que se vuelvan a habilitar. Deshabilitar las conexiones RDP es una medida de seguridad necesaria porque, durante la primera sesión de arranque tras ejecutarse Windows Sysprep, hay un breve período en el que RDP habilita las conexiones y la contraseña del administrador está vacía.

1. El servicio EC2Config llama a Windows Sysprep al ejecutar el siguiente comando:

   ```
   sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
   ```

### Fase Generalize
<a name="sysprep-generalize"></a>
+ La herramienta elimina la información y la configuración específicas de la imagen, como el nombre del equipo y el SID. Si la instancia pertenece a un dominio, se elimina de dicho dominio. El archivo de respuestas `sysprep2008.xml` incluye la siguiente configuración que afecta a esta fase: 
  + **PersistAllDeviceInstalls**: Esta configuración evita que Windows Setup elimine y vuelva a configurar dispositivos, lo que acelera el proceso de preparación de imágenes, ya que las AMI de Amazon requieren la ejecución de ciertos controladores y la nueva detección de dichos controladores podría llevar tiempo.
  + **DoNotCleanUpNonPresentDevices**: Esta configuración conserva la información Plug and Play de los dispositivos que no están presentes en ese momento.
+ Windows Sysprep apaga el sistema operativo al prepararse para crear la AMI. El sistema inicia una nueva instancia o bien inicia la instancia original.

### Fase Specialize
<a name="sysprep-specialize"></a>

El sistema genera los requisitos específicos del sistema operativo, como el nombre del equipo o un SID. Además, el sistema realiza las siguientes acciones, en función de la configuración que especifique en el archivo de respuestas sysprep2008.xml.
+ **CopyProfile**: Windows Sysprep se puede configurar para eliminar todos los perfiles de usuario, incluido el perfil de administrador integrado. Esta configuración conserva la cuenta de administrador incorporada para que cualquier personalización que haya realizado en la cuenta se traslade a la nueva imagen. El valor predeterminado es True.

  **CopyProfile** sustituye el perfil predeterminado con el perfil de administrador local existente. Todas las cuentas en las que se haya iniciado sesión después de ejecutar Windows Sysprep recibirán una copia de dicho perfil y su contenido en el primer inicio de sesión. 

  Si no tiene ninguna personalización de perfiles de usuario específica que desee trasladar a la nueva imagen, cambie esta configuración a False. Windows Sysprep eliminará todos los perfiles de usuario, lo que permite ahorrar tiempo y espacio en disco. 
+ **TimeZone**: De forma predeterminada, la zona horaria está establecida en tiempo universal coordinado (UTC).
+ **Synchronous command with order 1**: El sistema ejecuta el siguiente comando que habilita la cuenta de administrador y especifica el requisito de contraseña.

  **net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES**
+ **Synchronous command with order 2**: El sistema codifica la contraseña de administrador. Esta medida de seguridad está diseñada para evitar que la instancia sea accesible una vez se complete Windows Sysprep si no habilitó la configuración de ec2setpassword.

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1ScramblePassword.exe" -u Administrator
+ **Synchronous command with order 3**: El sistema ejecuta el siguiente comando:

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1SysprepSpecializePhase.cmd

   Este comando añade la siguiente clave de registro, que vuelve a habilitar RDP:

  añadir reg. "HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Control\$1Terminal Server" /v fDenyTSConnections /t REG\$1DWORD /d 0 /f

### Fase OOBE
<a name="sysprep-oobe"></a>

1. Utilizando el archivo de respuestas del servicio EC2Config, el sistema especifica las siguientes configuraciones:
   + <InputLocale>en-US</InputLocale>
   + <SystemLocale>en-US</SystemLocale>
   + <UILanguage>en-US</UILanguage>
   + <UserLocale>en-US</UserLocale>
   + <HideEULAPage>true</HideEULAPage>
   + <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
   + <NetworkLocation>Other</NetworkLocation>
   + <ProtectYourPC>3</ProtectYourPC>
   + <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
   + <TimeZone>UTC</TimeZone>
   + <RegisteredOrganization>Amazon.com</RegisteredOrganization>
   + <RegisteredOwner>Amazon</RegisteredOwner>
**nota**  
Durante las fases generalize y specialize, el servicio EC2Config monitoriza el estado del sistema operativo. Si EC2Config detecta que el sistema operativo se encuentra en una fase de Sysprep, publica el siguiente mensaje en el registro del sistema:  
EC2ConfigMonitorState: 0 Windows is being configured. SysprepState=IMAGE\$1STATE\$1UNDEPLOYABLE

1. Una vez completada la fase OOBE, el sistema ejecuta `SetupComplete.cmd` desde la siguiente ubicación: `C:\Windows\Setup\Scripts\SetupComplete.cmd`. En las AMI públicas de Amazon anteriores a abril de 2015, este archivo estaba vacío y no se ejecutaba nada en la imagen. En las AMI públicas con fecha posterior a abril de 2015, el archivo incluye el siguiente valor: **call "C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1PostSysprep.cmd"**.

1. El sistema ejecuta `PostSysprep.cmd`, que realiza las siguientes operaciones:
   + Establece la contraseña del administrador local de forma que no venza. Si la contraseña vence, es posible que los administradores no puedan iniciar sesión.
   + Establece el nombre del equipo de MSSQLServer (si está instalado) para que esté in sincronizado con la AMI.

## Después de Sysprep
<a name="sysprep-post"></a>

Una vez se complete Windows Sysprep, el servicio EC2Config envía el siguiente mensaje a la salida de la consola:

```
Windows sysprep configuration complete.
			Message: Sysprep Start
			Message: Sysprep End
```

A continuación, EC2Config realiza las siguientes acciones:

1. Lee el contenido del archivo config.xml y muestra todos los complementos habilitados. 

1. Ejecuta todos los complementos “Before Windows is ready” simultáneamente.
   + Ec2SetPassword
   + Ec2SetComputerName
   + Ec2InitializeDrives
   + Ec2EventLog
   + Ec2ConfigureRDP
   + Ec2OutputRDPCert
   + Ec2SetDriveLetter
   + Ec2WindowsActivate
   + Ec2DynamicBootVolumeSize

1. Una vez que ha finalizado, envía el mensaje “Windows is ready” a los registros del sistema de la instancia.

1. Ejecuta todos los complementos “After Windows is ready” simultáneamente.
   + Amazon CloudWatch Logs 
   + UserData
   + AWS Systems Manager (Systems Manager) 

Para obtener más información acerca de los complementos de Windows, consulte [Uso del servicio EC2Config para realizar tareas durante la inicialización de una instancia del sistema operativo Windows heredado de EC2](ec2config-service.md).

## Ejecución de Windows Sysprep con el servicio EC2Config
<a name="sysprep-gui-procedure"></a>

Utilice el siguiente procedimiento para crear una AMI estandarizada mediante Windows Sysprep y el servicio EC2Config.

1. En la consola de Amazon EC2, localice o [cree](creating-an-ami-ebs.md) una AMI que desee duplicar.

1. Lance y conéctese a la instancia de Windows.

1. Personalícela.

1. Especifique los valores de configuración en el archivo de respuestas del servicio EC2Config:

   `C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml`

1. En el menú **Start** de Windows, elija **All Programs** y, a continuación, elija **EC2ConfigService Settings**. 

1. Elija la pestaña **Image** del cuadro de diálogo **Ec2 Service Properties**. Para obtener más información acerca de las opciones y la configuración del cuadro de diálogo de Ec2 Service Properties, consulte [Ec2 Service Properties](ec2config-service.md).

1. Seleccione una opción para la contraseña del administrador y, a continuación, seleccione **Shutdown with Sysprep** o **Shutdown without Sysprep**. EC2Config edita los archivos de configuración en función de la opción que haya seleccionado para la contraseña.
   + **Random**: EC2Config genera una contraseña, la cifra con la clave del usuario y muestra la contraseña cifrada a la consola. Esta configuración se deshabilita tras la primera inicialización para que esta contraseña persista si la instancia se reinicia o si se detiene y se vuelve a iniciar.
   + **Specify**: la contraseña se almacena en el archivo de respuestas de Windows Sysprep en formato no cifrado (texto sin cifrar). Cuando Windows Sysprep vuelve a ejecutarse, establece la contraseña del administrador. Si apaga en equipo en este momento, la contraseña se establece inmediatamente. Al volver a iniciarse el servicio, se elimina la contraseña del administrador. Es importante recordar esta contraseña, ya que no podrá volver a recuperarla.
   + **Keep Existing**: la contraseña existente para la cuenta del administrador no cambia al ejecutar Windows Sysprep o al reiniciar EC2Config. Es importante recordar esta contraseña, ya que no podrá volver a recuperarla.

1. Seleccione **OK**.

Cuando se le solicite que confirme que desea ejecutar Windows Sysprep y cerrar la instancia, haga clic en **Sí**. Verá que EC2Config ejecuta Windows Sysprep. A continuación, se cierra la sesión en la instancia y esta se cierra. Si comprueba la página **Instancias** en la consola de Amazon EC2, el estado de la instancia cambia de `Running` a `Stopping` y, finalmente, a `Stopped`. En este momento, es seguro crear una AMI desde esta instancia.

Puede invocar la herramienta Windows Sysprep manualmente desde la línea de comando utilizando el siguiente comando:

```
"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep"" 
```

**nota**  
Las comillas dobles del comando no son necesarias si el shell del CMD ya está en el directorio C:\$1Program Files\$1Amazon\$1EC2ConfigService\$1.

No obstante, debe prestar especialmente atención para asegurarse de que las opciones del archivo XML especificadas en la carpeta `Ec2ConfigService\Settings` sean correctas, ya que, en caso contrario, es posible que no pueda conectarse a la instancia. Para obtener más información sobre los archivos de configuración, consulte [Archivos de configuración de EC2Config](ec2config-service.md#UsingConfigXML_WinAMI). Para ver un ejemplo de cómo configurar y ejecutar Windows Sysprep desde la línea de comando, consulte `Ec2ConfigService\Scripts\InstallUpdates.ps1`.

# Copia de una AMI de Amazon EC2
<a name="CopyingAMIs"></a>

Cuando necesite una configuración uniforme de las instancias de Amazon EC2 en varias regiones, puede utilizar una sola imagen de máquina de Amazon (AMI) como plantilla para lanzar todas las instancias. Sin embargo, las AMI son recursos específicos de una región: para lanzar una instancia en una Región de AWS específica, la AMI debe estar ubicada en esa región. Por lo tanto, para utilizar la misma AMI en varias regiones, debe copiarla de la región de origen a cada región de destino.

El método que utilice para copiar una AMI depende de si copia entre regiones *de la misma [partición](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#partition)* o *entre particiones diferentes*:
+ **Copia entre regiones**: copie las AMI entre las regiones *dentro de la misma partición*, por ejemplo, entre las regiones de la partición comercial. En el siguiente tema se describe este método de copia.
+ **Copia entre particiones**: copie las AMI *de una partición a otra*, por ejemplo, desde la partición comercial a la partición AWS GovCloud (US). Para obtener información sobre este método de copia , consulte [Almacenar y restaurar una AMIAMI permitidas](ami-store-restore.md).
+ **Copia entre cuentas**: cree una copia de una AMI que otra Cuenta de AWS haya [compartido con su Cuenta de AWS](sharingamis-explicit.md). En el siguiente tema se describe este método de copia.

El tiempo que se tarda en completar la operación de copia de las AMI entre regiones y entre cuentas será el menor en la medida de lo posible. Si tiene que controlar el tiempo de finalización, puede especificar un plazo de finalización que vaya de 15 minutos a 48 horas para asegurarse de que la AMI se copie dentro del plazo necesario. Se aplican cargos adicionales a las operaciones de copia de AMI basadas en el tiempo. Para obtener más información, consulte [Copias basadas en el tiempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html) en la *Guía del usuario de Amazon EBS*.

**Topics**
+ [Consideraciones](#copy-ami-considerations)
+ [Costos](#copy-ami-costs)
+ [Concesión de permisos para copiar AMI de Amazon EC2](copy-ami-permissions.md)
+ [Copiar una AMI](#ami-copy-steps)
+ [Detener una operación de copia de una AMI pendiente](#ami-copy-stop)
+ [Funcionamiento de la copia de AMI de Amazon EC2](how-ami-copy-works.md)

## Consideraciones
<a name="copy-ami-considerations"></a>
+ **Permiso para copiar AMI**: puede utilizar las políticas de IAM para conceder o denegar a los usuarios el permiso para copiar las AMI. Desde el 28 de octubre de 2024, puede especificar permisos a nivel de recursos para la acción `CopyImage` en la AMI de origen. Los permisos a nivel de recursos para la nueva AMI se encuentran disponibles como antes.
+ **Permisos de inicialización y permisos de bucket de Amazon S3**: AWS no copia los permisos de inicialización ni los permisos de bucket de Amazon S3 de la AMI de origen a la nueva AMI. Una vez que se haya completado la operación de copia, puede aplicar los permisos de inicialización y los permisos del bucket de Amazon S3 a la nueva AMI.
+ **Etiquetas**: solo puede copiar las etiquetas de AMI definidas por el usuario que haya adjuntado a la AMI de origen. Las etiquetas del sistema (con el prefijo `aws:`) y las etiquetas definidas por el usuario que estén adjuntas por otras Cuentas de AWS no se copiarán. Al copiar una AMI, puede adjuntar nuevas etiquetas a la nueva AMI y a sus instantáneas de respaldo.
+ **Cuotas para copias de AMI basadas en el tiempo**: después de que se alcanza la *cuota acumulada de rendimiento de copias de instantáneas*, las solicitudes posteriores de copias de AMI basadas en el tiempo fallan. Para obtener más información, consulte [ Cuotas para copias basadas en el tiempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html#time-based-copies-quota) en la *Guía del usuario de Amazon EBS*.
+ **Copias de origen y destino compatibles**: la ubicación de la AMI de origen determina si puede copiarla y los destinos permitidos para la nueva AMI:
  + Si la AMI de origen está en una región, puede copiarla dentro de esa región, en otra región o en un Outpost asociado a esa región, o en una zona local en esa región.
  + Si la AMI de origen está en una zona local, puede copiarla dentro de esa zona local, en la región principal de esa zona local o en otras zonas locales determinadas con la misma región principal.
  + Si la AMI de origen está en un Outpost, no puede copiarla.
+ **Parámetros de la CLI para el origen y el destino**: cuando se utiliza la CLI, se admiten los siguientes parámetros para especificar la ubicación de origen de la AMI que se va a copiar y el destino de la nueva AMI. Tenga en cuenta que la operación de copia debe iniciarse en la región de destino; si omite el parámetro `--region`, el destino asumirá la región predeterminada configurada en sus ajustes de la AWS CLI.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/CopyingAMIs.html)

## Costos
<a name="copy-ami-costs"></a>

No se cobra por copiar una AMI cuando no se especifica un tiempo de finalización. Sin embargo, se aplican cargos adicionales a las operaciones de copia de AMI basadas en el tiempo. Para obtener más información, consulte [Copias basadas en el tiempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html#time-based-copies-pricing) en la *Guía del usuario de Amazon EBS*.

Se aplican las tarifas estándar por almacenamiento y transferencia de datos. Si copia una AMI respaldada por EBS, se le cobrarán cargos por el almacenamiento de cualquier instantánea adicional de EBS.

# Concesión de permisos para copiar AMI de Amazon EC2
<a name="copy-ami-permissions"></a>

Para copiar una AMI basada en EBS o Amazon S3, necesita los siguientes permisos de IAM:
+ `ec2:CopyImage`: para copiar la AMI. En el caso de las AMI basadas en EBS, también concede permiso para copiar las instantáneas de respaldo de la AMI.
+ `ec2:CreateTags`: para etiquetar la AMI de destino. En el caso de las AMI basadas en EBS, también concede permiso para etiquetar las instantáneas de respaldo de la AMI de destino.

Si va a copiar una AMI basada en un almacén de instancias, necesitará los siguientes permisos de IAM *adicionales*:
+ `s3:CreateBucket`: para crear el bucket de S3 en la región de destino para la nueva AMI
+ `s3:PutBucketOwnershipControls`: para habilitar las ACL para el depósito de S3 recién creado de modo que los objetos se puedan escribir con la `aws-exec-read` [ACL predefinida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)
+ `s3:GetBucketAcl`: para leer las ACL del bucket de origen
+ `s3:ListAllMyBuckets`: para buscar un bucket de S3 existente para las AMI en la región de destino
+ `s3:GetObject`: para leer los objetos del bucket de origen
+ `s3:PutObject`: para escribir los objetos en el bucket de destino
+ `s3:PutObjectAcl`: para escribir los permisos de los nuevos objetos en el bucket de destino

**nota**  
Desde el 28 de octubre de 2024, puede especificar permisos a nivel de recursos para la acción `CopyImage` en la AMI de origen. Los permisos a nivel de recursos para la AMI de destino se encuentran disponibles como antes. Para obtener más información, consulte **CopyImage** en la tabla bajo [Acciones definidas por Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) en la *Referencia de autorización de servicio*.

## Ejemplo de política de IAM para copiar una AMI basada en EBS y etiquetar la AMI de destino y las instantáneas
<a name="permissions-to-copy-ebs-backed-ami"></a>

El siguiente ejemplo de política le concede permiso para copiar cualquier AMI basada en EBS y etiquetar la AMI de destino y sus instantáneas de respaldo.

**nota**  
Desde el 28 de octubre de 2024, puede especificar instantáneas en el elemento `Resource`. Para obtener más información, consulte **CopyImage** en la tabla bajo [Acciones definidas por Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) en la *Referencia de autorización de servicio*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "PermissionToCopyAllImages",
        "Effect": "Allow",
        "Action": [
            "ec2:CopyImage",
            "ec2:CreateTags"
        ],
        "Resource": [
            "arn:aws:ec2:*::image/*",
            "arn:aws:ec2:*::snapshot/*"
        ]
    }]
}
```

------

## Ejemplo de política de IAM para copiar una AMI basada en EBS, pero que deniega el etiquetado de las nuevas instantáneas
<a name="permissions-to-copy-ebs-backed-ami-but-deny-tagging-new-snapshots"></a>

El permiso `ec2:CopySnapshot` se concede automáticamente cuando se obtiene el permiso `ec2:CopyImage`. Se puede denegar explícitamente el permiso para etiquetar las nuevas instantáneas de respaldo, lo que anula el efecto `Allow` de la acción `ec2:CreateTags`.

La siguiente política de ejemplo le concede permiso para copiar cualquier AMI basada en EBS, pero le deniega etiquetar las nuevas instantáneas de respaldo de la AMI de destino.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:::snapshot/*"
        }
    ]
}
```

------

## Ejemplo de política de IAM para copiar una AMI basada en Amazon S3 y etiquetar la AMI de destino
<a name="permissions-to-copy-instance-store-backed-ami"></a>

La siguiente directiva de ejemplo le concede permiso para copiar cualquier AMI basada en Amazon S3 en el bucket de origen especificado a la región especificada, y etiquetar la AMI de destino.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "PermissionToCopyAllImages",
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:GetBucketAcl",
                "s3:PutObjectAcl",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amis-for-111122223333-in-us-east-2-hash"
            ]
        }
    ]
}
```

------

Para localizar el nombre de recurso de Amazon (ARN) del bucket de origen de la AMI, abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) y, en el panel de navegación, elija **AMI** y busque el nombre del bucket en la columna **Origen**.

**nota**  
El permiso `s3:CreateBucket` solo es necesario la primera vez que copia una AMI basada en Amazon S3 en una región individual. Después de eso, el bucket de Amazon S3 que ya se ha creado en la región se utiliza para almacenar todas las AMIs futuras que se copian en esa región.

## Copiar una AMI
<a name="ami-copy-steps"></a>

Puede copiar una AMI de su propiedad o una AMI compartida con usted desde otra cuenta. Para ver las combinaciones de origen y destino compatibles, consulte [Consideraciones](#copy-ami-considerations).

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

**Para copiar una AMI**

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

1. Desde la barra de navegación de la consola, seleccione la región que contiene la AMI.

1. En el panel de navegación, elija **AMI** para mostrar la lista de AMI disponibles en la región.

1. Si no ve la AMI que desea copiar, elija otro filtro. Puede filtrar según las AMI: **De mi propiedad**, **Imágenes privadas**, **Imágenes públicas** e **Imágenes deshabilitadas**.

1. Seleccione la AMI que desea copiar y elija **Acciones** y, a continuación, **Copiar AMI**.

1. En la página **Copiar imagen de máquina de Amazon (AMI)**, especifique la siguiente información:

   1. **Nombre de copia de AMI**: el nombre para la nueva AMI. Puede incluir la información del sistema operativo en el nombre porque Amazon EC2 no proporciona esta información cuando muestra detalles sobre la AMI.

   1. **Descripción de copia de AMI**: de forma predeterminada, la descripción incluye información acerca de la AMI de origen para que pueda diferenciar la copia de la original. Puede cambiar esta descripción según sea necesario.

   1. **Región de destino**: indica la región en la que desea copiar la AMI. Para obtener más información, consulte [Copias entre regiones](how-ami-copy-works.md#copy-amis-across-regions) y [Copias entre cuentas](how-ami-copy-works.md#copy-ami-across-accounts).

   1. **Copiar etiquetas**: seleccione esta casilla de verificación para incluir las etiquetas de AMI definidas por el usuario al copiar la AMI. Las etiquetas del sistema (con el prefijo `aws:`) y las etiquetas definidas por el usuario que estén adjuntas por otras Cuentas de AWS no se copiarán.

   1. **Copia basada en el tiempo**: puede especificar si la operación de copia se completa en un plazo específico o lo antes posible de la siguiente manera:
      + Para completar la copia dentro de un plazo específico:
        + Seleccione **Activar copia basada en el tiempo**.
        + En **Tiempo que tarda en completarse**, introduzca la cantidad de minutos (en incrementos de 15 minutos) que la operación de copia tiene permitida. La duración de finalización se aplica a todas las instantáneas asociadas a la AMI.

          Para obtener más información, consulte [Copias basadas en el tiempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html) en la *Guía del usuario de Amazon EBS*.
      + Para completar la copia lo antes posible:
        + Deje sin seleccionar la opción **Activar copia basada en el tiempo**.

   1. (Solo AMI basadas en EBS) **Cifrar instantáneas de EBS de una copia de AMI**: seleccione esta casilla para cifrar las instantáneas de destino o para volver a cifrarlas con una clave diferente. Si se habilita el cifrado de manera predeterminada, la casilla **Cifrar instantáneas de EBS de una copia de AMI** se selecciona y no se puede desactivar. Para obtener más información, consulte [Cifrado y copias](how-ami-copy-works.md#ami-copy-encryption).

   1. (Solo AMI basadas en EBS) **Clave de KMS**: la clave de KMS que se utilizará para cifrar las instantáneas de destino.

   1. **Etiquetas**: puede etiquetar la AMI y las instantáneas con las mismas etiquetas o con etiquetas diferentes.
      + Para etiquetar la AMI nueva y las instantáneas nuevas con las *mismas* etiquetas, elija **Etiquetar imagen e instantáneas juntas**. Las mismas etiquetas se aplican a la AMI nueva y a todas las instantáneas que se crean.
      + Para etiquetar la AMI nueva y las instantáneas nuevas con etiquetas *diferentes*, elija **Etiquetar imagen e instantáneas por separado**. Se aplican diferentes etiquetas a la AMI nuevas y a las instantáneas que se crean. Sin embargo, tenga en cuenta que todas las instantáneas nuevas que se crean obtienen las mismas etiquetas. No puede etiquetar cada instantánea nueva con una etiqueta diferente.

      Para agregar una etiqueta, elija **Agregar etiqueta** y especifique la clave y el valor de la etiqueta. Repita este proceso para cada etiqueta.

   1. Cuando lo tenga todo listo para copiar la AMI, seleccione **Copiar AMI**.

      El estado inicial de la nueva AMI es `Pending`. La operación de copia de la AMI finaliza cuando el estado es `Available`.

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

**Copia de una AMI de una región a otra**  
Utilice el comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `--source-region`. Puede especificar la región de destino mediante el parámetro `--region` (u omitir este parámetro para asumir que la región predeterminada está configurada en sus ajustes de la AWS CLI).

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region us-west-2 \
    --name my-ami \
    --region us-east-1
```

Al cifrar una instantánea de destino durante la copia de la AMI, debe especificar estos parámetros adicionales: `--encrypted` y `--kms-key-id`.

**Copia de una AMI de una región a una zona local**  
Utilice el comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `--source-region`. La zona local de destino se especifica mediante el parámetro `--destination-availability-zone` (puede utilizar `--destination-availability-zone-id` en su lugar). Tenga en cuenta que solo puede copiar una AMI de una región a una zona local dentro de esa misma región.

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --destination-availability-zone cn-north-1-pkx-1a \
    --name my-ami \
    --region cn-north-1
```

**Copia de una AMI de una zona local a una región**  
Utilice el comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `--source-region`. Especifique la región de destino mediante el parámetro `--region` (u omita este parámetro para asumir que la región predeterminada está configurada en sus ajustes de la AWS CLI). La zona local de origen se asume a partir de la ubicación del ID de AMI de origen especificado. Tenga en cuenta que solo puede copiar una AMI de una zona local a su región principal.

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --name my-ami \
    --region cn-north-1
```

**Copia de una AMI de una zona local a otra zona local**  
Utilice el comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html). Debe especificar tanto la región de origen como la de destino. La región de origen de la zona local se especifica mediante el parámetro `--source-region`. La zona local de destino se especifica mediante el parámetro `--destination-availability-zone` (puede utilizar `--destination-availability-zone-id` en su lugar). La zona local de origen se asume a partir de la ubicación del ID de AMI de origen especificado. Puede especificar la región principal del destino de la zona local mediante el parámetro `--region` (u omitir este parámetro para asumir que la región predeterminada está configurada en sus ajustes de la AWS CLI).

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --destination-availability-zone cn-north-1-pkx-1a \
    --name my-ami \
    --region cn-north-1
```

------
#### [ PowerShell ]

**Copia de una AMI de una región a otra**  
Utilice el cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `-SourceRegion`. Puede especificar la región de destino mediante el parámetro `-Region` o bien mediante el cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html).

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion us-west-2 `
    -Name my-ami `
    -Region us-east-1
```

Al cifrar una instantánea de destino durante la copia de la AMI, debe especificar estos parámetros adicionales: `-Encrypted` y `-KmsKeyId`.

**Copia de una AMI de una región a una zona local**  
Utilice el cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `-SourceRegion`. La zona local de destino se especifica mediante el parámetro `-DestinationAvailabilityZone` (puede utilizar `-DestinationAvailabilityZoneId` en su lugar). Tenga en cuenta que solo puede copiar una AMI de una región a una zona local dentro de esa misma región.

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -DestinationAvailabilityZone cn-north-1-pkx-1a `
    -Name my-ami `
    -Region cn-north-1
```

**Copia de una AMI de una zona local a una región**  
Utilice el cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Debe especificar tanto la región de origen como la de destino. La región de origen se especifica mediante el parámetro `-SourceRegion`. Puede especificar la región de destino mediante el parámetro `-Region` o bien mediante el cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html). La zona local de origen se asume a partir de la ubicación del ID de AMI de origen especificado. Tenga en cuenta que solo puede copiar una AMI de una zona local a su región principal.

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -Name my-ami `
    -Region cn-north-1
```

**Copia de una AMI de una zona local a otra zona local**  
Utilice el cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Debe especificar tanto la región de origen como la de destino. La región de origen de la zona local se especifica mediante el parámetro `-SourceRegion`. La zona local de destino se especifica mediante el parámetro `-DestinationAvailabilityZone` (puede utilizar `-DestinationAvailabilityZoneId` en su lugar). La zona local de origen se asume a partir de la ubicación del ID de AMI de origen especificado. Puede especificar la región principal del destino de la zona local mediante el parámetro `-Region` o bien mediante el cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html).

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -DestinationAvailabilityZone cn-north-1-pkx-1a `
    -Name my-ami `
    -Region cn-north-1
```

------

## Detener una operación de copia de una AMI pendiente
<a name="ami-copy-stop"></a>

Puede detener una copia de AMI pendiente con los siguientes procedimientos.

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

**Para detener una operación de copia de una AMI**

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

1. En la barra de navegación, seleccione la región de destino desde el selector de regiones.

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

1. Seleccione la AMI cuya copia desea detener y elija **Acciones** y, a continuación, **Anular registro de la AMI**.

1. Cuando se le solicite la confirmación, elija **Anular registro de AMI**.

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

**Para detener una operación de copia de una AMI**  
Utilice el comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html).

```
aws ec2 deregister-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para detener una operación de copia de una AMI mediante**  
Utilice el cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html).

```
Unregister-EC2Image -ImageId ami-0abcdef1234567890
```

------

# Funcionamiento de la copia de AMI de Amazon EC2
<a name="how-ami-copy-works"></a>

Si se copia una AMI de origen se obtiene una nueva AMI idéntica pero distinta, que también denominamos AMI de *destino*. La AMI de destino tiene su ID de AMI propio y único. Puede cambiar o cancelar el registro de la AMI de origen sin que ello afecte a la AMI de destino. y viceversa.

Con una AMI basada en EBS, cada una de las instantáneas con respaldo se copia en una instantánea de destino idéntica, pero distinta. Si copia una AMI en una región nueva, las instantáneas son copias completas (no incrementales). Si cifra instantáneas de copia de seguridad sin cifrar o las cifra en una nueva clave KMS, las instantáneas son copias completas (no incrementales). Las operaciones de copia posteriores de una AMI da como resultado copias incrementales de las instantáneas de copia de seguridad.

**Topics**
+ [Copias entre regiones](#copy-amis-across-regions)
+ [Copias entre cuentas](#copy-ami-across-accounts)
+ [Operaciones de copia de AMI basadas en el tiempo](#ami-time-based)
+ [Cifrado y copias](#ami-copy-encryption)

## Copias entre regiones
<a name="copy-amis-across-regions"></a>

El copiado de una AMI entre regiones geográficamente distribuidas proporciona los siguientes beneficios:
+ Implementación global coherente: al copiar una AMI de una región en otra, puede iniciar instancias coherentes basadas en la misma AMI en regiones diferentes.
+ Escalabilidad: puede diseñar y construir más fácilmente aplicaciones globales para satisfacer las necesidades de los usuarios, con independencia de su ubicación.
+ Desempeño: puede mejorar el desempeño distribuyendo la aplicación, así como localizando componentes fundamentales de esta más próximos a los usuarios. También puede aprovechar las características específicas para cada región, como tipos de instancia u otros servicios de AWS.
+ Alta disponibilidad: puede diseñar e implementar aplicaciones entre regiones de AWS para aumentar la disponibilidad.

En el siguiente diagrama, se muestra la relación entre una AMI de origen y dos AMI copiadas en diferentes regiones, además de las instancias de EC2 iniciadas desde cada una de ellas. Al iniciar una instancia desde una AMI, esta reside en la misma región en la que reside la AMI. Si realiza cambios en la AMI de origen y desea que estos se reflejen en las imágenes de tipo AMIs de las regiones de destino, debe volver a copiar la AMI de origen en las regiones de destino.

![\[AMI copiadas en diferentes regiones\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami_copy.png)


Al copiar por primera vez una AMI basada en Amazon S3 en una región, se crea un bucket de Amazon S3 para las AMI copiadas en dicha región. Todas las AMI basadas en Amazon S3 que copie en esa región se almacenan en dicho bucket. Los nombres de los buckets tienen el siguiente formato: amis-for-*cuenta*-in-*región*-*hash*. Por ejemplo: `amis-for-123456789012-in-us-east-2-yhjmxvp6`.

**Requisito previo**  
Antes de copiar una AMI, debe asegurarse de que el contenido de la AMI de origen esté actualizado para poder ser ejecutado en una región diferente. Por ejemplo, deberá actualizar las cadenas de conexión de la base de datos o cualquier otro dato de configuración de la aplicación para que se asocien a los recursos adecuados. De lo contrario, es posible que las instancias iniciadas desde la AMI nueva en la región de destino aún usen los recursos de la región de origen, lo cual puede afectar al rendimiento y al costo.

**Limitaciones**
+ Las regiones de destino están limitadas a 300 operaciones de copia de AMI simultáneas. Esto también se aplica a las operaciones de copia de AMI basadas en el tiempo.
+ No puede copiar una AMI paravirtual (PV) en una región que no admite AMI PV. Para obtener más información, consulte [Tipos de virtualización](ComponentsAMIs.md#virtualization_types).

## Copias entre cuentas
<a name="copy-ami-across-accounts"></a>

Si una AMI de otro Cuenta de AWS se [comparte con tu Cuenta de AWS](sharingamis-explicit.md), puede copiar la AMI compartida. Esto se conoce como copia entre cuentas. La AMI que se comparte con usted es la AMI de origen. Al copiar la AMI de origen, se crea una nueva AMI. La nueva AMI a menudo se denomina AMI objetivo.

**Costos de la AMI**
+ Los cargos de almacenamiento en la región se cobran a la cuenta propietaria.
+ Si copia una AMI que se ha compartido en su cuenta, será el propietario de la AMI de destino en su cuenta.
  + Al propietario de la AMI de origen se le cobran las tarifas de transferencia estándar de Amazon EBS o Amazon S3.
  + Se te cobrará por el almacenamiento de la AMI de destino en la región de destino.

**Permisos de recursos**  
Para copiar una AMI compartida con usted desde otra cuenta, el propietario de la AMI de origen debe concederle permisos de lectura para el almacenamiento que respalda a la AMI, no solo para la AMI misma. El almacenamiento es la instantánea de EBS asociada (para una AMI basada en Amazon EBS) o un bucket de S3 asociado (para una AMI basada en Amazon S3). Si la AMI compartida tiene instantáneas cifradas, el propietario debe compartirle la clave o las claves. Para obtener más información sobre cómo conceder permisos de recursos, en el caso de las instantáneas de EBS, consulte [Cómo compartir una instantánea de Amazon EBS con otras Cuentas de AWS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) en la *Guía del usuario de Amazon EBS*, y en el caso de los buckets de S3, consulte [Administración de identidades y acceso en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) en la *Guía del usuario de Amazon S3*.

**nota**  
Las etiquetas adjuntas a la AMI de origen no se copian entre las cuentas de la AMI de destino.

## Operaciones de copia de AMI basadas en el tiempo
<a name="ami-time-based"></a>

Cuando se inicia una operación de copia de una AMI basada en el tiempo para una AMI respaldada por EBS con una sola instantánea asociada, se comporta de la misma manera que **una operación de copia de instantáneas basada en el tiempo individual** y se aplican las mismas limitaciones de rendimiento.

Cuando se inicia una operación de copia de una AMI basada en el tiempo para una AMI respaldada por EBS con varias instantáneas asociadas, se comporta de la misma manera que **las operaciones simultáneas de copia de instantáneas basadas en el tiempo concurrentes** y se aplican las mismas limitaciones de rendimiento. Cada instantánea asociada da como resultado una solicitud de copia de instantánea independiente, cada una de las cuales contribuye a su cuota acumulativa de rendimiento de copia de instantáneas. El tiempo de finalización que especifique se aplica a cada instantánea asociada.

Para obtener más información, consulte [Copias basadas en el tiempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html) en la *Guía del usuario de Amazon EBS*.

## Cifrado y copias
<a name="ami-copy-encryption"></a>

En la siguiente tabla se muestra la compatibilidad con cifrado para diversos escenarios de copia de AMI. Si bien es posible copiar una instantánea sin cifrar para obtener una instantánea cifrada, no se puede copiar una instantánea cifrada para obtener una sin cifrar.


| Escenario | Descripción | Soportado | 
| --- | --- | --- | 
| 1 | De una sin cifrar a otra sin cifrar | Sí | 
| 2 | De una cifrada a otra cifrada | Sí | 
| 3 | De una sin cifrar a otra cifrada | Sí | 
| 4 | De una cifrada a otra sin cifrar | No | 

**nota**  
El cifrado durante la acción `CopyImage` solo se aplica a las imágenes de tipo AMIs con respaldo Amazon EBS. Dado que una AMI basada en Amazon S3 no utiliza instantáneas, no es posible utilizar la copia para cambiar su estado de cifrado.

Cuando se copia una AMI sin especificar parámetros de cifrado, la instantánea de respaldo se copia con su estado de cifrado original de forma predeterminada. Por lo tanto, si la AMI de origen está respaldada por una instantánea sin cifrar, la instantánea de destino resultante tampoco estará cifrada. Del mismo modo, si la instantánea de la AMI de origen está cifrada, la instantánea de destino resultante también estará cifrada con la misma clave de AWS KMS. En el caso de las AMI basadas en varias instantáneas, cada instantánea de destino conserva el estado de cifrado de su correspondiente instantánea de origen.

Para cambiar el estado de cifrado de las instantáneas de respaldo de destino al realizar una copia de la AMI, puede especificar parámetros de cifrado. En el siguiente ejemplo, se muestra un caso no predeterminado, en el que los parámetros de cifrado se especifican con la acción `CopyImage` para cambiar el estado de cifrado de la AMI de destino.

**Copia de una AMI de origen sin cifrar en una AMI de destino cifrada**

En este caso, una AMI respaldada por una instantánea raíz no cifrada se copia en una AMI con una instantánea raíz cifrada. La acción `CopyImage` se invoca con dos parámetros de cifrado, incluida una clave administrada por el cliente. Como resultado, el estado de cifrado de la instantánea raíz cambia, de modo que la AMI de destino se respalda por una instantánea raíz que contiene los mismos datos que la instantánea de origen, pero cifrada con la clave especificada. Usted incurre en costos de almacenamiento de las instantáneas en ambas AMI, así como en cargos correspondientes a las instancias que lance desde cualquiera de las AMI.

**nota**  
Habilitar el cifrado de forma predeterminada tiene el mismo efecto que configurar el parámetro `Encrypted` en `true` para todas las instantáneas de la AMI.

![\[Copia de la AMI y cifrado de la instantánea sobre la marcha\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-to-ami-convert.png)


La configuración del parámetro `Encrypted` cifra la única instantánea para esta instancia. Si no especifica el parámetro `KmsKeyId`, la clave predeterminada administrada por el cliente se utiliza para cifrar la copia de la instantánea.

Para obtener más información acerca de la copia de AMIs con instantáneas cifradas, consulte [Usar el cifrado con las AMI con respaldo de EBS](AMIEncryption.md).

# Almacenar y restaurar una AMI mediante S3
<a name="ami-store-restore"></a>

Puede almacenar una Imagen de máquina de Amazon (AMI) en un bucket de Amazon S3, copiar la AMI en otro bucket de S3 y, a continuación, restaurarla desde el bucket de S3. Al almacenar y restaurar una AMI usando buckets de S3, puede copiar AMI de una partición de AWS a otra, por ejemplo, desde la partición comercial principal a la partición AWS GovCloud (US). También puede hacer copias de archivo de AMI almacenándolas en un bucket de S3.

Las API admitidas para almacenar y restaurar una AMI usando S3 son `CreateStoreImageTask`, `DescribeStoreImageTasks` y `CreateRestoreImageTask`.

`CopyImage` es la API recomendada para copiar AMI *dentro de* una partición de AWS. Sin embargo, `CopyImage` no puede copiar una AMI a *otra* partición.

Para obtener información sobre las particiones de AWS, consulte *partición* en la página [Nombres de recursos de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) de la *Guía del usuario de IAM*.

**aviso**  
Asegúrese de que cumple con todas las leyes y requisitos empresariales aplicables al mover datos entre particiones de AWS o regiones de AWS, incluyendo, entre otros, cualquier normativa gubernamental aplicable y requisitos de residencia de datos.

**Topics**
+ [Casos de uso](#use-cases)
+ [Limitaciones](#ami-store-restore-limitations)
+ [Costos](#store-restore-costs)
+ [Funcionamiento del almacenamiento y restauración de AMI](store-restore-how-it-works.md)
+ [Creación de una tarea de almacenamiento de imágenes](work-with-ami-store-restore.md)

## Casos de uso
<a name="use-cases"></a>

**Topics**
+ [Copia de una AMI entre particiones de AWS](#copy-to-partition)
+ [Hacer copias de archivo de AMI](#archival-copies)

### Copia de una AMI entre particiones de AWS
<a name="copy-to-partition"></a>

Al almacenar y restaurar una AMI mediante buckets S3, puede copiar una AMI de una partición de AWS a otra, o de una región de AWS a otra. En el siguiente ejemplo, copia una AMI de la partición comercial principal a la partición de AWS GovCloud (US), específicamente desde la región `us-east-2` hacia la región `us-gov-east-1`.

Para copiar una AMI de una partición a otra, siga estos pasos:
+ Almacene la AMI en un bucket de S3 en la región actual mediante `CreateStoreImageTask`. En este ejemplo, el bucket de S3 se encuentra en `us-east-2`.
+ Supervise el progreso de la tarea de almacén mediante `DescribeStoreImageTasks`. El objeto se vuelve visible en el bucket de S3 cuando se completa la tarea.
+ Copie el objeto AMI almacenado en un bucket de S3 en la partición de destino mediante un procedimiento que elija. En este ejemplo, el bucket de S3 se encuentra en `us-gov-east-1`.
**nota**  
Debido a que necesita credenciales de AWS diferentes para cada partición, no puede copiar un objeto de S3 directamente de una partición a otra. El proceso para copiar un objeto de S3 a través de particiones está fuera del ámbito de esta documentación. Proporcionamos los siguientes procesos de copia como ejemplos, pero debe utilizar el proceso de copia que cumpla con los requisitos de seguridad.  
Para copiar una AMI entre particiones, el proceso de copiado podría ser tan sencillo como el siguiente: [descargue el objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) desde el bucket de origen a un host intermedio (por ejemplo, una instancia de EC2 o computadora personal) y, a continuación, [cargue el objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) desde el host al bucket de destino. Para cada etapa del proceso, utilice las credenciales de AWS de la partición.
Para un uso más constante, considere la posibilidad de desarrollar una aplicación que administre las copias, posiblemente al utilizar [descargas y cargas multiparte](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) de S3.
+ Restaure la AMI desde el bucket de S3 en la partición de destino mediante `CreateRestoreImageTask`. En este ejemplo, el bucket de S3 se encuentra en `us-gov-east-1`.
+ Supervise el progreso de la tarea de restauración describiendo la AMI para verificar cuando su estado esté disponible. También puede supervisar los porcentajes de progreso de las instantáneas que componen la AMI restaurada describiendo las instantáneas.

### Hacer copias de archivo de AMI
<a name="archival-copies"></a>

Puede hacer copias de archivo de AMI almacenándolas en un bucket de S3. La AMI se empaqueta en un solo objeto en S3 y todos los metadatos AMI (excluyendo la información compartida) se conservan como parte de la AMI almacenada. Los datos de AMI se comprimen como parte del proceso de almacenamiento. Las AMI que contienen datos que se pueden comprimir fácilmente darán como resultado objetos más pequeños en S3. Para reducir costos, puede utilizar niveles de almacenamiento S3 menos costosos. Para obtener más información, consulte las [clases de almacenamiento de Amazon S3](https://aws.amazon.com/s3/storage-classes/) y los [precios de Amazon S3](https://aws.amazon.com/s3/pricing/)

## Limitaciones
<a name="ami-store-restore-limitations"></a>
+ Para almacenar una AMI, su Cuenta de AWS debe ser propietaria de la AMI y sus instantáneas, o bien la AMI y sus instantáneas deben [compartirse directamente con su cuenta](sharingamis-explicit.md). No puede almacenar una AMI si solo [se comparte públicamente](sharingamis-intro.md).
+ Solo se pueden almacenar AMI respaldadas por EBS usando estas API.
+ No se admiten AMI paravirtuales (PV).
+ El tamaño de una AMI (antes de la compresión) que se puede almacenar está limitado a 5000 GB.
+ Cuota en solicitudes de imágenes de almacenamiento: 1200 GB de trabajo de almacenamiento (datos de instantáneas) en curso.
+ Cuota en solicitudes de imágenes de restauración: 600 GB de trabajo de restauración (datos de instantáneas) en curso.
+ Durante la tarea de almacenamiento, las instantáneas no deben eliminarse y la entidad principal de IAM que realiza el almacén debe tener acceso a las instantáneas; de lo contrario, el proceso de almacenamiento fallará.
+ No puede crear varias copias de una AMI en el mismo bucket de S3.
+ Una AMI almacenada en un bucket de S3 no se puede restaurar con su ID de AMI original. Puede mitigar esto mediante el uso de [alias AMI](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
+ En la actualidad, las API de almacenamiento y restauración solo se admiten mediante el uso de AWS Command Line Interface, AWS SDK y la API de Amazon EC2. No se puede almacenar ni restaurar una AMI mediante la consola de Amazon EC2.

## Costos
<a name="store-restore-costs"></a>

Cuando almacena y restaura AMI mediante S3, se le cobran los servicios que utilizan las API de almacenamiento y restauración, así como por la transferencia de datos. Las API utilizan S3 y EBS Direct API (utilizadas internamente por estas API para acceder a los datos de instantáneas). Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/) y [Precios de Amazon EBS](https://aws.amazon.com/ebs/pricing/).

# Funcionamiento del almacenamiento y restauración de AMI
<a name="store-restore-how-it-works"></a>

Para almacenar y restaurar una AMI mediante S3, utilice las siguientes API:
+ `CreateStoreImageTask` – Almacena la AMI en un bucket de S3
+ `DescribeStoreImageTasks` – Proporciona el progreso de la tarea de almacenamiento de AMI
+ `CreateRestoreImageTask` – Restaura la AMI desde un bucket de S3

**Topics**
+ [CreateStoreImageTask](#CreateStoreImageTask)
+ [DescribeStoreImageTasks](#DescribeStoreImageTasks)
+ [CreateRestoreImageTask](#CreateRestoreImageTask)
+ [Rutas de archivo](#file-paths-in-s3)

## CreateStoreImageTask
<a name="CreateStoreImageTask"></a>

La API `CreateStoreImageTask` almacena una AMI como un único objeto en un bucket de S3.

La API crea una tarea que lee todos los datos de la AMI y sus instantáneas y, a continuación, utiliza una [carga multiparte de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) para almacenar los datos en un objeto S3. La API toma todos los componentes de la AMI, incluida la mayoría de los metadatos AMI no específicos de la región, y todas las instantáneas de EBS contenidas en la AMI, y los empaqueta en un único objeto en S3. Los datos se comprimen como parte del proceso de carga para reducir la cantidad de espacio utilizado en S3, por lo que el objeto en S3 podría ser menor que la suma de los tamaños de las instantáneas en la AMI.

Si hay etiquetas AMI y de instantáneas visibles para la cuenta que llama a esta API, se conservan.

El objeto en S3 tiene el mismo ID que la AMI, pero con una extensión `.bin`. Los siguientes datos también se almacenan como etiquetas de metadatos S3 en el objeto S3: nombre de AMI, descripción de AMI, fecha de registro de AMI, cuenta de propietario de AMI y una marca de hora para la operación de almacén.

El tiempo que se tarda en completar la tarea depende del tamaño de la AMI. También depende de cuántas otras tareas estén en curso dado que las tareas están en cola. Puede hacer un seguimiento del progreso de la tarea mediante una llamada a la API `DescribeStoreImageTasks`.

La suma de los tamaños de todas las AMI en curso está limitada a 1200 GB de datos de instantáneas de EBS por cuenta. Se rechazará la creación de tareas adicionales hasta que las tareas en curso sean inferiores al límite. Por ejemplo, si se está almacenando una AMI con 200 GB de datos de instantáneas y otra AMI con 400 GB de datos de instantáneas, se aceptará otra solicitud, dado que el total en curso es de 600 GB, que es menor que el límite. Sin embargo, si una sola AMI con 1200 GB de datos de instantáneas se está almacenando actualmente, se rechazan otras tareas hasta que se complete la tarea.

## DescribeStoreImageTasks
<a name="DescribeStoreImageTasks"></a>

La API `DescribeStoreImageTasks` describe el progreso de las tareas de almacenamiento de las AMI. Puede describir tareas para AMI especificadas. Si no especifica AMI, obtendrá una lista paginada de todas las tareas de imagen de almacén que se han procesado en los últimos 31 días.

Para cada tarea AMI, la respuesta indica si la tarea es `InProgress`, `Completed` o `Failed`. En el caso de las tareas `InProgress`, la respuesta muestra un progreso estimado como porcentaje.

Las tareas se enumeran en orden cronológico inverso.

Actualmente, solo se pueden ver las tareas del mes anterior.

## CreateRestoreImageTask
<a name="CreateRestoreImageTask"></a>

La API `CreateRestoreImageTask` inicia una tarea que restaura una AMI de un objeto de S3 que se creó previamente mediante una solicitud `CreateStoreImageTask`.

La tarea de restauración se puede realizar en la misma región o en una región diferente en la que se realizó la tarea de almacenamiento.

El bucket de S3 desde el que se restaurará el objeto AMI debe estar en la misma región en la que se solicita la tarea de restauración. La AMI será restaurada en esta Región.

La AMI se restaura con sus metadatos, como el nombre, la descripción y las asignaciones de dispositivos de bloque correspondientes a los valores de la AMI almacenada El nombre debe ser único para las AMI de la región de esta cuenta. Si no proporciona un nombre, la nueva AMI obtiene el mismo nombre que la AMI original. La AMI obtiene un nuevo ID de AMI que se genera en el momento del proceso de restauración.

El tiempo que se tarda en completar la tarea de restauración de la AMI depende del tamaño de la AMI. También depende de cuántas otras tareas estén en curso dado que las tareas están en cola. Puede ver el progreso de la tarea describiendo la AMI ([describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html)) o sus instantáneas de EBS ([describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html)). Si la tarea falla, la AMI y las instantáneas se mueven a un estado de error.

La suma de los tamaños de todas las AMI en curso está limitada a 600 GB (según el tamaño después de la restauración) de los datos de instantáneas de EBS por cuenta. Se rechazará la creación de tareas adicionales hasta que las tareas en curso sean inferiores al límite.

## Rutas de archivo
<a name="file-paths-in-s3"></a>

Puede utilizar las rutas de archivos al almacenar y restaurar las AMI de la siguiente manera:
+ Al almacenar una AMI en S3, la ruta del archivo se puede agregar al nombre del bucket. Internamente, el sistema separa la ruta del nombre del bucket y, a continuación, agrega la ruta a la clave de objeto que se genera para almacenar la AMI. La ruta de objeto completa se muestra en la respuesta de la llamada a la API.
+ Al restaurar la AMI, dado que hay un parámetro de clave de objeto disponible, la ruta se puede agregar al principio del valor de la clave de objeto.

**Ejemplo: Nombre del bucket con ruta de archivo adjunta**  
Cuando almacene la AMI, especifique la ruta de archivo después del nombre del bucket.

```
amzn-s3-demo-bucket/path1/path2
```

Se genera la siguiente clave de objeto.

```
path1/path2/ami-0abcdef1234567890.bin
```

Al restaurar la AMI, se especifica tanto el nombre del bucket como la clave del objeto. Para ver ejemplos, consulte [Creación de una tarea de almacenamiento de imágenes](work-with-ami-store-restore.md#create-store-image-task).

# Creación de una tarea de almacenamiento de imágenes
<a name="work-with-ami-store-restore"></a>

Al almacenar una AMI en un bucket de S3, se crea una tarea de almacenamiento de imágenes. Puede utilizar la tarea de almacenamiento de imágenes para supervisar el progreso y el resultado del proceso.

**Topics**
+ [Protección de sus AMI](#securing-amis)
+ [Permisos para almacenar y restaurar AMI mediante S3](#ami-s3-permissions)
+ [Creación de una tarea de almacenamiento de imágenes](#create-store-image-task)
+ [Creación de una tarea de restauración de imágenes](#create-restore-image-task)

## Protección de sus AMI
<a name="securing-amis"></a>

Es importante asegurarse de que el bucket de S3 esté configurado con la seguridad suficiente para proteger el contenido de la AMI y que la seguridad se mantenga mientras los objetos AMI permanezcan en el bucket. Si esto no se puede hacer, no se recomienda el uso de estas API. Asegúrese de que el acceso público al bucket de S3 no está permitido. Recomendamos habilitar el [cifrado del lado del servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) para los buckets de S3 en los que almacena las AMI, aunque no es necesario.

Para obtener información acerca de cómo establecer la configuración de seguridad adecuada para los buckets de S3, consulte los siguientes temas de seguridad:
+ [Cómo bloquear el acceso público al almacenamiento de Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)
+ [Establecer el comportamiento predeterminado del cifrado del lado del servidor para los buckets de Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)
+ [¿Qué política de bucket de S3 debo utilizar para cumplir la regla s3-bucket-ssl-requests-only de AWS Config?](https://repost.aws/knowledge-center/s3-bucket-policy-for-config-rule)
+ [Habilitar el registro de acceso al servidor de Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)

Cuando las instantáneas de AMI se copian en el objeto de S3, los datos se copian a través de conexiones TLS. Puede almacenar AMI con instantáneas cifradas, pero las instantáneas se descifran como parte del proceso de almacenamiento.

## Permisos para almacenar y restaurar AMI mediante S3
<a name="ami-s3-permissions"></a>

Si sus entidades principales de IAM van a almacenar o restaurar AMI usando Amazon S3, debe concederles los permisos necesarios.

En la siguiente política de ejemplo se incluyen todas las acciones necesarias para permitir que una entidad principal de IAM lleve a cabo las tareas de almacenamiento y restauración.

También puede crear políticas de IAM que otorguen a las entidades principales acceso solo a recursos específicos. Para obtener más políticas de ejemplo, vea [Administración de acceso para los recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la *Guía del usuario de IAM*.

**nota**  
Si las instantáneas que componen la AMI están cifradas o si su cuenta está habilitada para el cifrado de forma predeterminada, la entidad principal de IAM debe tener permiso para usar la clave de KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:AbortMultipartUpload",
                "ebs:CompleteSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:ListChangedBlocks",
                "ebs:ListSnapshotBlocks",
                "ebs:PutSnapshotBlock",
                "ebs:StartSnapshot",
                "ec2:CreateStoreImageTask",
                "ec2:DescribeStoreImageTasks",
                "ec2:CreateRestoreImageTask",
                "ec2:GetEbsEncryptionByDefault",
                "ec2:DescribeTags",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Creación de una tarea de almacenamiento de imágenes
<a name="create-store-image-task"></a>

Para almacenar una AMI en un bucket de S3, comience por crear una tarea de almacenamiento de imágenes. El tiempo que se tarda en completar la tarea depende del tamaño de la AMI. Puede hacer un seguimiento del progreso de la tarea hasta que esta se complete correctamente o se produzca un error.

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

**Creación de la tarea de almacenamiento de imágenes**  
Utilice el comando [create-store-image-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-store-image-task.html).

```
aws ec2 create-store-image-task \
    --image-id ami-0abcdef1234567890 \
    --bucket amzn-s3-demo-bucket
```

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

```
{
  "ObjectKey": "ami-0abcdef1234567890.bin"
}
```

**Descripción del progreso de la tarea de almacenamiento de imágenes**  
Utilice el comando [describe-store-image-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-store-image-tasks.html).

```
aws ec2 describe-store-image-tasks \
    --image-ids ami-0abcdef1234567890 \
    --query StoreImageTaskResults[].StoreTaskState \
    --output text
```

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

```
InProgress
```

------
#### [ PowerShell ]

**Creación de la tarea de almacenamiento de imágenes**  
Utilice el cmdlet [New-EC2StoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2StoreImageTask.html).

```
New-EC2StoreImageTask `
    -ImageId ami-0abcdef1234567890 `
    -Bucket amzn-s3-demo-bucket
```

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

```
ObjectKey         : ami-0abcdef1234567890.bin
```

**Descripción del progreso de la tarea de almacenamiento de imágenes**  
Utilice el cmdlet [Get-EC2StoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2StoreImageTask.html).

```
(Get-EC2StoreImageTask -ImageId ami-0abcdef1234567890).StoreTaskState
```

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

```
InProgress
```

------

## Creación de una tarea de restauración de imágenes
<a name="create-restore-image-task"></a>

Debe especificar también un nombre para la AMI restaurada. El nombre debe ser único para las AMI de la región de esta cuenta. La AMI restaurada obtiene un nuevo ID de AMI.

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

**Creación de una tarea de restauración de imágenes**  
Utilice el comando [create-restore-image-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-restore-image-task.html).

```
aws ec2 create-restore-image-task \
    --object-key ami-0abcdef1234567890.bin \
    --bucket amzn-s3-demo-bucket \
    --name "my-restored-ami"
```

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

```
{
   "ImageId": "ami-1234567890abcdef0"
}
```

------
#### [ PowerShell ]

**Creación de una tarea de restauración de imágenes**  
Utilice el cmdlet [New-EC2RestoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2RestoreImageTask.html).

```
New-EC2RestoreImageTask `
    -ObjectKey ami-0abcdef1234567890.bin `
    -Bucket amzn-s3-demo-bucket `
    -Name "my-restored-ami"
```

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

```
ImageId         : ami-1234567890abcdef0
```

------

# Uso de la ascendencia de AMI para rastrear el origen de una AMI
<a name="ami-ancestry"></a>

La ascendencia de AMI permite rastrear el origen de una AMI al devolver los ID y las regiones de todas sus AMI ascendentes. Al crear o copiar una AMI, la nueva AMI conserva el ID y la región de su AMI de origen (principal). Esto permite rastrear la cadena de AMI hasta la AMI raíz.

**Ventajas principales**

El uso de AMI Ancestry permite:
+ rastrear los derivados de AMI para garantizar el cumplimiento de las políticas internas,
+ identificar las AMI potencialmente vulnerables cuando se detecte un problema de seguridad en una AMI ascendente,
+ mantener la visibilidad de los orígenes de la AMI en varias regiones.

**Topics**
+ [Funcionamiento de la ascendencia de AMI](#how-ami-ancestry-works)
+ [Consideraciones](#ami-ancestry-conditions)
+ [Cómo ver la ascendencia de AMI](#view-ami-ancestry)
+ [Cómo identificar la AMI de origen](#identify-source-ami-used-to-create-new-ami)

## Funcionamiento de la ascendencia de AMI
<a name="how-ami-ancestry-works"></a>

La ascendencia de AMI identifica la AMI principal utilizada para crear la AMI especificada, la principal, etc., hasta la AMI raíz. Así es como funciona:
+ Cada AMI muestra el ID y la región de su AMI de origen (principal).
+ A partir de la AMI seleccionada, la lista de entradas de ascendencia muestra cada AMI principal en secuencia.
+ La lista de entradas de ascendencia se remonta hasta la AMI raíz. La AMI raíz es una de los siguientes: 
  + Una AMI pública de un [proveedor verificado](sharing-amis.md#verified-ami-provider) (identificado por el alias de su propietario, que es `amazon` o `aws-marketplace`).
  + Un AMI sin ascendente registrado. Por ejemplo, cuando se usa [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot) para crear una AMI directamente a partir de un conjunto de instantáneas, no hay ninguna AMI de origen que rastrear, a diferencia de cuando se crea una AMI a partir de una instancia.
  + Una AMI cuya AMI de origen proviene de una [partición](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#partition) diferente.
  + La AMI número 50 de la lista. El número máximo de AMI en una lista de ascendencia es 50.

## Consideraciones
<a name="ami-ancestry-conditions"></a>
+ El ID y la región de la AMI de origen solo están disponibles para las AMI creadas con [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami), [CopyImage](CopyingAMIs.md#ami-copy-steps) o [CreateRestoreImageTask](store-restore-how-it-works.md#CreateRestoreImageTask).
+ En el caso de las AMI creadas mediante [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami) (crea una AMI a partir de una instancia), el ID de la AMI de origen es el ID de la AMI utilizada para lanzar la instancia.
+ La información de origen sobre la AMI no está disponible para:
  + las AMI que se crearon con [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot), ya que se crearon a partir de instantáneas,
  + algunas AMI antiguas.
+ La información de la AMI de origen se conserva cuando:
  + las AMI se copian en entre regiones,
  + las AMI de origen se anulan del registro (se eliminan),
  + no se tiene acceso a las AMI de origen.
+ Cada lista de ascendencia está limitada a 50 AMI.

## Cómo ver la ascendencia de AMI
<a name="view-ami-ancestry"></a>

Puede ver la ascendencia de AMI utilizando los siguientes métodos.

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

**Cómo ver la ascendencia de AMI**

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 AMI y elija la pestaña **Ascendencia de AMI**.

1. La tabla **Entradas de ascendencia de AMI** muestra todas las AMI de la lista de ascendencia.
   + **ID de AMI**: El ID de cada AMI de la lista de ascendencia. La primera entrada de la tabla es la AMI seleccionada, seguida de sus ascendentes.
   + **ID de AMI de origen**: El ID de la AMI a partir de la cual se creó la columna del **ID de AMI**. Un guión (**-**) indica el final de la lista de ascendencia de AMI.
   + **Región de la AMI de origen**: La Región de AWS donde se encuentra la AMI de origen.
   + **Nivel de ascendencia**: Posición en la lista de ascendencia, donde:
     + **0 (AMI de entrada)** indica la AMI seleccionada cuya ascendencia se desea conocer.
     + Los números crecientes muestran ascendentes más antiguos.
     + ***n* (AMI original)** indica la AMI raíz, y el número indica hasta qué punto se remonta la lista de ascendencia.
   + **Fecha de creación**: Cuando se creó la AMI, en formato UTC.
   + **Alias del propietario**: El alias del propietario de la AMI (por ejemplo, `amazon`). Un guión (**-**) indica que la AMI no tiene un alias de propietario.

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

**Cómo ver la ascendencia de AMI**  
Utilice el comando [get-image-ancestry](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-ancestry.html) y especifique el ID de AMI.

```
aws ec2 get-image-ancestry \
    --image-id ami-1111111111EXAMPLE \
    --region us-east-1
```

A continuación, se muestra un ejemplo del resultado. El resultado muestra las AMI en orden de ascendencia: la primera entrada es la AMI especificada (de entrada), seguida de su principal, la principal de la principal, etc., y termina con la AMI raíz.

```
{
    "ImageAncestryEntries": [
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-1111111111EXAMPLE", // Input AMI
            "SourceImageId": "ami-2222222222EXAMPLE",
            "SourceImageRegion": "us-east-1"

        },
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-2222222222EXAMPLE", // Parent AMI
            "SourceImageId": "ami-3333333333EXAMPLE",
            "SourceImageRegion": "us-east-1"
        },
        ...
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-8888888888EXAMPLE", // Root AMI
            "ImageOwnerAlias": "aws-marketplace",
            "SourceImageId": "ami-9999999999EXAMPLE",
            "SourceImageRegion": "us-east-2"
        }
    ]
}
```

------
#### [ PowerShell ]

**Cómo ver la ascendencia de AMI**  
Utilice el cmdlet [Get-EC2ImageAncestry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAncestry.html).

```
Get-EC2ImageAncestry -ImageId ami-1111111111EXAMPLE
```

A continuación, se muestra un ejemplo del resultado. El resultado muestra las AMI en orden de ascendencia: la primera entrada es la AMI especificada (de entrada), seguida de su principal, la principal de la principal, etc., y termina con la AMI raíz.

```
ImageAncestryEntries : {
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-1111111111EXAMPLE"    # Input AMI
        SourceImageId = "ami-2222222222EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-2222222222EXAMPLE"    # Parent AMI
        SourceImageId = "ami-3333333333EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    ...
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-8888888888EXAMPLE"    # Root AMI
        ImageOwnerAlias = "aws-marketplace"
        SourceImageId = "ami-9999999999EXAMPLE"
        SourceImageRegion = "us-east-2"
    }
}
```

------

## Cómo identificar la AMI de origen
<a name="identify-source-ami-used-to-create-new-ami"></a>

Si solo necesita identificar la AMI principal inmediata (origen) utilizada para crear una AMI, puede usar los siguientes métodos.

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

**Cómo identificar la AMI de origen utilizada para crear la AMI seleccionada**

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 la AMI para ver sus detalles.

   La información de la AMI de origen aparece en los siguientes campos: **ID de la AMI de origen** y **Región de la AMI de origen**.

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

**Cómo identificar la AMI de origen utilizada para crear la AMI especificada**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) .

```
aws ec2 describe-images \
    --region us-east-1 \
    --image-ids ami-0abcdef1234567890 \
    --query "Images[].{ID:SourceImageId,Region:SourceImageRegion}"
```

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

```
[
    {
        "ID": "ami-0abcdef1234567890",
        "Region": "us-west-2"
    }
}
```

------
#### [ PowerShell ]

**Cómo identificar la AMI de origen utilizada para crear la AMI especificada**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image -ImageId ami-0abcdef1234567890 | Select SourceImageId, SourceImageRegion
```

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

```
SourceImageId           SourceImageRegion
-------------           -----------------
ami-0abcdef1234567890 us-west-2
```

------

# Administre y supervise el uso de la AMI
<a name="ec2-ami-usage"></a>

AWS proporciona varias características que ayudan a administrar y supervisar el uso de la AMI de forma eficaz. Puede realizar un seguimiento de las cuentas que utilizan sus AMI compartidas, identificar cuándo se usaron las AMI por última vez y descubrir qué recursos de su Cuenta de AWS hacen referencia a AMI específicas.

La siguiente tabla brinda información general de las características para administrar y supervisar el uso de AMI:


| Característica | Caso de uso | Ventajas principales | 
| --- | --- | --- | 
| [Informes de uso de AMI](your-ec2-ami-usage.md) | Obtenga visibilidad sobre cuáles Cuentas de AWS utilizan sus AMI y en qué medida se utiliza cada una de ellas. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [Seguimiento del último uso](ami-last-launched-time.md) | Compruebe cuándo se utilizó su AMI por última vez. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [Verificación de referencia de AMI](ec2-ami-references.md) | Asegúrese de que sus recursos de AWS estén utilizando las AMI compatibles más recientes. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 

**Topics**
+ [Vea su uso de AMI](your-ec2-ami-usage.md)
+ [Comprobación de cuándo se utilizó una AMI de Amazon EC2 por última vez](ami-last-launched-time.md)
+ [Identifique sus recursos haciendo referencia a las AMI especificadas](ec2-ami-references.md)

# Vea su uso de AMI
<a name="your-ec2-ami-usage"></a>

Si comparte sus Imágenes de máquina de Amazon (AMI) con otras Cuentas de AWS, ya sea con organizaciones específicas de Cuentas de AWS, unidades organizativas (UO) o de forma pública, puede ver cómo se utilizan estas AMI mediante la creación de informes de uso de AMI. Los informes proporcionan visibilidad sobre:
+ Cuáles Cuentas de AWS utilizan sus AMI en instancias de EC2 o plantillas de lanzamiento
+ Cuántas instancias de EC2 o plantillas de inicialización hacen referencia a cada AMI

Los informes de uso de las AMI le ayudan a administrar sus AMI de forma más eficaz, ya que le ayudan a:
+ Identifique las Cuentas de AWS y los tipos de recursos que hacen referencia a sus AMI para poder anular el registro o deshabilitar las AMI de forma segura.
+ Identifique las AMI no utilizadas para cancelar el registro y reducir los costos de almacenamiento.
+ Identifique las AMI más utilizadas.

**Topics**
+ [Cómo funcionan los informes de uso de AMI](#how-ami-usage-reports-work)
+ [Crear un informe de uso de AMI](#create-ami-usage-reports)
+ [Visualización de informes de uso de AMI](#view-ami-usage-reports)
+ [Eliminar un informe de uso de AMI](#delete-ami-usage-reports)
+ [Cuotas de informes](#ami-usage-report-quotas)

## Cómo funcionan los informes de uso de AMI
<a name="how-ami-usage-reports-work"></a>

Al crear un informe de uso de AMI, especifica:
+ La AMI sobre la que informar.
+ Las Cuentas de AWS que se van a comprobar (cuentas específicas o todas las cuentas).
+ Los tipos de recursos que se van a comprobar (instancias de EC2, plantillas de inicialización o ambas).
+ En el caso de las plantillas de inicialización, el número de versiones que se van a comprobar (de forma predeterminada son las 20 versiones más recientes).

Amazon EC2 crea un informe independiente para cada AMI. Cada informe proporciona:
+ Una lista de las Cuentas de AWS que utilizan la AMI.
+ Un recuento de los recursos que hacen referencia a la AMI por tipo de recurso por cuenta. Tenga en cuenta que, en el caso de las plantillas de inicialización, si se hace referencia a una AMI en varias versiones de una plantilla de inicialización, el recuento es solo de 1.

**importante**  
Al generar un informe de uso de AMI, es posible que no contenga la actividad más reciente. Es posible que la actividad de las instancias de las últimas 24 horas y la actividad de la plantilla de inicialización de los últimos días no aparezcan en el informe.

Amazon EC2 elimina automáticamente un informe 30 días después de su creación. Puede descargar informes desde la consola de EC2 para retenerlos localmente.

## Crear un informe de uso de AMI
<a name="create-ami-usage-reports"></a>

Para ver cómo se utiliza la AMI, primero debe crear un informe de uso de AMI en el que se especifiquen las cuentas y los tipos de recursos sobre los que se va a informar. Una vez que el informe esté creado, puede ver su contenido. También puede descargar el informe desde la consola de EC2.

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

**Creación de un informe de uso de AMI**

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 AMI y elija **Acciones**, **Uso de AMI**, **Ver mi uso de AMI**.

1. En la página **Crear mi informe de uso de AMI**, haga lo siguiente:

   1. En los **Tipos de recursos**, seleccione uno o más tipos de recursos sobre los cuales se va a informar.

   1. En los **ID de las cuentas**, realice una de las siguientes acciones:
      + Elija **Especificar los ID de las cuentas** y, a continuación, elija **Agregar ID de cuenta** para cada cuenta sobre la que desee generar el informe.
      + Elija **Incluir todas las cuentas** para generar informes sobre todas las cuentas.

   1. Elija **Crear mi informe de uso de AMI**.

1. En la página de la AMI, elija la pestaña **Uso de mi AMI**.

1. Elija un ID de informe para ver sus detalles.

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

**Para crear un informe de uso de AMI para una lista de cuentas**  
Utilice el comando [create-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image-usage-report.html) con los siguientes parámetros obligatorios:
+ `--image-id`: el ID de la AMI sobre la que se va a informar.
+ `--resource-types`: los tipos de recursos que se van a comprobar. En el siguiente ejemplo, los tipos de recursos que se van a comprobar son las instancias de EC2 y las plantillas de inicialización. Además, también se especifica el número de versiones de la plantilla de inicialización que se van a comprobar (`version-depth=100`).

 Para generar informes sobre cuentas específicas, utilice el parámetro `--account-ids` para especificar el ID de cada cuenta sobre la que se va a informar.

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --account-ids 111122223333 444455556666 123456789012 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

**Creación de un informe de uso de AMI de todas las cuentas**  
Para informar sobre todas las cuentas que utilizan la AMI especificada, utilice el mismo comando pero omita el parámetro `--account-ids`.

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

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

```
{
    "ReportId": "amiur-00b877d192f6b02d0"
}
```

**Monitoreo del estado de creación del informe**  
Utilice el comando [describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) y especifique el ID del informe.

```
aws ec2 describe-image-usage-reports --report-ids amiur-00b877d192f6b02d0
```

A continuación, se muestra un ejemplo del resultado. El valor inicial para el campo `State`, es `pending`. Para poder ver las entradas del informe, el estado debe ser `available`.

```
{
    "ImageUsageReports": [
        {
            "ImageId": "ami-0e9ae3dc21c2b3a64",
            "ReportId": "amiur-abcae3dc21c2b3999",
            "ResourceTypes": [
                {"ResourceType": "ec2:Instance"}
            ],
            "State": "pending",
            "CreationTime": "2025-09-29T13:27:12.322000+00:00",
            "ExpirationTime": "2025-10-28T13:27:12.322000+00:00"
        }
    ]
}
```

------
#### [ PowerShell ]

**Para crear un informe de uso de AMI para una lista de cuentas**  
Utilice el cmdlet [New-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ImageUsageReport.html) con los siguientes parámetros obligatorios:
+ `-ImageId`: el ID de la AMI sobre la que se va a informar.
+ `-ResourceType`: los tipos de recursos que se van a comprobar. En el siguiente ejemplo, los tipos de recursos que se van a comprobar son las instancias de EC2 y las plantillas de inicialización. Además, también se especifica el número de versiones de la plantilla de inicialización que se van a comprobar (`'version-depth' = 100`).

 Para generar informes sobre cuentas específicas, utilice el parámetro `-AccountId` para especificar el ID de cada cuenta sobre la que se va a informar.

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -AccountId 111122223333 444455556666 123456789012 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

**Creación de un informe de uso de AMI de todas las cuentas**  
Para informar sobre todas las cuentas que utilizan la AMI especificada, utilice el mismo comando pero omita el parámetro `-AccountId`.

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

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

```
ReportId
--------
amiur-00b877d192f6b02d0
```

**Monitoreo del estado de creación del informe**  
Utilice el comando [Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) y especifique el ID del informe.

```
Get-EC2ImageUsageReport -ReportId amiur-00b877d192f6b02d0
```

A continuación, se muestra un ejemplo del resultado. El valor inicial para el campo `State`, es `pending`. Para poder ver las entradas del informe, el estado debe ser `available`.

```
ImageUsageReports
-----------------
{@{ImageId=ami-0e9ae3dc21c2b3a64; ReportId=amiur-abcae3dc21c2b3999; ResourceTypes=System.Object[]; State=pending; CreationTime=2025-09-29; ExpirationTime=2025-10-28}}
```

------

## Visualización de informes de uso de AMI
<a name="view-ami-usage-reports"></a>

Puede ver todos los informes de uso que ha creado para una AMI en los últimos 30 días. Amazon EC2 elimina automáticamente un informe 30 días después de su creación.

Para cada informe, puede ver las Cuentas de AWS que están utilizando la AMI y, para cada cuenta, un recuento de los recursos que hacen referencia a la AMI por tipo de recurso. También puede ver cuándo se inició la creación del informe. Esta información solo está disponible cuando el informe está en el estado **Completo** (consola) o en el estado `available` (AWS CLI).

**importante**  
Al generar un informe de uso de AMI, es posible que no contenga la actividad más reciente. Es posible que la actividad de las instancias de las últimas 24 horas y la actividad de la plantilla de inicialización de los últimos días no aparezcan en el informe.

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

**Visualización de un informe de uso de AMI**

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 AMI.

1. Elija la pestaña **Mis informes de uso**.

   La lista de informes muestra:
   + Todos los informes generados en los últimos 30 días para la AMI seleccionada.
   + Para cada informe, la columna **Hora de inicio del informe** muestra la fecha en que se creó el informe.

1. Elija el ID de un informe para ver su contenido.

1. Para volver a la pestaña **Mis informes de uso** en la página de detalles de la AMI, elija **Ver todos los informes de esta AMI**.

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

**Enumeración de todos los informes de uso de AMI para la AMI especificada**  
Utilice el comando [describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) y especifique el ID de la AMI para obtener una lista de sus informes.

```
aws ec2 describe-image-usage-reports --image-ids ami-0abcdef1234567890
```

A continuación, se muestra un ejemplo del resultado. El ID de cada informe aparece junto con los tipos de recursos que se escanearon y las fechas de creación y caducidad del informe. Puede utilizar esta información para identificar los informes cuyas entradas desea ver.

```
{
  "ImageUsageReports": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-1111111111111111",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        }
      ],
      "State": "available",
      "CreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-28T13:27:12.322000+00:00",
      "Tags": []
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-22222222222222222",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        },
        {
          "ResourceType": "ec2:LaunchTemplate"
        }
      ],
      "State": "available",
      "CreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-30T13:27:12.322000+00:00",
      "Tags": []
    }
  ],
  "NextToken": "opaque"
}
```

**Visualización del contenido de un informe de uso de AMI para la AMI especificada**  
Utilice el comando [describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) y especifique el ID de la AMI. La respuesta devuelve todos los informes de la AMI especificada, que muestran las cuentas que han utilizado la AMI y sus recuentos de recursos.

```
aws ec2 describe-image-usage-report-entries --image-ids ami-0abcdef1234567890
```

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

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-1111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 2,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "001100110011",
      "UsageCount": 39,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    }
  ],
  "NextToken": "opaque"
}
```

**Visualización del contenido de un informe de uso de AMI para el informe especificado**  
Utilice el comando [describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) y especifique el ID del informe. La respuesta devuelve todas las entradas del informe especificado, mostrando las cuentas que han utilizado la AMI y sus recuentos de recursos.

```
aws ec2 describe-image-usage-report-entries --report-ids amiur-11111111111111111
```

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

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "123412341234",
      "UsageCount": 4,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "001100110011",
      "UsageCount": 2,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    }
  ],
  "NextToken": "opaque"
}
```

------
#### [ PowerShell ]

**Enumeración de todos los informes de uso de AMI para la AMI especificada**  
Utilice el cmdlet [Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) y especifique el ID de la AMI para obtener una lista de sus informes.

```
Get-EC2ImageUsageReport -ImageId ami-0abcdef1234567890
```

A continuación, se muestra un ejemplo del resultado. El ID de cada informe aparece junto con los tipos de recursos que se escanearon y las fechas de creación y caducidad del informe. Puede utilizar esta información para identificar los informes cuyas entradas desea ver.

```
@{
    ImageUsageReports = @(
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-1111111111111111"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-29T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-28T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-22222222222222222"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-30T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-29T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-33333333333333333"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-10-01T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-30T13:27:12.322000+00:00"
        }
    )
    NextToken = "opaque"
}
```

**Visualización del contenido de un informe de uso de AMI para la AMI especificada**  
Utilice el cmdlet [Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) y especifique el ID de la AMI. La respuesta devuelve todos los informes de la AMI especificada, que muestran las cuentas que han utilizado la AMI y sus recuentos de recursos.

```
Get-EC2ImageUsageReportEntry -ImageId ami-0abcdef1234567890
```

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

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-1111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 7
    ReportCreationTime = "2025-09-30T13:27:12.322000+00:00"
    ReportId = "amiur-22222222222222222"
    }...}
NextToken : opaque
```

**Visualización del contenido de un informe de uso de AMI para el informe especificado**  
Utilice el cmdlet [Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) y especifique el ID del informe. La respuesta devuelve todas las entradas del informe especificado, mostrando las cuentas que han utilizado la AMI y sus recuentos de recursos.

```
Get-EC2ImageUsageReportEntry -ReportId amiur-11111111111111111
```

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

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "123412341234"
    UsageCount = 4
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "************"
    UsageCount = 2
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }}
NextToken : opaque
```

------

## Eliminar un informe de uso de AMI
<a name="delete-ami-usage-reports"></a>

Amazon EC2 elimina automáticamente un informe 30 días después de su creación. Puede eliminarlo manualmente antes de esa fecha.

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

**Eliminación de un informe de uso de AMI**

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 AMI.

1. Elija la pestaña **Mis uso de AMI**.

1. Elija la opción del botón situado junto al informe que quiera eliminar y, luego, elija **Eliminar**.

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

**Eliminación de un informe de uso de AMI**  
Utilice el comando [delete-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-image-usage-report.html) y especifique el ID del informe.

```
aws ec2 delete-image-usage-report --report-id amiur-0123456789abcdefg
```

------
#### [ PowerShell ]

**Eliminación de un informe de uso de AMI**  
Utilice el cmdlet [Remove-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2ImageUsageReport.html) y especifique el ID del informe.

```
Remove-EC2ImageUsageReport -ReportId amiur-0123456789abcdefg
```

------

## Cuotas de informes
<a name="ami-usage-report-quotas"></a>

Las siguientes cuotas se aplican a la creación de informes de uso de AMI. Las cuotas se aplican por Región de AWS.


| Descripción | Cuota | 
| --- | --- | 
| Informes de uso de AMI en curso (pending) por Cuenta de AWS | 2,000 | 
| Informes de uso de AMI en curso (pending) por AMI | 1 | 

# Comprobación de cuándo se utilizó una AMI de Amazon EC2 por última vez
<a name="ami-last-launched-time"></a>

Amazon EC2 rastrea automáticamente la fecha y la hora en que se utilizó por última vez una AMI para iniciar una instancia. Si tiene una AMI que no se ha utilizado para lanzar una instancia durante mucho tiempo, considere si es una buena opción [anular el registro](deregister-ami.md) de la AMI o [dejarla en desuso](ami-deprecate.md).

**Consideraciones**
+ Cuando se utiliza una AMI para iniciar una instancia, hay una demora de 24 horas antes de que se informe del uso.
+ Debe ser el propietario de la AMI para obtener la última hora de inicialización.
+ Los datos sobre el uso de la AMI están disponibles desde abril de 2017.

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

**Para ver el momento de la última inicialización de una AMI**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **De mi propiedad**.

1. Seleccione la casilla de verificación de la AMI.

1. En la pestaña **Detalles**, busque **Hora del último lanzamiento**.

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

**Visualización de la hora del último lanzamiento mediante la descripción de la AMI**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) . Si `LastLaunchedTime` no está presente en el resultado, compruebe que es el propietario de la AMI.

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[].LastLaunchedTime \
    --output text
```

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

```
2025-02-17T20:22:19Z
```

**Visualización del atributo de hora del último lanzamiento de una AMI**  
Utilice el comando [describe-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html). Debe ser el propietario de la AMI especificada.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute lastLaunchedTime \
    --query LastLaunchedTime.Value \
    --output text
```

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

```
2025-02-17T20:22:19Z
```

------
#### [ PowerShell ]

**Visualización de la hora del último lanzamiento mediante la descripción de la AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html). Si `LastLaunchedTime` no está presente en el resultado, compruebe que es el propietario de la AMI.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).LastLaunchedTime
```

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

```
2025-02-17T20:22:19Z
```

**Visualización del atributo de hora del último lanzamiento de una AMI**  
Utilice el cmdlet [Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html). Debe ser el propietario de la AMI especificada.

```
(Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute LastLaunchedTime).LastLaunchedTime
```

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

```
2025-02-17T20:22:19Z
```

------

# 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')
                }
            )
        }
    )
```

------

# Retirada de una AMI de Amazon EC2
<a name="ami-deprecate"></a>

Puede dar de baja una AMI para indicar que está desactualizada y no debería utilizarse. También puede especificar una fecha de baja futura para una AMI para indicar cuándo estará desactualizada la AMI. Por ejemplo, puede dar de baja una AMI que ya no se mantiene activamente o que se ha reemplazado por una versión más reciente. De forma predeterminada, las AMI obsoletas no aparecen en las listas de AMI, lo que impide que los usuarios nuevos utilicen AMI desactualizadas. Sin embargo, los usuarios existentes y los servicios de inicialización, como las plantillas de inicialización y los grupos de Auto Scaling, pueden seguir utilizando una AMI obsoleta si especifican su ID. Para eliminar la AMI de modo que los usuarios y los servicios no puedan utilizarla, debe [anular su registro](deregister-ami.md).

Después de dar de baja una AMI:
+ Para los usuarios de AMI, la AMI obsoleta no aparece en las llamadas a la API [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) a menos que especifique su ID o especifique que las AMI obsoletas deben aparecer. Los propietarios de AMI siguen viendo AMI obsoletas en las llamadas a la API [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html).
+ Para los usuarios de AMI, la AMI obsoleta no está disponible para seleccionarse mediante la consola de EC2. Por ejemplo, una AMI obsoleta no aparece en el catálogo de AMI en el launch wizard de instancias. Los propietarios de las AMI siguen viendo AMI obsoletas en la consola de EC2.
+ Para los usuarios de AMI, si conoce el ID de una AMI obsoleta, puede seguir iniciando instancias utilizando la AMI obsoleta mediante la API, la CLI o los SDK.
+ Los servicios de inicialización, como plantillas de inicialización y grupos de Auto Scaling, pueden seguir haciendo referencia a AMI obsoletas.
+ Las instancias de EC2 que se iniciaron mediante una AMI que posteriormente queda obsoleta no se ven afectadas y pueden detenerse, iniciarse y reiniciarse.

Puede dar de baja las AMI privadas y públicas.

**Topics**
+ [Costos](#ami-deprecate-costs)
+ [Consideraciones](#ami-deprecate-limitations)
+ [Dar de baja una AMI](#deprecate-ami)
+ [Describir las AMI obsoletas](#describe-deprecate-ami)
+ [Cancelación de la retirada de una AMI](#cancel-deprecate-ami)

## Costos
<a name="ami-deprecate-costs"></a>

Cuando da de baja una AMI, esta no se elimina. El propietario de la AMI sigue pagando las instantáneas de la AMI. Para dejar de pagar las instantáneas, el propietario de la AMI debe eliminar la AMI [anulando el registro](deregister-ami.md).

## Consideraciones
<a name="ami-deprecate-limitations"></a>
+ Para dar de baja una AMI, debe ser el propietario de la AMI.
+ Las AMI que no se hayan utilizado recientemente para iniciar una instancia pueden ser buenas opciones para darlas de baja o anular su registro. Para obtener más información, consulte [Comprobación de cuándo se utilizó una AMI de Amazon EC2 por última vez](ami-last-launched-time.md).
+ Puede crear políticas de AMI respaldadas por EBS de Amazon Data Lifecycle Manager para automatizar la retirada de las AMI respaldadas por EBS. Para obtener más información, consulte [Create AMI lifecycle policies](https://docs.aws.amazon.com/ebs/latest/userguide/ami-policy.html).
+ De forma predeterminada, la fecha de obsolescencia de todas las AMI públicas se establece en dos años a partir de la fecha de creación de la AMI. Puede establecer una fecha de obsolescencia anterior a los dos años. Para anular la fecha de obsolescencia o para aplazarla, debe hacer que la AMI sea privada [compartiéndola solo con cuentas de AWS específicas](sharingamis-explicit.md).

## Dar de baja una AMI
<a name="deprecate-ami"></a>

Puede dar de baja una AMI en una fecha y hora específicas. Debe ser el propietario de la AMI.

El límite superior para la fecha de obsolescencia es dentro de 10 años, excepto en el caso de las AMI públicas, donde el límite superior es de 2 años a partir de la fecha de creación. No puede especificar una fecha pasada.

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

**Para dar de baja una AMI en una fecha específica**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **Owned by me** (De mi propiedad).

1. Seleccione la AMI y, a continuación, elija **Actiones**, **Administrar la obsolescencia de la AMI**. Puede seleccionar varias AMI para establecer la misma fecha de obsolescencia de varias AMI al mismo tiempo.

1. Seleccione la casilla de verificación **Habilitar** y, a continuación, ingrese la fecha y la hora de obsolescencia. 

1. Seleccione **Save**.

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

**Para dar de baja una AMI en una fecha específica**  
Utilice el comando [enable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-deprecation.html). Si especifica un valor en segundos, Amazon EC2 redondea los segundos al minuto más cercano.

```
aws ec2 enable-image-deprecation \
    --image-id ami-0abcdef1234567890 \
    --deprecate-at "2025-04-15T13:17:12.000Z"
```

------
#### [ PowerShell ]

**Para dar de baja una AMI en una fecha específica**  
Utilice el cmdlet [Enable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageDeprecation.html). Si especifica un valor en segundos, Amazon EC2 redondea los segundos al minuto más cercano.

```
Enable-EC2ImageDeprecation `
    -ImageId ami-0abcdef1234567890 `
    -DeprecateAt 2025-04-15T13:17:12.000Z
```

------

## Describir las AMI obsoletas
<a name="describe-deprecate-ami"></a>

Puede ver la fecha y la hora de retirada de una AMI y filtrar todas las AMI por dicha fecha.

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

**Para ver la fecha de baja de una AMI**

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 izquierdo, elija **AMI** y, a continuación, seleccione la AMI.

1. Marque el campo **Hora de obsolescencia** (si seleccionó la casilla de verificación situada junto a la AMI, se encontrará en la pestaña **Detalles**). El campo muestra la fecha y la hora de obsolescencia de la AMI. Si el campo está vacío, la AMI no ha quedado obsoleta.

**Para filtrar las AMI por la fecha de baja**

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 izquierdo, elija **AMIs** (AMI).

1. En la barra de filtros, elija **De mi propiedad** o **Imágenes privadas** (las imágenes privadas incluyen tanto las AMI que se comparten con usted como las que le pertenecen).

1. En la barra de búsqueda, escriba **Deprecation time** (al ingresar las letras, aparecerá el filtro **Hora de obsolescencia**). A continuación, elija un operador y una fecha y una hora.

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

Cuando se describen todas las AMI, los resultados dependen de si usted es un usuario de la AMI o el propietario de la AMI.
+ **Usuario de la AMI**: de forma predeterminada, cuando describe todas las AMI, se excluyen las AMI obsoletas que se compartieron con usted, pero que no son de su propiedad. Para incluir en los resultados las AMI obsoletas, especifique la opción `--include-deprecated`.
+ **Propietario de la AMI**: cuando describe todas las AMI, se incluyen todas las AMI que posee, incluidas las AMI obsoletas. No puede excluir las AMI obsoletas de su propiedad mediante la opción `--no-include-deprecated`.

**Inclusión de las AMI obsoletas al describir todas las AMI de una cuenta**  
Utilice el siguiente comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images 
    --owners 123456789012 \   
    --include-deprecated
```

**Descripción de las AMI obsoletas de su cuenta**  
Utilice el siguiente comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --owners self \
    --query "Images[?DeprecationTime!=null].ImageId" \
    --output text
```

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

```
ami-0abcdef1234567890
```

**Para detallar la fecha de baja de una AMI**  
Utilice el siguiente comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). Si `DeprecationTime` no aparece en el resultado, la AMI no se retirará ni se configurará para que quede obsoleta en el futuro.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].DeprecationTime \
    --output text
```

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

```
2025-05-01T00:00:00.000Z
```

------
#### [ PowerShell ]

**Enumeración de las AMI obsoletas de su cuenta**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -Owner self | Where-Object {$_.DeprecationTime -ne $null}).ImageId
```

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

```
ami-0abcdef1234567890
```

**Para detallar la fecha de baja de una AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html). Si `DeprecationTime` no aparece en el resultado, la AMI no se retirará ni se configurará para que quede obsoleta en el futuro.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).DeprecationTime
```

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

```
2025-05-01T00:00:00.000Z
```

------

## Cancelación de la retirada de una AMI
<a name="cancel-deprecate-ami"></a>

Puede cancelar la retirada de una AMI, lo que elimina la fecha y la hora de retirada. Debe ser el propietario de la AMI para realizar este procedimiento.

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

**Para cancelar la baja de una AMI**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **Owned by me** (De mi propiedad).

1. Seleccione la AMI y, a continuación, elija **Actions** (Acciones), **Manage AMI Deprecation** (Administrar la obsolescencia de la AMI). Puede seleccionar varias AMI para cancelar la baja de varias AMI al mismo tiempo.

1. Desactive la casilla de verificación **Habilitar** y, luego, elija **Guardar**.

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

**Para cancelar la baja de una AMI**  
Utilice el siguiente comando [disable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-deprecation.html).

```
aws ec2 disable-image-deprecation --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para cancelar la baja de una AMI**  
Utilice el cmdlet [Disable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageDeprecation.html).

```
Disable-EC2ImageDeprecation -ImageId ami-0abcdef1234567890
```

------

# Inhabilitación de una AMI de Amazon EC2
<a name="disable-an-ami"></a>

Puede deshabilitar una AMI para evitar que se utilice en inicializaciones de instancias. No puede iniciar nuevas instancias desde una AMI deshabilitada. Puede volver a habilitar una AMI desactivada para que pueda volver a usarse en inicializaciones de instancias.

Puede deshabilitar las AMI privadas y públicas.

Para reducir los costos de almacenamiento de las AMI respaldadas por EBS deshabilitadas que rara vez se usan, pero que deben retenerse a largo plazo, puede archivar sus instantáneas asociadas. Para obtener más información, consulte [Archivar instantáneas de Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) en la *Guía del usuario de Amazon EBS*.

**Topics**
+ [Cómo funciona la desactivación de la AMI](#how-disable-ami-works)
+ [Costos](#ami-disable-costs)
+ [Requisitos previos](#ami-disable-prerequisites)
+ [Permisos de IAM necesarios](#ami-disable-iam-permissions)
+ [Deshabilitación de una AMI](#disable-ami)
+ [Descripción de las AMI deshabilitadas](#describe-disabled-ami)
+ [Rehabilitación de una AMI deshabilitada](#re-enable-a-disabled-ami)

## Cómo funciona la desactivación de la AMI
<a name="how-disable-ami-works"></a>

**aviso**  
Al deshabilitar una AMI, se eliminan todos sus permisos de inicialización.

**Cuando una AMI está deshabilitada:**
+ El estado de la AMI cambia a `disabled`.
+ No se puede compartir una AMI deshabilitada. Si una AMI era pública o se había compartido anteriormente, pasa a ser privada. Si se ha compartido una AMI con una Cuenta de AWS, una organización o unidad organizativa, esta pierde el acceso a la AMI deshabilitada. 
+ De forma predeterminada, una AMI deshabilitada no aparece en las llamadas a la API [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html).
+ Una AMI deshabilitada no aparece en el filtro de la consola **De mi propiedad**. Para buscar las AMI deshabilitadas, utilice el filtro de la consola **Imágenes deshabilitadas**.
+ Una AMI deshabilitada no está disponible para seleccionarla en inicializaciones de instancias en la consola de EC2. Por ejemplo, una AMI deshabilitada no aparece en el catálogo de AMI en el asistente de inicialización de instancias o al crear una plantilla de inicialización.
+ Los servicios de inicialización, como plantillas de inicialización y grupos de escalado automático, pueden seguir haciendo referencia a AMI deshabilitadas. Las inicializaciones posteriores de instancias desde una AMI deshabilitada fallarán, por lo que recomendamos actualizar las plantillas de inicialización y los grupos de escalado automático para que hagan referencia únicamente a las AMI disponibles.
+ Las instancias de EC2 que se iniciaron anteriormente mediante una AMI que posteriormente queda deshabilitada no se ven afectadas y pueden detenerse, iniciarse y reiniciarse.
+ No puede eliminar las instantáneas asociadas a las AMI deshabilitadas. Si se intenta eliminar una instantánea asociada, se produce el error `snapshot is currently in use`.

**Cuando se vuelve a habilitar una AMI:**
+ El estado de la AMI cambia a `available` y se puede usar para iniciar instancias.
+ La AMI se puede compartir.
+ Las Cuentas de AWS, las organizaciones y las unidades organizativas que perdieron el acceso a la AMI cuando estaba deshabilitada no recuperan el acceso automáticamente, pero la AMI se puede volver a compartir con ellas.

## Costos
<a name="ami-disable-costs"></a>

Cuando se deshabilita una AMI, esta no se elimina. Si la AMI es una AMI respaldada por EBS, seguirá pagando por las instantáneas de EBS de la AMI. Si desea conservar la AMI, es posible que pueda reducir los costos de almacenamiento si archiva las instantáneas. Para obtener más información, consulte [Archivar instantáneas de Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) en la *Guía del usuario de Amazon EBS*. Si no quiere conservar la AMI y sus instantáneas, debe anular el registro de la AMI y eliminar las instantáneas. Para obtener más información, consulte [Anulación del registro de una AMI](deregister-ami.md).

## Requisitos previos
<a name="ami-disable-prerequisites"></a>

Para deshabilitar o volver a habilitar una AMI, debe ser el propietario de la AMI.

## Permisos de IAM necesarios
<a name="ami-disable-iam-permissions"></a>

Para deshabilitar y volver a habilitar una AMI, debe tener los siguientes permisos de IAM:
+ `ec2:DisableImage`
+ `ec2:EnableImage`

## Deshabilitación de una AMI
<a name="disable-ami"></a>

Puede deshabilitar una AMI mediante la consola de EC2 o AWS Command Line Interface (AWS CLI). Debe ser el propietario de la AMI para realizar este procedimiento.

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

**Para deshabilitar una AMI**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **De mi propiedad**.

1. Seleccione la AMI y, a continuación, elija **Acciones**, **Deshabilitar AMI**. Puede seleccionar varias AMI para deshabilitarlas a la vez.

1. En la ventana **Deshabilitar AMI**, seleccione **Deshabilitar AMI**.

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

**Para deshabilitar una AMI**  
Use el siguiente comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html).

```
aws ec2 disable-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para deshabilitar una AMI**  
Utilice el cmdlet [Disable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2Image.html).

```
Disable-EC2Image -ImageId ami-0abcdef1234567890
```

------

## Descripción de las AMI deshabilitadas
<a name="describe-disabled-ami"></a>

Puede ver las AMI deshabilitadas en la consola de EC2 y mediante AWS CLI.

Debe tener la propiedad de la AMI para ver las AMI deshabilitadas. Como las AMI deshabilitadas se convierten en privadas, no podrá ver las AMI deshabilitadas que no sean de su propiedad.

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

**Para ver las AMI deshabilitadas**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **Imágenes deshabilitadas**.  
![\[El filtro de imágenes deshabilitadas.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-filter-by-disabled-images.png)

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

De forma predeterminada, cuando describe todas las AMI, las AMI deshabilitadas no se incluyen en los resultados. Para incluir en los resultados las AMI deshabilitadas, especifique la opción `--include-disabled`. El campo `State` de una AMI es `disabled` si la AMI está deshabilitada.

**Inclusión de las AMI deshabilitadas al describir todas las AMI de una cuenta**  
Use el siguiente comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --owners 123456789012 \
    --include-disabled
```

**Enumeración de las AMI deshabilitadas de su cuenta**  
Use el siguiente comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --owners self \
    --include-disabled \
    --filters Name=state,Values=disabled \
    --query Images[].ImageId \
    --output text
```

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

```
ami-0abcdef1234567890
```

**Descripción del estado de una AMI**  
Use el siguiente comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). Si `DeprecationTime` no aparece en el resultado, la AMI no se retirará ni se configurará para que quede obsoleta en el futuro.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].State \
    --output text
```

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

```
disabled
```

------
#### [ PowerShell ]

De forma predeterminada, cuando describe todas las AMI, las AMI deshabilitadas no se incluyen en los resultados. Para incluir en los resultados las AMI deshabilitadas, especifique el parámetro `-IncludeDisabled`. El campo `State` de una AMI es `disabled` si la AMI está deshabilitada.

**Enumeración de las AMI deshabilitadas de su cuenta**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image `
    -Owner self `
    -IncludeDisabled $true | Where-Object {$_.State -eq "disabled"}).ImageId
```

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

```
ami-0abcdef1234567890
```

**Descripción del estado de una AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).State.Value
```

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

```
disabled
```

------

## Rehabilitación de una AMI deshabilitada
<a name="re-enable-a-disabled-ami"></a>

Puede volver a habilitar una AMI deshabilitada. Debe ser el propietario de la AMI para realizar este procedimiento.

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

**Para volver a habilitar una AMI deshabilitada**

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 izquierdo, elija **AMI**.

1. En la barra de filtros, elija **Imágenes deshabilitadas**.

1. Seleccione la regla y, a continuación, elija **Acciones**, **Habilitar AMI**. Puede seleccionar varias AMI para volver a habilitar varias AMI al mismo tiempo.

1. En la ventana **Habilitar AMI**, seleccione **Habilitar**.

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

**Para volver a habilitar una AMI deshabilitada**  
Use el siguiente comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html).

```
aws ec2 enable-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para volver a habilitar una AMI deshabilitada**  
Utilice el cmdlet [Enable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2Image.html).

```
Enable-EC2Image -ImageId ami-0abcdef1234567890
```

------

# Anulación del registro de una AMI de Amazon EC2
<a name="deregister-ami"></a>

Al anular el registro de una AMI, Amazon EC2 la elimina permanentemente. Después de anular el registro de una AMI, no puede utilizarla para iniciar nuevas instancias. Puede anular el registro de una AMI cuando haya terminado de usarla.

Para protegerse de la anulación del registro accidental o malintencionada de una AMI, puede activar la [protección contra la anulación de registros](ami-deregistration-protection.md). Si anula accidentalmente el registro de una AMI respaldada por EBS, puede utilizar la [papelera de reciclaje](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin.html) para restaurarla solo si la restaura dentro del periodo permitido antes de que se elimine de forma permanente.

Al anular el registro de una AMI, puede eliminar opcionalmente las instantáneas asociadas al mismo tiempo. Sin embargo, si una instantánea está asociada a varias AMI, no se eliminará aunque se haya especificado su eliminación, pero sí se anulará el registro de la AMI. Las instantáneas que no se eliminen seguirán generando costos de almacenamiento.

Mediante la anulación del registro de una AMI no se afectan las instancias que se iniciaron desde dicha AMI. Puede seguir utilizando estas instancias. De forma predeterminada, la anulación del registro de una AMI no afecta las instantáneas que se hayan creado durante el proceso de creación de la AMI. Siguen sujetos a cobro los costos de uso de esas instancias y los costos de almacenamiento de las instantáneas. Por lo tanto, para evitar incurrir en costos innecesarios, le recomendamos que finalice las instancias y elimine las instantáneas que no necesite. Puede eliminar las instantáneas de forma automática durante la anulación del registro o manualmente después de anular el registro. Para obtener más información, consulte [Evite los costos derivados de los recursos no utilizados](#delete-unneeded-resources-to-avoid-unnecessary-costs).

En el caso de las instancias iniciadas desde una AMI que posteriormente se anula del registro, puede seguir viendo información de alto nivel sobre la AMI mediante el comando `describe-instance-image-metadata` de la AWS CLI. Para obtener más información, consulte [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html).

**Topics**
+ [Consideraciones](#deregister-ami-considerations)
+ [Anulación del registro de una AMI](#deregister-an-ami)
+ [Evite los costos derivados de los recursos no utilizados](#delete-unneeded-resources-to-avoid-unnecessary-costs)
+ [Protección de una AMI de Amazon EC2 contra la anulación del registro](ami-deregistration-protection.md)

## Consideraciones
<a name="deregister-ami-considerations"></a>
+ No puede anular el registro de una AMI que no pertenece a su cuenta.
+ No puede anular el registro de una AMI administrada por el servicio AWS Backup con Amazon EC2. En su lugar, utilice AWS Backup para eliminar los puntos de recuperación correspondientes en el almacén de copia de seguridad. Para obtener más información, consulte [Eliminación de copias de seguridad](https://docs.aws.amazon.com/aws-backup/latest/devguide/deleting-backups.html) en la *Guía para desarrolladores de AWS Backup*.

## Anulación del registro de una AMI
<a name="deregister-an-ami"></a>

Puede anular el registro de las AMI basadas en EBS y las AMI basadas en Amazon S3. En el caso de las AMI respaldadas por EBS, puede eliminar opcionalmente las instantáneas asociadas al mismo tiempo. Sin embargo, si una instantánea está asociada a otras AMI, no se eliminará aunque se haya especificado su eliminación.

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

**Para anular el registro de una AMI**

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. En la barra de filtros, seleccione **Propios** para ver las AMI disponibles o **Imágenes deshabilitadas** para ver las AMI deshabilitadas.

1. Seleccione la AMI para anular el registro.

1. Elija **Acciones**, **Anular registro de AMI**.

1. (Opcional) Para eliminar las instantáneas asociadas durante la anulación del registro, seleccione la casilla **Eliminar las instantáneas asociadas**.
**nota**  
Si una instantánea está asociada a otras AMI, no se elimina, aunque la casilla esté seleccionada.

1. Elija **Anular registro de una AMI**.

   La consola puede tardar unos minutos en quitar la AMI de la lista. Elija **Refresh (Actualizar)** para actualizar el estado.

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

**Para anular el registro de una AMI**  
Utilice el siguiente comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html).

```
aws ec2 deregister-image --image-id ami-0abcdef1234567890
```

**Cómo anular el registro de una AMI y eliminar sus instantáneas asociadas**  
Utilice el siguiente comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html) y especifique el parámetro `--delete-associated-snapshots`. Tenga en cuenta que si una instantánea está asociada a otras AMI, no se elimina, incluso si especifica este parámetro.

```
aws ec2 deregister-image \
    --image-id ami-0abcdef1234567890 \
    --delete-associated-snapshots
```

------
#### [ PowerShell ]

**Para anular el registro de una AMI**  
Utilice el cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html).

```
Unregister-EC2Image -ImageId ami-0abcdef1234567890
```

**Cómo anular el registro de una AMI y eliminar sus instantáneas asociadas**  
Utilice el cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html) y especifique el parámetro `-DeleteAssociatedSnapshots`. Tenga en cuenta que si una instantánea está asociada a otras AMI, no se elimina, incluso si especifica este parámetro.

```
Unregister-EC2Image `
    -ImageId ami-0abcdef1234567890 `
    -DeleteAssociatedSnapshots
```

------

## Evite los costos derivados de los recursos no utilizados
<a name="delete-unneeded-resources-to-avoid-unnecessary-costs"></a>

Anular el registro de una AMI no elimina, de forma predeterminada, todos los recursos que están asociados a dicha AMI. Estos recursos incluyen las instantáneas de las AMI basadas en EBS y los archivos en Amazon S3 para las AMI basadas en Amazon S3. Cuando se anula el registro de una AMI, tampoco se finalizan ni detienen las instancias iniciadas desde dicha AMI.

Seguirá incurriendo en costos por el almacenamiento de las instantáneas y los archivos, así como por cualquier instancia en ejecución.

Para evitar este tipo de costos innecesarios, le recomendamos que elimine los recursos que no necesite.

**AMI basadas en EBS**
+ Elimine las instantáneas asociadas al anular el registro de la AMI. Para obtener más información, consulte [Anulación del registro de una AMI](#deregister-an-ami).
+ Si anula el registro de una AMI sin eliminar sus instantáneas asociadas, puede [eliminar las instantáneas](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-snapshot.html#ebs-delete-snapshot) manualmente. La instantánea del volumen raíz de la instancia creada durante la creación de la AMI tiene el siguiente formato de descripción:

  ```
  Created by CreateImage(i-1234567890abcdef0) for ami-0abcdef1234567890
  ```
+ Si ya no necesita las instancias que se lanzaron desde la AMI, puede [detenerlas](Stop_Start.md#starting-stopping-instances) o [terminarlas](terminating-instances.md#terminating-instances-console). Para enumerar las instancias, filtre por el ID de la AMI.

**AMI basadas en Amazon S3**
+ Elimine el paquete en Amazon S3 con el comando [ec2-delete-bundle](ami-tools-commands.md#ami-delete-bundle) (herramientas de la AMI).
+ Si el bucket de Amazon S3 está vacío después de eliminar la agrupación y ya no lo va a utilizar, puede [eliminarlo](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).
+ Si ya no necesita las instancias que se lanzaron desde la AMI, puede [terminarlas](terminating-instances.md#terminating-instances-console). Para enumerar las instancias, filtre por el ID de la AMI.

# Protección de una AMI de Amazon EC2 contra la anulación del registro
<a name="ami-deregistration-protection"></a>

Puede activar la *protección contra la anulación del registro* en una AMI para evitar su eliminación accidental o malintencionada. Cuando se activa la protección contra la anulación del registro, ningún usuario puede anular el registro de la AMI, independientemente de sus permisos de IAM. Si desea anular el registro de la AMI, primero debe desactivar la protección de anulación del registro que contiene.

Al activar la protección contra la anulación del registro en una AMI, tiene la opción de incluir un periodo de recuperación de 24 horas. Este periodo de recuperación es el tiempo durante el cual la protección por anulación del registro permanece en vigor después de desactivarla. Durante este periodo de recuperación, no se puede anular el registro de la AMI. Cuando finaliza el periodo de recuperación, se puede anular el registro de la AMI.

La protección contra la anulación del registro está desactivada de forma predeterminada en todas las AMI nuevas y existentes.

## Activar la protección contra la anulación del registro
<a name="enable-deregistration-protection"></a>

Utilice los siguientes procedimientos para activar la protección contra la anulación del registro.

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

**Activación de la protección contra la anulación del registro**

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. En la barra de filtros, seleccione **Propios** para ver las AMI disponibles o **Imágenes deshabilitadas** para ver las AMI deshabilitadas.

1. Seleccione la AMI en la que desee activar la protección contra la anulación del registro y, a continuación, elija **Acciones**, **Administrar la protección contra la anulación del registro de la AMI**.

1. En el cuadro de diálogo **Administrar la protección contra la anulación del registro de la AMI**, puede activar la protección contra la anulación del registro con o sin un periodo de recuperación. Elija una de las siguientes opciones:
   + **Activar con un periodo de recuperación de 24 horas**: con un periodo de recuperación, no se puede anular el registro de la AMI durante 24 horas si la protección contra la anulación del registro está desactivada.
   + **Activar sin periodo de recuperación**: sin un periodo de recuperación, se puede anular el registro de la AMI inmediatamente cuando se desactiva la protección contra la anulación del registro.

1. Seleccione **Save**.

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

**Activación de la protección contra la anulación del registro**  
Utilice el comando [enable-image-deregistration-protection](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-deregistration-protection.html). Para habilitar el periodo de recuperación opcional, incluya la opción `--with-cooldown`.

```
aws ec2 enable-image-deregistration-protection \
    --image-id ami-0abcdef1234567890 \
    --with-cooldown
```

------
#### [ PowerShell ]

**Activación de la protección contra la anulación del registro**  
Utilice el cmdlet [Enable-EC2ImageRegistrationProtection](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageDeregistrationProtection.html). Para habilitar el periodo de recuperación opcional, defina el parámetro `-WithCooldown` en `true`.

```
Enable-EC2ImageDeregistrationProtection `
    -ImageId ami-0abcdef1234567890 `
    -WithCooldown $true
```

------

## Desactivar la protección contra la anulación del registro
<a name="disable-deregistration-protection"></a>

Utilice los siguientes procedimientos para desactivar la protección contra la anulación del registro.

Si optó por incluir un periodo de recuperación de 24 horas al activar la protección contra la anulación del registro de la AMI, al desactivar dicha protección no podrá anular inmediatamente el registro de la AMI. El periodo de recuperación es el periodo de 24 horas durante el cual la protección contra la anulación del registro permanece en vigor incluso después de desactivarla. Durante este periodo de recuperación, no se puede anular el registro de la AMI. Cuando finaliza el periodo de recuperación, se puede anular el registro de la AMI.

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

**Desactivación de la protección contra la anulación del registro**

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. En la barra de filtros, seleccione **Propios** para ver las AMI disponibles o **Imágenes deshabilitadas** para ver las AMI deshabilitadas.

1. Seleccione la AMI para desactivar la protección contra la anulación del registro y, a continuación, elija **Acciones**, **Administrar la protección contra la anulación del registro de la AMI**.

1. En el cuadro de diálogo **Administrar la protección contra la anulación del registro de la AMI**, seleccione **Deshabilitar**.

1. Seleccione **Save**.

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

**Desactivación de la protección contra la anulación del registro**  
Utilice el comando [disable-image-deregistration-protection](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-deregistration-protection.html).

```
aws ec2 disable-image-deregistration-protection --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Desactivación de la protección contra la anulación del registro**  
Utilice el cmdlet [Disable-EC2ImageDeregistrationProtection](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageDeregistrationProtection.html).

```
Disable-EC2ImageDeregistrationProtection -ImageId ami-0abcdef1234567890
```

------

# Comportamiento de inicialización de instancias con modos de arranque de Amazon EC2
<a name="ami-boot"></a>

Cuando se inicia una computadora, el primer software que ejecuta se encarga de inicializar la plataforma y proporcionar una interfaz para que el sistema operativo realice operaciones específicas de la plataforma.

En Amazon EC2, se admiten dos variantes del software de modo de arranque: Legacy BIOS y Unified Extensible Firmware Interface (UEFI).

**Posibles parámetros de modo de arranque en una AMI**  
Una AMI puede tener uno de los siguientes valores de parámetro de modo de arranque: `uefi`, `legacy-bios` o `uefi-preferred`. El parámetro de modo de arranque de la AMI es opcional. En las AMI que no tienen ningún parámetro de modo de arranque, las instancias iniciadas desde estas AMI utilizan el valor de modo de arranque predeterminado del tipo de instancia.

**Finalidad del parámetro de modo de arranque de la AMI**  
El parámetro de modo de arranque de la AMI indica a Amazon EC2 qué modo de arranque se debe utilizar cuando se inicia una instancia. Cuando el parámetro de modo de arranque se establece en `uefi`, EC2 intenta iniciar la instancia en UEFI. Si el sistema operativo no se encuentra configurado para admitir UEFI, la instancia no se iniciará correctamente.

**Parámetro de modo de arranque preferido UEFI**  
Puede crear AMI que admitan UEFI y BIOS heredados mediante el parámetro del modo de arranque `uefi-preferred`. Cuando el parámetro de modo de arranque se establece en `uefi-preferred` y el tipo de instancia admite UEFI, la instancia se inicia en UEFI. Si el tipo de instancia no admite UEFI, la instancia se inicia en un BIOS heredado.

**aviso**  
Algunas características, como UEFI Secure Boot, solo están disponibles en instancias que arrancan en UEFI. Al utilizar el parámetro del modo de arranque de AMI `uefi-preferred` con un tipo de instancia que no admita UEFI, la instancia se iniciará como BIOS antigua y la característica dependiente de UEFI se deshabilitará. Si confía en la disponibilidad de una característica dependiente de UEFI, defina el parámetro del modo de arranque de AMI en `uefi`.

**Modos de arranque predeterminados para los tipos de instancias**
+ Tipos de instancia de Graviton: UEFI
+ Tipos de instancias de Intel y AMD: Legacy BIOS

**Compatibilidad con zonas**  
El arranque UEFI no es compatible en las zonas Wavelength.

**Topics**
+ [Requisitos para lanzar una instancia de EC2 en modo de arranque UEFI](launch-instance-boot-mode.md)
+ [Determinación del parámetro del modo de arranque de una AMI de Amazon EC2](ami-boot-mode.md)
+ [Determinación de los modos de arranque que admite un tipo de instancia de EC2](instance-type-boot-mode.md)
+ [Determinación del modo de arranque de una instancia de EC2](instance-boot-mode.md)
+ [Determinación del modo de arranque del sistema operativo para la instancia de EC2](os-boot-mode.md)
+ [Establecimiento del modo de arranque de una AMI de Amazon EC2](set-ami-boot-mode.md)
+ [Variables UEFI para instancias de Amazon EC2](uefi-variables.md)
+ [Arranque seguro de UEFI para instancias de Amazon EC2](uefi-secure-boot.md)

# Requisitos para lanzar una instancia de EC2 en modo de arranque UEFI
<a name="launch-instance-boot-mode"></a>

El modo de arranque de una instancia se determina mediante la configuración de la AMI, el sistema operativo que contiene y el tipo de instancia. Para iniciar una instancia en el modo de arranque UEFI, se debe cumplir con los siguientes requisitos.

**AMI**  
La AMI debe configurarse para UEFI de la siguiente manera:  
+ **Sistema operativo**: el sistema operativo contenido en la AMI debe configurarse de forma que utilice UEFI. De lo contrario, se producirá un error en la inicialización de la instancia. Para obtener más información, consulte [Determinación del modo de arranque del sistema operativo para la instancia de EC2](os-boot-mode.md).
+ **Parámetro de modo de arranque de la AMI**: el parámetro de modo de arranque de la AMI debe establecerse en `uefi` o `uefi-preferred`. Para obtener más información, consulte [Determinación del parámetro del modo de arranque de una AMI de Amazon EC2](ami-boot-mode.md).
**Linux**: las siguientes AMI de Linux admiten UEFI:  
+ Amazon Linux 2023
+ Amazon Linux 2 (solo tipos de instancia de Graviton)
Para otras AMI de Linux, debe [configurar la AMI](set-ami-boot-mode.md), importar la AMI a través de [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/) o importar la AMI a través de [CloudEndure](https://docs.cloudendure.com/).  
**Windows**: las siguientes AMI de Windows admiten UEFI:  
+ Windows\$1Server-2025-\$1 (excepto para las AMI con el prefijo de nombre `BIOS-`)
+ TPM-Windows\$1Server-2022-English-Full-Base
+ TPM-Windows\$1Server-2022-English-Core-Base
+ TPM-Windows\$1Server-2019-English-Full-Base
+ TPM-Windows\$1Server-2019-English-Core-Base
+ TPM-Windows\$1Server-2016-English-Full-Base
+ TPM-Windows\$1Server-2016-English-Core-Base

**Tipo de instancia**  
Todas las instancias integradas en AWS Nitro System son compatibles con UEFI y BIOS Legacy, excepto las siguientes: instancias bare metal, DL1, G4ad, P4, u-3tb1, u-6tb1, u-9tb1, u-12tb1, u-18tb1, u-24tb1 y VT1. Para obtener más información, consulte [Determinación de los modos de arranque que admite un tipo de instancia de EC2](instance-type-boot-mode.md).

En la siguiente tabla se muestra que el modo de arranque de una instancia (indicado en la columna **Modo de arranque de la instancia resultante**) se determina mediante una combinación del parámetro de modo de arranque de la AMI (columna 1), la configuración del modo de arranque del sistema operativo de la AMI (columna 2) y la compatibilidad con el modo de arranque del tipo de instancia (columna 3).


| Parámetro de modo de arranque AMI | Configuración de modo de arranque del sistema operativo | Compatibilidad del modo de arranque del tipo de instancia | Modo de arranque de la instancia resultante | 
| --- | --- | --- | --- | 
| UEFI | UEFI | UEFI | UEFI | 
| BIOS antigua | BIOS antigua | BIOS antigua | BIOS antigua | 
| UEFI preferida | UEFI | UEFI | UEFI | 
| UEFI preferida | UEFI | UEFI y BIOS heredado | UEFI | 
| UEFI preferida | BIOS antigua | BIOS antigua | BIOS antigua | 
| UEFI preferida | BIOS antigua | UEFI y BIOS antigua | BIOS antigua | 
| No se especificó ningún modo de arranque: ARM | UEFI | UEFI | UEFI | 
| No se especificó ningún modo de arranque: x86 | BIOS antigua | UEFI y BIOS antigua | BIOS antigua | 

# Determinación del parámetro del modo de arranque de una AMI de Amazon EC2
<a name="ami-boot-mode"></a>

El parámetro de modo de arranque de la AMI es opcional. Una AMI puede tener uno de los siguientes valores de parámetro de modo de arranque: `uefi`, `legacy-bios` o `uefi-preferred`.

Algunas AMI no tienen un parámetro de modo de arranque. Cuando una AMI no tiene ningún parámetro de modo de arranque, las instancias iniciadas desde la AMI utilizan el valor predeterminado del tipo de instancia, que es `uefi` en Graviton y `legacy-bios` en los tipos de instancias de Intel y AMD.

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

**Para determinar el parámetro de modo de arranque de una AMI**

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, elija **AMI** y, a continuación, seleccione la AMI.

1. Inspeccione el campo **Modo de arranque**.
   + El valor **uefi** indica que la AMI es compatible con UEFI.
   + El valor **uefi-preferred** indica que la AMI es compatible con UEFI y el BIOS heredado.
   + Si no hay ningún valor, las instancias iniciadas desde la AMI utilizan el valor predeterminado del tipo de instancia.

**Para determinar el parámetro de modo de arranque de una AMI cuando se inicia una instancia**  
Cuando lance una instancia mediante el asistente de inicialización de instancias, en el paso para seleccionar una AMI, examine el campo **Modo de arranque**. Para obtener más información, consulte [Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)](ec2-instance-launch-parameters.md#liw-ami).

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

**Para determinar el parámetro de modo de arranque de una AMI**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para determinar el modo de arranque de una AMI.

```
aws ec2 describe-images \
    --region us-east-1 \
    --image-id ami-0abcdef1234567890 \
    --query Images[].BootMode \
    --output text
```

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

```
uefi
```

En el resultado, un valor de `uefi` indica que la AMI es compatible con UEFI. Un valor de `uefi-preferred` indica que la AMI es compatible con UEFI y la BIOS antigua. Si no hay ningún valor, las instancias iniciadas desde la AMI utilizan el valor predeterminado del tipo de instancia.

------
#### [ PowerShell ]

**Para determinar el parámetro de modo de arranque de una AMI**  
Utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) para determinar el modo de arranque de una AMI.

```
Get-EC2Image -Region us-east-1 `
    -ImageId ami-0abcdef1234567890 | Format-List Name, BootMode, TpmSupport
```

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

```
Name       : TPM-Windows_Server-2016-English-Full-Base-2023.05.10
BootMode   : uefi
TpmSupport : v2.0
```

En el resultado, el valor de `BootMode` indica el modo de arranque de la AMI. Un valor de `uefi` indica que la AMI es compatible con UEFI. Un valor de `uefi-preferred` indica que la AMI es compatible con UEFI y la BIOS antigua. Si no hay ningún valor, las instancias iniciadas desde la AMI utilizan el valor predeterminado del tipo de instancia.

------

# Determinación de los modos de arranque que admite un tipo de instancia de EC2
<a name="instance-type-boot-mode"></a>

Puede determinar los modos de arranque que admite un tipo de instancia.

La consola de Amazon EC2 no muestra los modos de arranque compatibles de un tipo de instancia.

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

Use el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) para determinar los modos de arranque que admite un tipo de instancia. El parámetro `--query` filtra la salida para devolver solo los modos de arranque compatibles.

En el siguiente ejemplo se muestra que el tipo de instancia especificado es compatible con los modos de arranque UEFI y BIOS heredado.

```
aws ec2 describe-instance-types \
    --instance-types m5.2xlarge \
    --query "InstanceTypes[*].SupportedBootModes"
```

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

```
[
    [
        "legacy-bios",
        "uefi"
    ]
]
```

En el siguiente ejemplo se muestra que solo `t2.xlarge` es compatible con el BIOS heredado.

```
aws ec2 describe-instance-types \
    --instance-types t2.xlarge \
    --query "InstanceTypes[*].SupportedBootModes"
```

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

```
[
    [
        "legacy-bios"
    ]
]
```

------
#### [ PowerShell ]

Utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) para determinar los modos de arranque que admite un tipo de instancia.

En el siguiente ejemplo se muestra que `m5.2xlarge` es compatible con los modos de arranque UEFI y BIOS heredado.

```
Get-EC2InstanceType -InstanceType m5.2xlarge | Format-List InstanceType, SupportedBootModes
```

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

```
InstanceType       : m5.2xlarge
SupportedBootModes : {legacy-bios, uefi}
```

En el siguiente ejemplo se muestra que solo `t2.xlarge` es compatible con el BIOS heredado.

```
Get-EC2InstanceType -InstanceType t2.xlarge | Format-List InstanceType, SupportedBootModes
```

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

```
InstanceType       : t2.xlarge
SupportedBootModes : {legacy-bios}
```

------

**Determinación de los tipos de instancia compatibles con UEFI**  
Puede determinar los tipos de instancia compatibles con UEFI. La consola de Amazon EC2 no muestra la compatibilidad con UEFI de un tipo de instancia.

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

Los tipos de instancia disponibles varían según Región de AWS. Para ver los tipos de instancias disponibles que son compatibles con UEFI en una región, utilice el comando [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html). Incluya el parámetro `--filters` a fin de limitar los resultados a los tipos de instancia que admiten UEFI y el parámetro `--query` para limitar la salida al valor de `InstanceType`.

```
aws ec2 describe-instance-types \
    --filters Name=supported-boot-mode,Values=uefi \
    --query "InstanceTypes[*].[InstanceType]" --output text | sort
```

------
#### [ PowerShell ]

Los tipos de instancia disponibles varían según Región de AWS. Para ver los tipos de instancias disponibles que son compatibles con UEFI en una región, utilice el cmdlet [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html).

```
Get-EC2InstanceType | `
	Where-Object {$_.SupportedBootModes -Contains "uefi"} | `
	Sort-Object InstanceType | `
	Format-Table InstanceType -GroupBy CurrentGeneration
```

------

**Determinación de los tipos de instancias compatibles con el arranque seguro de UEFI y con variables no volátiles persistentes**  
Las instancias bare metal no son compatibles con el arranque seguro de UEFI ni con las variables no volátiles, por lo que estos ejemplos no las incluyen en la salida. Para obtener más información sobre el arranque seguro UEFI, consulte [Arranque seguro de UEFI para instancias de Amazon EC2](uefi-secure-boot.md).

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

Utilice el comando [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) y excluya las instancias bare metal del resultado.

```
aws ec2 describe-instance-types \
    --filters Name=supported-boot-mode,Values=uefi Name=bare-metal,Values=false \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

------
#### [ PowerShell ]

Utilice el cmdlet [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) y excluya las instancias de bare metal del resultado.

```
Get-EC2InstanceType | `
    Where-Object { `
        $_.SupportedBootModes -Contains "uefi" -and `
        $_.BareMetal -eq $False
        } | `
    Sort-Object InstanceType  | `
    Format-Table InstanceType, SupportedBootModes, BareMetal, `
        @{Name="SupportedArchitectures"; Expression={$_.ProcessorInfo.SupportedArchitectures}}
```

------

# Determinación del modo de arranque de una instancia de EC2
<a name="instance-boot-mode"></a>

El modo de arranque de una instancia se muestra en el campo **Modo de arranque** de la consola de Amazon EC2 y junto al parámetro `currentInstanceBootMode` de AWS CLI.

Cuando se inicia una instancia, el valor de su parámetro de modo de arranque se determina mediante el valor del parámetro de modo de arranque de la AMI utilizada para iniciarla, de la siguiente manera:
+ Una AMI con un parámetro de modo de arranque de `uefi` crea una instancia con un parámetro `currentInstanceBootMode` de `uefi`.
+ Una AMI con un parámetro de modo de arranque de `legacy-bios` crea una instancia con un parámetro `currentInstanceBootMode` de ` legacy-bios`.
+ Una AMI con un parámetro de modo de arranque de `uefi-preferred` crea una instancia con un parámetro `currentInstanceBootMode` de `uefi` si el tipo de instancia admite UEFI; de lo contrario, crea una instancia con un parámetro `currentInstanceBootMode` de `legacy-bios`.
+ Una AMI sin valor de parámetro de modo de arranque crea una instancia con un valor de parámetro `currentInstanceBootMode` que depende de si la arquitectura de la AMI es ARM o x86 y del modo de arranque admitido del tipo de instancia. El modo de arranque predeterminado es `uefi` en los tipos de instancia de Graviton y `legacy-bios` en los tipos de instancia de Intel y AMD.

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

**Para determinar el modo de arranque de una instancia**

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, elija **Instances** (instancia[s]) y seleccione la instancia.

1. En la pestaña **Detalles**, examine el campo **Modo de arranque**.

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

**Para determinar el modo de arranque de una instancia**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) para determinar el modo de arranque de una instancia. También puede determinar el modo de arranque de la AMI que se utilizó para crear la instancia. 

```
aws ec2 describe-instances \
    --region us-east-1 \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[].Instances[].BootMode \
    --output text
```

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

```
uefi
```

------
#### [ PowerShell ]

**Para determinar el modo de arranque de una instancia**  
Utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) para determinar el modo de arranque de una instancia. También puede determinar el modo de arranque de la AMI que se utilizó para crear la instancia. 

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances | Format-List BootMode, CurrentInstanceBootMode, InstanceType, ImageId
```

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

```
BootMode                : uefi
CurrentInstanceBootMode : uefi
InstanceType            : c5a.large
ImageId                 : ami-0abcdef1234567890
```

------

# Determinación del modo de arranque del sistema operativo para la instancia de EC2
<a name="os-boot-mode"></a>

El modo de arranque de la AMI indica a Amazon EC2 qué modo de arranque se utiliza para iniciar una instancia. Para ver si el sistema operativo de la instancia está configurado para UEFI, debe conectarse a la instancia mediante SSH (instancias de Linux) or RDP (instancias de Windows).

Consulte las instrucciones del sistema operativo de su instancia.

## Linux
<a name="os-boot-mode-linux"></a>

**Para determinar el modo de arranque del sistema operativo de la instancia**

1. [Conéctese a su instancia de Linux mediante SSH](connect-linux-inst-ssh.md).

1. Para ver el modo de arranque del sistema operativo, pruebe uno de los siguientes procedimientos:
   + Ejecute el siguiente comando.

     ```
     [ec2-user ~]$ sudo /usr/sbin/efibootmgr
     ```

     Resultado esperado de una instancia iniciada con el modo de arranque UEFI

     ```
     BootCurrent: 0001
     Timeout: 0 seconds
     BootOrder: 0000,0001
     Boot0000* UiApp
     Boot0001* UEFI Amazon Elastic Block Store vol-xyz
     ```
   + Ejecute el siguiente comando para verificar la existencia del directorio `/sys/firmware/efi`. Este directorio solo existe si la instancia se inicia con UEFI. Si el directorio no existe, el comando devuelve `Legacy BIOS Boot Detected`.

     ```
     [ec2-user ~]$ [ -d /sys/firmware/efi ] && echo "UEFI Boot Detected" || echo "Legacy BIOS Boot Detected"
     ```

     Resultado esperado de una instancia iniciada con el modo de arranque UEFI

     ```
     UEFI Boot Detected
     ```

     Resultado esperado de una instancia iniciada con el modo de arranque Legacy BIOS

     ```
     Legacy BIOS Boot Detected
     ```
   + Ejecute el siguiente comando para verificar que EFI aparece en la salida `dmesg`.

     ```
     [ec2-user ~]$ dmesg | grep -i "EFI"
     ```

     Resultado esperado de una instancia lanzada con el modo de arranque UEFI

     ```
     [    0.000000] efi: Getting EFI parameters from FDT:
     [    0.000000] efi: EFI v2.70 by EDK II
     ```

## Windows
<a name="os-boot-mode-windows"></a>

**Para determinar el modo de arranque del sistema operativo de la instancia**

1. [Conéctese a la instancia de Windows mediante RDP](connecting_to_windows_instance.md).

1. Vaya a **Información del sistema** y consulte la fila **Modo BIOS**.  
![\[Ventana de información del sistema que muestra la fila del modo BIOS seleccionada. El valor del modo BIOS es Legacy.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/BIOS-mode-win.png)

# Establecimiento del modo de arranque de una AMI de Amazon EC2
<a name="set-ami-boot-mode"></a>

De forma predeterminada, una AMI hereda el modo de arranque de la instancia de EC2 utilizada para crear la AMI. Por ejemplo, si crea una AMI a partir de una instancia de EC2 que se ejecuta en Legacy BIOS, el modo de arranque de la nueva AMI es `legacy-bios`. Si crea una AMI a partir de una instancia EC2 con un modo de arranque de `uefi-preferred`, el modo de arranque de la nueva AMI es `uefi-preferred`.

Cuando registra una AMI, puede establecer el modo de arranque de la AMI en `uefi`, `legacy-bios` o `uefi-preferred`.

Cuando el modo de arranque de la AMI está establecido en `uefi-preferred`, la instancia se inicia de la siguiente manera: 
+ En el caso de los tipos de instancia que admiten UEFI y BIOS heredado (por ejemplo, `m5.large`), la instancia se inicia mediante UEFI.
+ En el caso de los tipos de instancia que únicamente admiten el BIOS heredado (por ejemplo, `m4.large`), la instancia se inicia mediante el BIOS heredado.

Si configura el modo de arranque de la AMI en `uefi-preferred`, el sistema operativo tiene que admitir la posibilidad de arrancar en UEFI y BIOS heredado.

Para convertir una instancia existente basada en Legacy BIOS a UEFI, o una instancia existente basada en UEFI a Legacy BIOS, primero debe modificar el volumen y el sistema operativo de la instancia para que admitan el modo de arranque seleccionado. Luego, cree una instantánea del volumen. Finalmente, cree una AMI a partir de una instantánea.

**Consideraciones**
+ Establecer el parámetro de modo de arranque de la AMI no configura automáticamente el sistema operativo para el modo de arranque especificado. Primero debe realizar las modificaciones adecuadas en el volumen y el sistema operativo de la instancia para admitir el arranque utilizando el modo de arranque seleccionado. De lo contrario, la AMI resultante no se podrá utilizar. Por ejemplo, si está convirtiendo una instancia basada en Legacy BIOS a UEFI, puede utilizar la herramienta [MBR2GPT](https://learn.microsoft.com/en-us/windows/deployment/mbr-to-gpt) de Microsoft para convertir el disco del sistema de MBR a GPT. Las modificaciones obligatorias son específicas del sistema operativo. Para obtener más información, consulte el manual del sistema operativo.
+ No puede utilizar el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) o el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) para crear una AMI que sea compatible con [NitroTPM](nitrotpm.md) y UEFI preferido.
+ Algunas características, como UEFI Secure Boot, solo están disponibles en instancias que arrancan en UEFI. Al utilizar el parámetro del modo de arranque de AMI `uefi-preferred` con un tipo de instancia que no admita UEFI, la instancia se lanza como BIOS antigua y la característica dependiente de UEFI se deshabilita. Si depende de la disponibilidad de una característica dependiente de UEFI, defina el parámetro del modo de arranque de AMI en `uefi`.

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

**Para establecer el modo de arranque de una AMI**

1. Realice las modificaciones adecuadas en el volumen y el sistema operativo de la instancia para admitir el arranque a través del modo de arranque seleccionado. Las modificaciones obligatorias son específicas del sistema operativo. Para obtener más información, consulte el manual del sistema operativo.
**aviso**  
Si no realiza este paso, no se podrá utilizar la AMI.

1. Para buscar el ID de volumen de la instancia, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html). En el siguiente paso, creará una instantánea de este volumen.

   ```
   aws ec2 describe-instances \
       --instance-ids i-1234567890abcdef0 \
       --query Reservations[].Instances[].BlockDeviceMappings
   ```

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

   ```
   [
       [
           {
               "DeviceName": "/dev/xvda",
               "Ebs": {
                   "AttachTime": "2024-07-11T01:05:51+00:00",
                   "DeleteOnTermination": true,
                   "Status": "attached",
                   "VolumeId": "vol-1234567890abcdef0"
               }
           }
       ]
   ]
   ```

1. Para crear una instantánea del volumen, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/create-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-snapshot.html). Utilice el ID del volumen del paso anterior.

   ```
   aws ec2 create-snapshot \
       --volume-id vol-01234567890abcdef \
       --description "my snapshot"
   ```

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

   ```
   {
       "Description": "my snapshot",
       "Encrypted": false,
       "OwnerId": "123456789012",
       "Progress": "",
       "SnapshotId": "snap-0abcdef1234567890",
       "StartTime": "",
       "State": "pending",
       "VolumeId": "vol-01234567890abcdef",
       "VolumeSize": 30,
       "Tags": []
   }
   ```

1. Espere hasta que el estado de la instantánea sea `completed` antes de ir al siguiente paso. Para obtener el estado de la instantánea, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) con el ID de instantánea del paso anterior.

   ```
   aws ec2 describe-snapshots \
       --snapshot-ids snap-0abcdef1234567890 \
       --query Snapshots[].State \
       --output text
   ```

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

   ```
   completed
   ```

1. Para crear una AMI, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html). Use el valor de `SnapshotId` del resultado de **CreateSnapshot**.
   + Para configurar el modo de arranque en UEFI, agregue el parámetro `--boot-mode` con un valor de `uefi`.

     ```
     aws ec2 register-image \
        --description "my image" \
        --name "my-image" \
        --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
        --root-device-name /dev/sda1 \
        --virtualization-type hvm \
        --ena-support \
        --boot-mode uefi
     ```
   + Para configurar el modo de arranque en `uefi-preferred`, establezca el valor de `--boot-mode` en `uefi-preferred`

     ```
     aws ec2 register-image \
        --description "my description" \
        --name "my-image" \
        --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
        --root-device-name /dev/sda1 \
        --virtualization-type hvm \
        --ena-support \
        --boot-mode uefi-preferred
     ```

1. (Opcional) Para verificar que la AMI recién creada cuenta con el modo de arranque que especificó, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

   ```
   aws ec2 describe-images \
       --image-id ami-1234567890abcdef0 \
       --query Images[].BootMode \
       --output text
   ```

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

   ```
   uefi
   ```

------
#### [ PowerShell ]

**Para establecer el modo de arranque de una AMI**

1. Realice las modificaciones adecuadas en el volumen y el sistema operativo de la instancia para admitir el arranque a través del modo de arranque seleccionado. Las modificaciones obligatorias son específicas del sistema operativo. Para obtener más información, consulte el manual del sistema operativo.
**aviso**  
Si no realiza este paso, no se podrá utilizar la AMI.

1. Para buscar el ID de volumen de la instancia, utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

   ```
   (Get-EC2Instance `
       -InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs
   ```

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

   ```
   AssociatedResource  : 
   AttachTime          : 7/11/2024 1:05:51 AM
   DeleteOnTermination : True
   Operator            : 
   Status              : attached
   VolumeId            : vol-01234567890abcdef
   ```

1. Para crear una instantánea del volumen, utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Snapshot.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Snapshot.html). Utilice el ID del volumen del paso anterior.

   ```
   New-EC2Snapshot `
       -VolumeId vol-01234567890abcdef `
       -Description "my snapshot"
   ```

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

   ```
   AvailabilityZone          : 
   Description               : my snapshot
   Encrypted                 : False
   FullSnapshotSizeInBytes   : 0
   KmsKeyId                  : 
   OwnerId                   : 123456789012
   RestoreExpiryTime         : 
   SnapshotId                : snap-0abcdef1234567890
   SseType                   : 
   StartTime                 : 4/25/2025 6:08:59 PM
   State                     : pending
   StateMessage              : 
   VolumeId                  : vol-01234567890abcdef
   VolumeSize                : 30
   ```

1. Espere hasta que el estado de la instantánea sea `completed` antes de ir al siguiente paso. Para obtener el estado de la instantánea, utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Snapshot.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Snapshot.html) con el ID de instantánea del paso anterior.

   ```
   (Get-EC2Snapshot `
       -SnapshotId snap-0abcdef1234567890).State.Value
   ```

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

   ```
   completed
   ```

1. Para crea una nueva AMI, utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html). Use el valor de `SnapshotId` del resultado de **New-EC2Snapshot**.
   + Para configurar el modo de arranque en UEFI, agregue el parámetro `-BootMode` con un valor de `uefi`.

     ```
     $block = @{SnapshotId=snap-0abcdef1234567890}
     Register-EC2Image ` 
        -Description "my image" `
        -Name "my-image" `
        -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
        -RootDeviceName /dev/xvda `
        -EnaSupport $true `
        -BootMode uefi
     ```
   + Para configurar el modo de arranque en `uefi-preferred`, establezca el valor de `-BootMode` en `uefi-preferred`

     ```
     $block = @{SnapshotId=snap-0abcdef1234567890}
     Register-EC2Image ` 
        -Description "my image" `
        -Name "my-image" `
        -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
        -RootDeviceName /dev/xvda `
        -EnaSupport $true `
        -BootMode uefi-preferred
     ```

1. (Opcional) Para verificar que la AMI recién creada cuenta con el modo de arranque que especificó, utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

   ```
   (Get-EC2Image `
       -ImageId ami-1234567890abcdef0).BootMode.Value
   ```

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

   ```
   uefi
   ```

------

# Variables UEFI para instancias de Amazon EC2
<a name="uefi-variables"></a>

Cuando inicia una instancia en la que el modo de arranque se establece en UEFI, se crea un almacén de clave-valor para variables. La UEFI y el sistema operativo de instancias pueden utilizar el almacén para almacenar variables UEFI.

El cargador de arranque y el sistema operativo utilizan las variables UEFI para configurar el inicio temprano del sistema. Permiten que el sistema operativo administre ciertas configuraciones del proceso de arranque, como la orden de arranque o la administración de claves para el Arranque seguro UEFI.

**aviso**  
Cualquier persona que pueda conectarse a la instancia (y, posiblemente, cualquier software que se ejecute en la instancia) o cualquier persona con permisos para usar la API [GetInstanceUefiData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceUefiData.html) en la instancia puede leer las variables. Nunca debe almacenar información confidencial, como contraseñas o información de identificación personal, en el almacén de variables de la UEFI.

**Persistencia de las variables UEFI**
+ En el caso de las instancias que se iniciaron el 10 de mayo de 2022 o en una fecha anterior, las variables UEFI se borran cuando se reinician o detienen.
+ En el caso de las instancias que se iniciaron el 11 de mayo de 2022 o en una fecha posterior, las variables UEFI marcadas como no volátiles persisten cuando se reinician, o cuando se inician o detienen.
+ Las instancias bare metal no conservan las variables no volátiles de la UEFI en las operaciones de detención o inicio de las instancias.

# Arranque seguro de UEFI para instancias de Amazon EC2
<a name="uefi-secure-boot"></a>

El modo UEFI Secure Boot se basa en el proceso de arranque seguro consolidado de Amazon EC2 y proporciona protección adicional en profundidad que ayuda a los clientes a proteger el software frente a amenazas que persisten durante los reinicios. Garantiza que la instancia solo arranque el software firmado con claves criptográficas. Las claves se almacenan en la base de datos de claves del [almacenamiento variable no volátil de la UEFI](uefi-variables.md). UEFI Secure Boot evita la modificación no autorizada del flujo de arranque de las instancias.

**Topics**
+ [Funcionamiento del arranque seguro de UEFI con instancias de Amazon EC2](how-uefi-secure-boot-works.md)
+ [Requisitos para el arranque seguro EFI en Amazon EC2](launch-instance-with-uefi-sb.md)
+ [Comprobación de si una instancia de Amazon EC2 está habilitada para el arranque seguro de UEFI](verify-uefi-secure-boot.md)
+ [Creación de una AMI de Linux con claves personalizadas del arranque seguro de UEFI](create-ami-with-uefi-secure-boot.md)
+ [Creación del blob binario de AWS para el arranque seguro de UEFI](aws-binary-blob-creation.md)

# Funcionamiento del arranque seguro de UEFI con instancias de Amazon EC2
<a name="how-uefi-secure-boot-works"></a>

UEFI Secure Boot es una característica especificada en la UEFI, que permite verificar el estado de la cadena de arranque. Está diseñado para garantizar que solo se ejecuten binarios UEFI verificados de manera criptográfica después de la autoinicialización del firmware. Estos binarios incluyen los controladores UEFI y el gestor de arranque principal, así como componentes cargados en cadena.

UEFI Secure Boot especifica cuatro bases de datos clave, que se utilizan en una cadena de confianza. Las bases de datos se almacenan en el almacén de variables UEFI.

La cadena de confianza es la siguiente:

**Base de datos de la clave de la plataforma (PK**  
La base de datos de PK es la raíz de la confianza. Contiene una única clave PK pública que se utiliza en la cadena de confianza para actualizar la base de datos de claves de intercambio de claves (KEK).  
Para cambiar la base de datos de PK, debe tener la clave PK privada para firmar una solicitud de actualización. Esto incluye eliminar la base de datos de PK escribiendo una clave PK vacía.

**Base de datos de claves de intercambio de claves (KEK**  
La base de datos KEK es una lista de claves KEK públicas que se utilizan en la cadena de confianza para actualizar las bases de datos de firma (db) y de la lista de denegación (dbx).  
Para cambiar la base de datos de KEK pública, debe tener la clave PK privada para firmar una solicitud de actualización.

**Base de datos de firmas (db**  
La base de datos db es una lista de claves públicas y hashes que se utilizan en la cadena de confianza para validar todos los binarios de arranque UEFI.  
Para cambiar la base de datos db, debe tener la clave PK privada o cualquiera de las claves KEK privadas para firmar una solicitud de actualización.

**Base de datos de la lista de denegación de firmas (dbx**  
La base de datos dbx es una lista de claves públicas y hashes binarios que no son de confianza y se utilizan en la cadena de confianza como archivo de revocación.  
La base de datos dbx siempre tiene prioridad sobre las demás bases de datos clave.  
Para cambiar la base de datos dbx, debe tener la clave PK privada o cualquiera de las claves KEK privadas para firmar una solicitud de actualización.  
El Foro UEFI mantiene un dbx disponible de forma pública para muchos binarios y certificados incorrectos en [https://uefi.org/revocationlistfile](https://uefi.org/revocationlistfile).

**importante**  
UEFI Secure Boot aplica la validación de firmas en cualquier binario UEFI. Para permitir la ejecución de un binario UEFI en el arranque seguro UEFI, debe firmarlo con cualquiera de las claves de base de datos privadas descritas anteriormente.

De forma predeterminada, UEFI Secure Boot está desactivado y el sistema está en `SetupMode`. Cuando el sistema está en `SetupMode`, todas las variables clave se pueden actualizar sin una firma criptográfica. Cuando se establece el PK, el arranque seguro UEFI se habilita y se cierra el modo de configuración.

# Requisitos para el arranque seguro EFI en Amazon EC2
<a name="launch-instance-with-uefi-sb"></a>

Cuando [lanza una instancia de Amazon EC2](LaunchingAndUsingInstances.md) con una AMI y un tipo de instancia compatibles, dicha instancia validará de manera automática los binarios de arranque de UEFI en su base de datos del arranque seguro de UEFI. No se necesita configuración adicional. También puede configurar UEFI Secure Boot en una instancia posterior a al inicialización.

**nota**  
UEFI Secure Boot protege su instancia y su sistema operativo contra las modificaciones del flujo de arranque. Si crea una nueva AMI de una AMI de origen que tiene UEFI Secure Boot habilitado y modifica ciertos parámetros durante el proceso de copiado como cambiar el `UefiData` dentro de la AMI, puede desactivar UEFI Secure Boot.

**Topics**
+ [AMIs soportadas](#uefi-amis)
+ [Tipos de instancias admitidas](#uefi-instance)

## AMIs soportadas
<a name="uefi-amis"></a>

**AMI de Linux**  
Para lanzar una instancia de Linux, la AMI de Linux debe tener habilitado el arranque seguro de la UEFI.

Amazon Linux admite Arranque seguro UEFI a partir de la versión 2023.1 de AL2023. Sin embargo, el arranque seguro UEFI no está habilitado en las AMI predeterminadas. Para obtener más información, consulte [Arranque seguro UEFI](https://docs.aws.amazon.com/linux/al2023/ug/uefi-secure-boot.html) en la *Guía del usuario de AL2023*. Las versiones anteriores de las AMI de Amazon Linux no están habilitadas para el arranque seguro UEFI. Para utilizar una AMI admitida, debe realizar varios pasos de configuración en su propia AMI de Linux. Para obtener más información, consulte [Creación de una AMI de Linux con claves personalizadas del arranque seguro de UEFI](create-ami-with-uefi-secure-boot.md).

**AMI de Windows**  
Para lanzar una instancia de Windows, la AMI de Windows debe tener habilitado el arranque seguro de la UEFI. Para encontrar una AMI de Windows de AWS que esté preconfigurada para el arranque seguro de UEFI con claves de Microsoft, consulte [Find Windows Server AMIs configured with NitroTPM and UEFI Secure Boot](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ami-windows-tpm.html#ami-windows-tpm-find) en la *Referencia de AMI de Windows de AWS*.

En este momento, no se admite la importación de Windows con UEFI Secure Boot mediante el comando [import-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html).

## Tipos de instancias admitidas
<a name="uefi-instance"></a>

Todos los tipos de instancias virtualizadas que admiten UEFI también admiten el arranque seguro de UEFI. Para obtener información sobre los tipos de instancias compatibles con el modo Arranque seguro UEFI, consulte [Requisitos para el modo de arranque UEFI](launch-instance-boot-mode.md).

**nota**  
Los tipos de instancias bare metal no admiten UEFI Secure Boot.

# Comprobación de si una instancia de Amazon EC2 está habilitada para el arranque seguro de UEFI
<a name="verify-uefi-secure-boot"></a>

Puede utilizar los siguientes procedimientos para determinar si una instancia de Amazon EC2 está habilitada para el arranque seguro de UEFI.

## Instancias de Linux
<a name="verify-uefi-secure-boot-linux"></a>

Puede usar la utilidad `mokutil` para verificar si una instancia de Linux está habilitada para UEFI Secure Boot. Si `mokutil` no está instalado en la instancia, deberá instalarlo. Para obtener las instrucciones de instalación en Amazon Linux 2, consulte [Find and install software packages on an Amazon Linux 2 instance](https://docs.aws.amazon.com/linux/al2/ug/find-install-software.html). Para otras distribuciones de Linux, consulte su documentación específica.

**Para verificar si una instancia de Linux está habilitada para UEFI Secure Boot**  
Conéctese a la instancia y ejecute el siguiente comando como `root` en una ventana de terminal.

```
mokutil --sb-state 
```

A continuación, se muestra un ejemplo del resultado.
+ Si el arranque seguro UEFI está habilitado, la salida contiene `SecureBoot enabled`.
+ Si UEFI Secure Boot no está habilitado, la salida contiene `SecureBoot disabled` o `Failed to read SecureBoot`.

## instancias de Windows
<a name="verify-uefi-secure-boot-windows"></a>

**Para comprobar si una instancia de Windows está habilitada para UEFI Secure Boot**

1. Conéctese a la instancia.

1. Abra la herramienta msinfo32.

1. Verifique el campo **Estado de arranque seguro**. Si se habilita el arranque seguro de UEFI, el valor es **Compatible**, como se muestra en la siguiente imagen.  
![\[Estado de arranque seguro dentro de la información del sistema.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/secure-boot-state-win.png)

También puede utilizar Cmdlet `Confirm-SecureBootUEFI` de Windows PowerShell para verificar el estado de arranque seguro. Para obtener más información sobre el cmdlet, consulte [Confirm-SecureBootUEFI](https://learn.microsoft.com/en-us/powershell/module/secureboot/confirm-securebootuefi) en la documentación de Microsoft.

# Creación de una AMI de Linux con claves personalizadas del arranque seguro de UEFI
<a name="create-ami-with-uefi-secure-boot"></a>

Estas instrucciones muestran cómo crear una AMI de Linux con el arranque seguro de UEFI y claves privadas personalizadas. Amazon Linux admite Arranque seguro UEFI a partir de la versión 2023.1 de AL2023. Para obtener más información, consulte [Arranque seguro de UEFI en AL2023](https://docs.aws.amazon.com/linux/al2023/ug/uefi-secure-boot.html) en la *Guía del usuario de Amazon Linux 2023*.

**importante**  
El siguiente procedimiento está destinado **solo a usuarios avanzados**. Debe tener el conocimiento suficiente del flujo de arranque de distribución SSL y Linux para utilizar estos procedimientos.

**Requisitos previos**
+ Se utilizarán las siguientes herramientas:
  + OpenSSL: [https://www.openssl.org/](https://www.openssl.org/)
  + efivar: [https://github.com/rhboot/efivar](https://github.com/rhboot/efivar)
  + efitools: [https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/](https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/)
  + Comando [get-instance-uefi-data](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html)
+ La instancia de Linux debe haberse iniciado con una AMI de Linux compatible con el modo de arranque UEFI y debe tener datos no volátiles presentes.

Las instancias recientemente creadas sin claves de UEFI Secure Boot se crean en `SetupMode`, lo que le permite inscribir claves propias. Algunas AMI vienen preconfiguradas con UEFI Secure Boot y no se pueden cambiar las claves existentes. Si desea cambiar las claves, debe crear una AMI nueva basada en la AMI original.

Existen dos formas de propagar las claves en el almacén de variables, las cuales se describen en la opción A y la opción B que se indican a continuación. En la opción A, se describe cómo hacerlo desde la instancia, imitando el flujo de hardware real. En la opción B, se describe cómo crear un blob binario, que luego se pasa como un archivo codificado en base64 cuando se crea la AMI. Para ambas opciones, primero debe crear los tres pares de claves, que se utilizan para la cadena de confianza.

**Topics**
+ [Tarea 1: creación de un par de claves](#uefi-secure-boot-create-three-key-pairs)
+ [Tarea 2, opción A: agregar claves al almacén de variables desde la instancia](#uefi-secure-boot-optionA)
+ [Tarea 2, opción B: crear un blob binario que contenga un almacén de variables precargado](#uefi-secure-boot-optionB)

## Tarea 1: creación de un par de claves
<a name="uefi-secure-boot-create-three-key-pairs"></a>

UEFI Secure Boot se basa en las tres bases de datos clave siguientes, que se utilizan en una cadena de confianza: la clave de plataforma (PK), la clave de intercambio de claves (KEK) y la base de datos de firmas (db).¹

Cada clave se crea en la instancia. Para preparar las claves públicas en un formato que sea válido para el estándar UEFI Secure Boot, cree un certificado para cada clave. Las `DER` definen el formato SSL (codificación binaria de un formato). A continuación, convierta cada certificado en una lista de firmas UEFI, que es el formato binario que entiende UEFI Secure Boot. Y, por último, firme cada certificado con la clave correspondiente.

**Topics**
+ [Preparación para la creación de pares de claves](#uefisb-prepare-to-create-key-pairs)
+ [Par de claves 1: cree la clave de plataforma (PK)](#uefisb-create-key-pair-1)
+ [Par de claves 2: cree la clave de intercambio de claves (KEK)](#uefisb-create-key-pair-2)
+ [Par de claves 3: cree la base de datos (DB) de firmas](#uefisb-create-key-pair-3)
+ [Firme la imagen de arranque (kernel) con la clave privada](#uefi-secure-boot-sign-kernel)

### Preparación para la creación de pares de claves
<a name="uefisb-prepare-to-create-key-pairs"></a>

Antes de crear los pares de claves, cree un identificador único global (GUID) que se utilizará en la generación de claves.

1. [Conéctese a la instancia](connect.md).

1. Ejecute el siguiente comando en una línea del shell.

   ```
   uuidgen --random > GUID.txt
   ```

### Par de claves 1: cree la clave de plataforma (PK)
<a name="uefisb-create-key-pair-1"></a>

La PK es la raíz de la confianza de las instancias UEFI Secure Boot. La PK privada se utiliza para actualizar la KEK, que, a su vez, se puede utilizar para agregar claves autorizadas a la base de datos de firmas (db).

El estándar X.509 se utiliza para crear el par de claves. Para obtener información sobre el estándar, consulte [X.509](https://en.wikipedia.org/wiki/X.509) en *Wikipedia*.

**Para crear la PK**

1. Cree la clave. Debe nombrar la variable `PK`.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout PK.key -new -x509 -sha256 -days 3650 -subj "/CN=Platform key/" -out PK.crt
   ```

   Se especifican los siguientes parámetros:
   + `-keyout PK.key`: el archivo de la clave privada.
   + `-days 3650`: el número de días en que el certificado es válido.
   + `-out PK.crt`: el certificado que se utiliza para crear la variable UEFI.
   + `CN=Platform key`: el nombre común (CN) para la clave. Puede escribir el nombre de su organización en lugar de la *Clave de plataforma*.

1. Cree el certificado.

   ```
   openssl x509 -outform DER -in PK.crt -out PK.cer
   ```

1. Convierta el certificado en una lista de firmas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" PK.crt PK.esl
   ```

1. Firme la lista de firmas de la UEFI con la PK privada (autofirmado).

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k PK.key -c PK.crt PK PK.esl PK.auth
   ```

### Par de claves 2: cree la clave de intercambio de claves (KEK)
<a name="uefisb-create-key-pair-2"></a>

La KEK privada se utiliza para agregar claves a la db, que es la lista de firmas autorizadas para arrancar en el sistema. 

**Para crear la clave de intercambio de claves (KEK)**

1. Cree la clave.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout KEK.key -new -x509 -sha256 -days 3650 -subj "/CN=Key Exchange Key/" -out KEK.crt
   ```

1. Cree el certificado.

   ```
   openssl x509 -outform DER -in KEK.crt -out KEK.cer
   ```

1. Convierta el certificado en una lista de firmas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" KEK.crt KEK.esl
   ```

1. Firme la lista de firmas con la PK privada.

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k PK.key -c PK.crt KEK KEK.esl KEK.auth
   ```

### Par de claves 3: cree la base de datos (DB) de firmas
<a name="uefisb-create-key-pair-3"></a>

La lista de base de datos contiene claves autorizadas para arrancar en el sistema. Para modificar la lista, es necesario la KEK privada. Las imágenes de arranque se firmarán con la clave privada que se crea en este paso.

**Para crear la base de datos**

1. Cree la clave.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout db.key -new -x509 -sha256 -days 3650 -subj "/CN=Signature Database key/" -out db.crt
   ```

1. Cree el certificado.

   ```
   openssl x509 -outform DER -in db.crt -out db.cer
   ```

1. Convierta el certificado en una lista de firmas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" db.crt db.esl
   ```

1. Firme la lista de firmas con la KEK privada.

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k KEK.key -c KEK.crt db db.esl db.auth
   ```

### Firme la imagen de arranque (kernel) con la clave privada
<a name="uefi-secure-boot-sign-kernel"></a>

Para Ubuntu 22.04, las siguientes imágenes requieren firmas.

```
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/mmx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/vmlinuz
```

**Para firmar una imagen**  
Utilice la siguiente sintaxis para firmar una imagen.

```
sbsign --key db.key --cert db.crt --output /boot/vmlinuz /boot/vmlinuz
```

**nota**  
Debe firmar todos los nuevos kernels. En general, *`/boot/vmlinuz`* creará un enlace simbólico con el último kernel instalado.

Para obtener más información sobre la cadena de arranque y las imágenes requeridas, consulte la documentación correspondiente para su distribución.

¹ Gracias a la comunidad ArchWiki por todo el trabajo que ha realizado. Los comandos para crear la PK, la KEK, la base de datos, así como también para firmar la imagen provienen de la documentación [Creación de claves](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_keys), redactado por el equipo de mantenimiento de ArchWiki y los colaboradores de ArchWiki.

## Tarea 2, opción A: agregar claves al almacén de variables desde la instancia
<a name="uefi-secure-boot-optionA"></a>

Una vez que haya creado los [tres pares de claves](#uefi-secure-boot-create-three-key-pairs), puede conectar con su instancia y agregar las claves al almacén de variables desde la instancia con los siguientes pasos. Como alternativa, complete los pasos en [Tarea 2, opción B: crear un blob binario que contenga un almacén de variables precargado](#uefi-secure-boot-optionB).

**Topics**
+ [Paso 1: iniciar una instancia que sea compatible con UEFI Secure Boot](#step1-launch-uefi-sb)
+ [Paso 2: configurar una instancia de forma que admita UEFI Secure Boot](#step2-launch-uefi-sb)
+ [Paso 3: crear una AMI a partir de la instancia](#step3-launch-uefi-sb)

### Paso 1: iniciar una instancia que sea compatible con UEFI Secure Boot
<a name="step1-launch-uefi-sb"></a>

Cuando [inicia una instancia](LaunchingAndUsingInstances.md) con los siguientes requisitos previos, la instancia estará lista para configurarse de forma que admita UEFI Secure Boot. Solo puede habilitar la compatibilidad con UEFI Secure Boot en una instancia durante la inicialización, no puede habilitarlo más adelante.

**Requisitos previos**
+ **AMI**: la AMI de Linux tiene que ser compatible con el modo de arranque UEFI. Para comprobar que la AMI es compatible con el modo de arranque UEFI, el parámetro del modo de arranque AMI debe ser **uefi**. Para obtener más información, consulte [Determinación del parámetro del modo de arranque de una AMI de Amazon EC2](ami-boot-mode.md).

  Tenga en cuenta que AWS solo proporciona AMI de Linux configuradas para admitir UEFI para tipos de instancias basados en Graviton. En este momento, AWS no proporciona AMI de Linux x86\$164 compatibles con el modo de arranque UEFI. Puede configurar su propia AMI para que admita el modo de arranque UEFI en todas las arquitecturas. Para configurar su propia AMI para que admita el modo de arranque UEFI, debe seguir varios pasos de configuración en su propia AMI. Para obtener más información, consulte [Establecimiento del modo de arranque de una AMI de Amazon EC2](set-ami-boot-mode.md).
+ **Tipo de instancia**: todos los tipos de instancias virtualizadas que admiten UEFI también admiten UEFI Secure Boot. Los tipos de instancias bare metal no admiten UEFI Secure Boot. Para obtener información sobre los tipos de instancias compatibles con el modo Arranque seguro UEFI, consulte [Requisitos para el modo de arranque UEFI](launch-instance-boot-mode.md).
+ Inicie su instancia después de la inicialización de UEFI Secure Boot. Solo las instancias iniciadas después del 10 de mayo de 2022 (cuando se lanzó UEFI Secure Boot) pueden admitir UEFI Secure Boot.

Después de iniciar la instancia, puede verificar que está lista para configurarse de forma que admita UEFI Secure Boot (en otras palabras, puede proceder al [Paso 2](#step2-launch-uefi-sb)) y comprobar si hay datos UEFI presentes. La presencia de datos de la UEFI indica que persisten los datos no volátiles.

**Para verificar si la instancia está lista para el paso 2**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html) y especifique el ID de la instancia.

```
aws ec2 get-instance-uefi-data --instance-id i-1234567890abcdef0
```

La instancia está lista para el paso 2 si los datos UEFI están presentes en la salida. Si la salida está vacía, la instancia no se puede configurar para que admita UEFI Secure Boot. Esto puede suceder si la instancia se lanzó antes de que la compatibilidad con UEFI Secure Boot estuviera disponible. Lance una nueva instancia e inténtelo de nuevo.

### Paso 2: configurar una instancia de forma que admita UEFI Secure Boot
<a name="step2-launch-uefi-sb"></a>

#### Inscriba los pares de claves en el almacén de variables UEFI en la instancia
<a name="step2a-launch-uefi-sb"></a>

**aviso**  
Debe firmar las imágenes de arranque *después* de inscribir las claves. De lo contrario, no podrá arrancar la instancia.

Después de crear las listas de firmas de la UEFI firmadas (`PK`, `KEK` y `db`), deben estar inscritas en el firmware de la UEFI.

Escribir en la variable `PK` solo es posible en los siguientes casos:
+ Si aún no se ha inscrito ninguna PK, lo que se indica si la variable `SetupMode` es `1`. Compruébelo mediante el siguiente comando. La salida es `1` o `0`.

  ```
  efivar -d -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SetupMode 
  ```
+ Si la nueva PK está firmada por la clave privada de la PK existente.

**Para inscribir las claves en el almacén de variables UEFI**  
Los siguientes comandos deben ejecutarse en la instancia.

Si SetupMode está habilitado (el valor es `1`), las claves se pueden inscribir mediante los siguientes comandos en la instancia:

```
[ec2-user ~]$ efi-updatevar -f db.auth db
```

```
[ec2-user ~]$ efi-updatevar -f KEK.auth KEK
```

```
[ec2-user ~]$ efi-updatevar -f PK.auth PK
```

**Para comprobar que UEFI Secure Boot está habilitado**  
Para verificar si el arranque seguro UEFI está habilitado, siga los pasos en [Comprobación de si una instancia de Amazon EC2 está habilitada para el arranque seguro de UEFI](verify-uefi-secure-boot.md).

Ahora, puede exportar su almacén de variables UEFI con el comando de la CLI [https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html) o puede continuar con el siguiente paso y firmar las imágenes de arranque para reiniciar en una instancia habilitada para UEFI Secure Boot.

### Paso 3: crear una AMI a partir de la instancia
<a name="step3-launch-uefi-sb"></a>

Para crear una AMI desde la instancia, puede utilizar la consola o el código `CreateImage` de la API, la CLI o el SDK. Para obtener instrucciones sobre cómo utilizar la consola, consulte [Creación de una AMI basada en Amazon EBS](creating-an-ami-ebs.md). Para obtener instrucciones sobre las API, consulte [Crear Imagen](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

**nota**  
La API `CreateImage` copia de forma automática el almacén de variables UEFI de la instancia en la AMI. La consola usa la API `CreateImage`. Después de iniciar instancias mediante esta AMI, las instancias tendrán el mismo almacén de variables UEFI.

## Tarea 2, opción B: crear un blob binario que contenga un almacén de variables precargado
<a name="uefi-secure-boot-optionB"></a>

Una vez que haya creado los [tres pares de claves](#uefi-secure-boot-create-three-key-pairs), puede crear un blob binario que contenga un almacén de variables precargado y que, a su vez, contenga las claves de UEFI Secure Boot. Como alternativa, complete los pasos en [Tarea 2, opción A: agregar claves al almacén de variables desde la instancia](#uefi-secure-boot-optionA).

**aviso**  
Debe firmar las imágenes de arranque *antes* de inscribir las claves; de lo contrario, no podrá arrancar la instancia.

**Topics**
+ [Paso 1: crear un almacén de variables nuevo o actualizar uno existente](#uefi-secure-boot-create-or-update-variable)
+ [Paso 2: cargar el blob binario en la creación de la AMI](#uefi-secure-boot-upload-binary-blob-on-ami-creation)

### Paso 1: crear un almacén de variables nuevo o actualizar uno existente
<a name="uefi-secure-boot-create-or-update-variable"></a>

Puede crear el almacén de variables *sin conexión* sin una instancia en ejecución mediante la herramienta python-uefivars. La herramienta puede crear un almacén de variables nuevo a partir de sus claves. El script admite actualmente el formato EDK2, el formato AWS y una representación JSON que es más fácil de editar con herramientas de nivel superior.

**Para crear el almacén de variables sin conexión sin una instancia en ejecución**

1. Descargue la herramienta en el siguiente enlace.

   ```
   https://github.com/awslabs/python-uefivars
   ```

1. Cree un nuevo almacén de variables desde sus claves con la ejecución del siguiente comando. Esto creará un blob binario codificado en base64 en *your\$1binary\$1blob*.bin. La herramienta también admite la actualización de un blob binario a través del parámetro `-I`.

   ```
   ./uefivars.py -i none -o aws -O your_binary_blob.bin -P PK.esl -K KEK.esl --db db.esl --dbx dbx.esl
   ```

### Paso 2: cargar el blob binario en la creación de la AMI
<a name="uefi-secure-boot-upload-binary-blob-on-ami-creation"></a>

Utilice [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para pasar los datos del almacén de variables UEFI. Para el parámetro `--uefi-data`, especifique el blob binario y para el parámetro `--boot-mode`, especifique `uefi`.

```
aws ec2 register-image \
    --name uefi_sb_tpm_register_image_test \
    --uefi-data $(cat your_binary_blob.bin) \
    --block-device-mappings "DeviceName=/dev/sda1,Ebs= {SnapshotId=snap-0123456789example,DeleteOnTermination=true}" \
    --architecture x86_64 \
    --root-device-name /dev/sda1 \
    --virtualization-type hvm \
    --ena-support \
    --boot-mode uefi
```

# Creación del blob binario de AWS para el arranque seguro de UEFI
<a name="aws-binary-blob-creation"></a>

Puede seguir los siguientes pasos para personalizar las variables de UEFI Secure Boot durante la creación de AMI. El KEK que se utiliza en estos pasos está actualizado a partir de septiembre de 2021. Si Microsoft actualiza la KEK, debe utilizar la KEK más reciente.

**Para crear el blob binario de AWS**

1. Cree una lista de firmas de PK vacía.

   ```
   touch empty_key.crt
   cert-to-efi-sig-list empty_key.crt PK.esl
   ```

1. Descargue el certificado KEK.

   ```
   https://go.microsoft.com/fwlink/?LinkId=321185
   ```

1. Empaque los certificados KEK en una lista de firmas UEFI (`siglist`).

   ```
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_KEK.esl MicCorKEKCA2011_2011-06-24.crt 
   ```

1. Descargue los certificados de la db de Microsoft.

   ```
   https://www.microsoft.com/pkiops/certs/MicWinProPCA2011_2011-10-19.crt
   https://www.microsoft.com/pkiops/certs/MicCorUEFCA2011_2011-06-27.crt
   ```

1. Genere la lista de firmas de la db.

   ```
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_db.esl MicWinProPCA2011_2011-10-19.crt
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_UEFI_db.esl MicCorUEFCA2011_2011-06-27.crt
   cat MS_Win_db.esl MS_UEFI_db.esl > MS_db.esl
   ```

1. Unified Extensible Firmware Interface Forum ya no proporciona los archivos DBX. Ahora los proporciona Microsoft en GitHub. Descargue la actualización más reciente de DBX del repositorio de actualizaciones de Arranque seguro de Microsoft en [https://github.com/microsoft/secureboot\$1objects](https://github.com/microsoft/secureboot_objects).

1. Desempaquete el archivo update-binary firmado.

   Cree `SplitDbxContent.ps1` con el contenido del script que aparece a continuación. Como alternativa, puede instalar el script desde la [Galería de PowerShell](https://www.powershellgallery.com/packages/SplitDbxContent/1.0) con `Install-Script -Name SplitDbxContent`.

   ```
   <#PSScriptInfo
    
   .VERSION 1.0
    
   .GUID ec45a3fc-5e87-4d90-b55e-bdea083f732d
    
   .AUTHOR Microsoft Secure Boot Team
    
   .COMPANYNAME Microsoft
    
   .COPYRIGHT Microsoft
    
   .TAGS Windows Security
    
   .LICENSEURI
    
   .PROJECTURI
    
   .ICONURI
    
   .EXTERNALMODULEDEPENDENCIES
    
   .REQUIREDSCRIPTS
    
   .EXTERNALSCRIPTDEPENDENCIES
    
   .RELEASENOTES
   Version 1.0: Original published version.
    
   #>
   
   <#
   .DESCRIPTION
    Splits a DBX update package into the new DBX variable contents and the signature authorizing the change.
    To apply an update using the output files of this script, try:
    Set-SecureBootUefi -Name dbx -ContentFilePath .\content.bin -SignedFilePath .\signature.p7 -Time 2010-03-06T19:17:21Z -AppendWrite'
   .EXAMPLE
   .\SplitDbxAuthInfo.ps1 DbxUpdate_x64.bin
   #>
   
   
   # Get file from script input
   $file  = Get-Content -Encoding Byte $args[0]
   
   # Identify file signature
   $chop = $file[40..($file.Length - 1)]
   if (($chop[0] -ne 0x30) -or ($chop[1] -ne 0x82 )) {
       Write-Error "Cannot find signature"
       exit 1
   }
   
   # Signature is known to be ASN size plus header of 4 bytes
   $sig_length = ($chop[2] * 256) + $chop[3] + 4
   $sig = $chop[0..($sig_length - 1)]
   
   if ($sig_length -gt ($file.Length + 40)) {
       Write-Error "Signature longer than file size!"
       exit 1
   }
   
   # Content is everything else
   $content = $file[0..39] + $chop[$sig_length..($chop.Length - 1)]
   
   # Write signature and content to files
   Set-Content -Encoding Byte signature.p7 $sig
   Set-Content -Encoding Byte content.bin $content
   ```

   Utilice el script para desempaquetar los archivos DBX firmados.

   ```
   PS C:\Windows\system32> SplitDbxContent.ps1 .\dbx.bin
   ```

   Esto produce dos archivos: `signature.p7` y `content.bin`. Use `content.bin` en el paso siguiente.

1. Cree un almacén de variables UEFI utilizando el script `uefivars.py`.

   ```
   ./uefivars.py -i none -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl  --dbx ~/content.bin 
   ```

1. Compruebe el blob binario y el almacén de variables UEFI.

   ```
   ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o json | less
   ```

1. Puede actualizar el blob cargándolo nuevamente en la misma herramienta.

   ```
   ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl  --dbx ~/content.bin
   ```

   Resultado previsto

   ```
   Replacing PK
   Replacing KEK
   Replacing db
   Replacing dbx
   ```

# Usar el cifrado con las AMI con respaldo de EBS
<a name="AMIEncryption"></a>

Las AMI que cuentan con el respaldo de instantáneas de Amazon EBS pueden beneficiarse del cifrado Amazon EBS. Las instantáneas de datos y volúmenes raíz se pueden cifrar y adjuntar a una AMI. Puede iniciar instancias y copiar imágenes con el soporte para el cifrado EBS completo incluido. Los parámetros de cifrado para estas operaciones se admiten en todas las regiones donde AWS KMS está disponible.

Las instancias de EC2 con volúmenes de EBS cifrados se inician desde las AMIs de la misma forma que otras instancias. Además, cuando lance una instancia desde una AMI respaldada por instantáneas EBS sin cifrar, puede cifrar algunos o todos los volúmenes durante la inicialización. 

Al igual que los volúmenes de EBS, las instantáneas de las AMI se pueden cifrar de forma predeterminada mediante la AWS KMS key o a una clave administrada por el cliente que especifique. En todos los casos, debe tener permiso para usar la Clave de KMS seleccionada.

Las AMI con instantáneas cifradas se pueden compartir en cuentas de AWS. Para obtener más información, consulte [Descripción del uso de las AMI compartidas en Amazon EC2](sharing-amis.md).

**Topics**
+ [Situaciones de inicialización de instancias](#AMI-encryption-launch)
+ [Situaciones de copia de imagen](#AMI-encryption-copy)

## Situaciones de inicialización de instancias
<a name="AMI-encryption-launch"></a>



Las instancias de Amazon EC2 se inician desde las AMI mediante la acción `RunInstances` con los parámetros proporcionados a través de la asignación de dispositivos de bloques, ya sea a través de la Consola de administración de AWS o directamente mediante la API o la CLI de Amazon EC2. Para obtener más información, consulte [Asignaciones de dispositivos de bloques para volúmenes en instancias de Amazon EC2](block-device-mapping-concepts.md). Para obtener ejemplos del control de la asignación de dispositivos de bloqueo desde la AWS CLI, consulte [inicialización, enumeración y terminación de instancias de EC2](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-instances.html).

De forma predeterminada, sin parámetros de cifrado explícitos, una acción `RunInstances` mantiene el estado de cifrado existente de las instantáneas de origen de una AMI mientras que restaura sus volúmenes de EBS. Si se habilita el cifrado de forma predeterminada, todos los volúmenes creados desde la AMI (de instantáneas cifradas o sin cifrar) se cifrarán. Si el cifrado de forma predeterminada no está habilitado, la instancia mantiene el estado de cifrado de la AMI.

También puede iniciar una instancia y solicitar de forma simultánea un nuevo estado de cifrado para los volúmenes restantes al suministrar parámetros de cifrado. Por lo tanto, se observan los siguientes comportamientos:

**iniciar sin parámetros de cifrado**
+ Una instantánea sin cifrar se restaura en un volumen sin cifrar, a menos que se habilite el cifrado de forma predeterminada, en cuyo caso se cifrarán todos los volúmenes recién creados.
+ Una instantánea cifrada que usted posee se restaura en un volumen que está cifrado en la misma Clave de KMS.
+ Una instantánea cifrada de la que no es propietario (por ejemplo, la AMI se comparte con usted) se restaura en un volumen que está cifrado por la clave de KMS predeterminada de su cuenta de AWS.

Se pueden anular los comportamientos predeterminados al suministrar los parámetros de cifrado. Los parámetros disponibles son `Encrypted` y `KmsKeyId`. Establecimiento de solo los resultados del parámetro `Encrypted` en lo siguiente:

**Comportamientos de inicialización de instancia con `Encrypted` establecido pero `KmsKeyId` sin especificar**.
+ Una instantánea no cifrada se restaura en un volumen de EBS cifrado por la clave de KMS predeterminada de su cuenta de AWS.
+ Una instantánea cifrada que usted posee se restaura en un volumen de EBS cifrado con la misma Clave de KMS. (En otras palabras, el parámetro `Encrypted` no tiene efecto).
+ Una instantánea cifrada de la que no es propietario (es decir, la AMI se comparte con usted) se restaura en un volumen que está cifrado por la clave de KMS predeterminada de su cuenta de AWS. (En otras palabras, el parámetro `Encrypted` no tiene efecto).

Establecer los parámetros `Encrypted` y `KmsKeyId` permite especificar una Clave de KMS no predeterminada para una operación de cifrado. Se producen los siguientes comportamientos:

**La instancia con `Encrypted` y `KmsKeyId` establecidos**
+ Una instantánea no cifrada se restaura en un volumen de EBS cifrado por la Clave de KMS especificada.
+ Una instantánea cifrada se restaura en un volumen de EBS cifrado no en la Clave de KMS original, sino en la Clave de KMS especificada.

El envío de un parámetro `KmsKeyId` sin establecer también el parámetro `Encrypted` da como resultado un error.

Las siguientes secciones ofrecen ejemplos de inicialización de instancias desde AMI con parámetros de cifrado no predeterminados. En cada una de estas situaciones, los parámetros suministrados para la acción `RunInstances` da como resultado un cambio en el estado de cifrado durante la restauración de un volumen desde una instantánea.

Para obtener información sobre el uso de la consola para iniciar una instancia desde una AMI, consulte [Lanzamiento de una instancia de Amazon EC2](LaunchingAndUsingInstances.md).

### Cifrar un volumen durante la inicialización
<a name="launch1"></a>

En este ejemplo, una AMI respaldada por una instantánea sin cifrar se utiliza para iniciar una instancia de EC2 con un volumen de EBS cifrado.

![\[Lance la instancia y cifre el volumen sobre la marcha.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-launch-convert.png)


El parámetro `Encrypted` por sí solo genera el volumen para esta instancia que se va a cifrar. Proporcionar un parámetro `KmsKeyId` es opcional. Si no se especifica ningún ID de clave de KMS, se utiliza la clave de KMS predeterminada de la cuenta de AWS para cifrar el volumen. Para cifrar el volumen en otra Clave de KMS que usted posee, proporcione el parámetro `KmsKeyId`. 

### Volver a cifrar un volumen durante la inicialización
<a name="launch2"></a>

En este ejemplo, una AMI con el respaldo de una instantánea cifrada se utiliza para iniciar una instancia de EC2 con un volumen EBS cifrado por una nueva Clave de KMS. 

![\[Lance la instancia y vuelva a cifrar el volumen sobre la marcha.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-launch-encrypted.png)


Si usted es propietario de la AMI y no proporciona parámetros de cifrado, la instancia resultante tiene un volumen cifrado con la misma clave de KMS que la instantánea. Si la AMI se comparte en lugar de ser de su propiedad y no proporciona parámetros de cifrado, el volumen se cifra mediante la Clave de KMS predeterminada. Con los parámetros de cifrado proporcionados como se muestra, el volumen se cifra mediante la Clave de KMS especificada.

### Cambiar el estado de cifrado de varios volúmenes durante la inicialización
<a name="launch3"></a>

En este ejemplo más completo, una AMI respaldada por varias instantáneas (cada una con su propio estado de cifrado) se utiliza para iniciar una instancia de EC2 con un volumen recientemente cifrado y un volumen que se ha vuelto a cifrar.

![\[Cifre y vuelva a cifrar varios volúmenes durante la inicialización.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-launch-mixed.png)


En esta situación, la acción `RunInstances` se suministra con parámetros de cifrado para cada una de las instantáneas del origen. Cuando se especifican todos los parámetros de cifrado posibles, la instancia resultante es la misma sin importar si posee la AMI.

## Situaciones de copia de imagen
<a name="AMI-encryption-copy"></a>

Las AMI de Amazon EC2 se copian con la acción `CopyImage`, mediante la Consola de administración de AWS o directamente con la API o la CLI de Amazon EC2.

De forma predeterminada, sin parámetros de cifrado explícitos, una acción `CopyImage` mantiene el estado de cifrado existente de las instantáneas de origen de una AMI. También puede copiar una AMI y solicitar de forma simultánea un nuevo estado de en las instantáneas de EBS asociadas al suministrar parámetros de cifrado. Por lo tanto, se observan los siguientes comportamientos:

**Copiar sin parámetros de cifrado**
+ Una instantánea sin cifrar se copia en otra instantánea sin cifrar, a menos que se habilite el cifrado de forma predeterminada, en cuyo caso se cifrarán todos las instantáneas recién creadas.
+ Una instantánea cifrada que usted posee se copia en una instantánea cifrada con la misma Clave de KMS.
+ Una instantánea cifrada de la que no es propietario (es decir, la AMI se comparte con usted) se copia en una instantánea que está cifrada por la clave de KMS predeterminada de su cuenta de AWS.

Se pueden anular todos estos comportamientos predeterminados al suministrar los parámetros de cifrado. Los parámetros disponibles son `Encrypted` y `KmsKeyId`. Establecimiento de solo los resultados del parámetro `Encrypted` en lo siguiente:

**Comportamientos de copy-image con `Encrypted` establecida pero `KmsKeyId` sin especificar**.
+ Una instantánea no cifrada se copia en una instantánea cifrada mediante la clave de KMS predeterminada de la cuenta de AWS.
+ Una instantánea cifrada se copia en una instantánea cifrada con la misma Clave de KMS. (En otras palabras, el parámetro `Encrypted` no tiene efecto).
+ Una instantánea cifrada de la que no es propietario (es decir, la AMI se comparte con usted) se copia en un volumen que está cifrado por la clave de KMS predeterminada de su cuenta de AWS. (En otras palabras, el parámetro `Encrypted` no tiene efecto).

Establecer los parámetros `Encrypted` y `KmsKeyId` permite especificar una Clave de KMS administrada por el cliente para una operación de cifrado. Se producen los siguientes comportamientos:

**Comportamientos de copi-image con `Encrypted` y `KmsKeyId` establecidas**
+ Una instantánea no cifrada se copia en una instantánea cifrada por la Clave de KMS especificada.
+ Una instantánea cifrada se copia en una instantánea cifrada no por la Clave de KMS original, sino por la Clave de KMS especificada.

El envío de un parámetro `KmsKeyId` sin establecer también el parámetro `Encrypted` da como resultado un error.

La siguiente sección ofrece un ejemplo de copia de una AMI con parámetros de cifrado no predeterminados, resultantes de un cambio en el estado de cifrado.

Para obtener instrucciones detalladas sobre el uso de la consola, consulte [Copia de una AMI de Amazon EC2](CopyingAMIs.md).

### Cifrar una imagen sin cifrar durante la copia
<a name="copy-unencrypted-to-encrypted"></a>

En este caso, una AMI respaldada por una instantánea raíz no cifrada se copia en una AMI con una instantánea raíz cifrada. La acción `CopyImage` se invoca con dos parámetros de cifrado, incluida una clave administrada por el cliente. Como resultado, el estado de cifrado de la instantánea raíz cambia, de modo que la AMI de destino se respalda por una instantánea raíz que contiene los mismos datos que la instantánea de origen, pero cifrada con la clave especificada. Usted incurre en costos de almacenamiento de las instantáneas en ambas AMI, así como en cargos correspondientes a las instancias que lance desde cualquiera de las AMI.

**nota**  
Habilitar el cifrado de forma predeterminada tiene el mismo efecto que configurar el parámetro `Encrypted` en `true` para todas las instantáneas de la AMI.

![\[Copia de la AMI y cifrado de la instantánea sobre la marcha\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-to-ami-convert.png)


La configuración del parámetro `Encrypted` cifra la única instantánea para esta instancia. Si no especifica el parámetro `KmsKeyId`, la clave predeterminada administrada por el cliente se utiliza para cifrar la copia de la instantánea.

**nota**  
También puede copiar una imagen con varias instantáneas y configurar el estado de cifrado de cada una de forma individual.

# Descripción del uso de las AMI compartidas en Amazon EC2
<a name="sharing-amis"></a>

*Una AMI compartida* es una AMI que un desarrollador ha creado y puesto a disposición de otros desarrolladores. Una de las formas más sencillas de iniciarse con Amazon EC2 es utilizar una AMI compartida que tenga los componentes que necesita y, a continuación, añadir contenido personalizado. También puede crear sus propias AMI y compartirlas con otros. 

El uso de una AMI compartida es por su cuenta y riesgo. Amazon no responde de la integridad o la seguridad de las AMI compartidas por otros usuarios de Amazon EC2. Por lo tanto, debe tratar las AMI compartidas como trataría cualquier código ajeno que desee implementar en su propio centro de datos y ejercer la diligencia debida apropiada. Le recomendamos que las AMI provengan de fuentes de confianza, como un proveedor verificado.

## Proveedor verificado
<a name="verified-ami-provider"></a>

En la consola de Amazon EC2, las AMI públicas que son propiedad de Amazon o de un socio verificado están marcadas con la inscripción **Proveedor verificado**.

También puede utilizar el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) de la AWS CLI para identificar las AMI públicas que provienen de un proveedor verificado. Las imágenes públicas propiedad de Amazon o de un socio verificado tienen un propietario con alias, que puede ser `amazon`, `aws-backup-vault` o `aws-marketplace`. En el resultado de la CLI, estos valores aparecen para `ImageOwnerAlias`. Otros usuarios no pueden asociar las AMI. Esto le permite encontrar las AMI de Amazon o de los socios verificados fácilmente.

Para convertirse en un proveedor verificado, debe registrarse como vendedor en AWS Marketplace. Una vez registrado, puede incluir su AMI en AWS Marketplace. Para obtener más información, consulte [Introducción a los vendedores](https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html) y [Productos basados en AMI](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html) en la *Guía del vendedor de AWS Marketplace*.

**Topics**
+ [Proveedor verificado](#verified-ami-provider)
+ [Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2](usingsharedamis-finding.md)
+ [Preparación para utilizar AMI compartidas para Linux](usingsharedamis-confirm.md)
+ [Controle el descubrimiento y el uso de las AMI en Amazon EC2 con las AMI permitidas](ec2-allowed-amis.md)
+ [Publicación de la AMI para utilizarla en Amazon EC2](sharingamis-intro.md)
+ [Descripción del bloqueo del acceso público de las AMI](block-public-access-to-amis.md)
+ [Cómo compartir una AMI con organizaciones y unidades organizativas](share-amis-with-organizations-and-OUs.md)
+ [Compartir una AMI con cuentas de AWS específicas](sharingamis-explicit.md)
+ [Cancelar que se comparta una AMI con su Cuenta de AWS](cancel-sharing-an-AMI.md)
+ [Recomendaciones para crear AMI compartidas de Linux](building-shared-amis.md)

**Si quiere obtener información sobre otros temas**
+ Para obtener información acerca de la creación de una AMI, consulte [Creación de una AMI basada en Amazon S3](creating-an-ami-instance-store.md) o [Creación de una AMI basada en Amazon EBS](creating-an-ami-ebs.md).
+ Para obtener más información sobre cómo crear, entregar y mantener las aplicaciones en AWS Marketplace, consulte la [documentación de AWS Marketplace](https://docs.aws.amazon.com/marketplace/).

# Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2
<a name="usingsharedamis-finding"></a>

Puede utilizar la consola de Amazon EC2 o la línea de comandos para encontrar AMI compartidas públicas o privadas para utilizarlas con las instancias de Amazon EC2.

Las AMI son un recurso regional. Por tanto, si busca una AMI compartida (pública o privada), debe buscarla en la misma región en la que se está compartiendo. Para hacer que una AMI esté disponible en una región distinta, copie la AMI en dicha región y, a continuación, compártala. Para obtener más información, consulte [Copia de una AMI de Amazon EC2](CopyingAMIs.md).

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

La consola ofrece un campo que permite filtrar las AMI. También puede acotar sus búsquedas mediante los filtros que se proporcionan en el campo **Búsqueda**.

**Para buscar una AMI compartida**

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. En el primer filtro, elija una de las siguientes opciones:
   + **Imágenes privadas**: muestra todas las AMI que se comparten con usted.
   + **Imágenes públicas**: muestra todas las AMI públicas.

1. (Opcional) Para mostrar solo las imágenes públicas de Amazon, elija el campo **Buscar** y luego, en las opciones del menú, elija **Alias ​​del propietario**, luego **=** y luego **amazon**.

1. (Opcional) Añada filtros para acotar su búsqueda a las AMI que cumplan sus requisitos.

**Para encontrar una AMI pública compartida de un [proveedor verificado](sharing-amis.md#verified-ami-provider)**

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, elija **Catálogo de AMI**.

1. Elija **AMI de comunidad**.

1. En el panel **Refinar resultados**, seleccione **Proveedor verificado**. La etiqueta **Proveedor verificado** indica las AMI que son de Amazon o de un socio verificado.

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

Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para enumerar las AMI. Puede limitar la lista según los tipos de AMI que le interesen, tal y como se muestra en los siguientes ejemplos:

**Para enumerar todas las AMI públicas**  
El siguiente comando muestra todas las AMI públicas, incluidas aquellas de su propiedad.

```
aws ec2 describe-images --executable-users all
```

**Para enumerar las AMI con permisos de lanzamiento explícitos**  
El siguiente comando muestra las AMI para las que tiene permisos de inicialización explícitos. Esta lista no incluye las AMI de su propiedad.

```
aws ec2 describe-images --executable-users self
```

**Para enumerar las AMI propiedad de proveedores verificados**  
El siguiente comando enumera las AMI propiedad de [proveedores verificados](sharing-amis.md#verified-ami-provider). Las AMI públicas propiedad de proveedores verificados (Amazon o socios verificados) tienen un propietario con alias, el cual aparece como `amazon`, `aws-backup-vault` o `aws-marketplace` en el campo de cuenta. Esto le permite encontrar AMI de proveedores verificados fácilmente. Otros usuarios no pueden asociar las AMI.

```
aws ec2 describe-images \
    --owners amazon aws-marketplace \
    --query 'Images[*].[ImageId]' \
    --output text
```

**Para enumerar las AMI propiedad de una cuenta**  
El siguiente comando muestra las AMI que son propiedad de la Cuenta de AWS especificada.

```
aws ec2 describe-images --owners 123456789012
```

**Para acotar las AMI mediante un filtro**  
Para reducir el número de AMI que se muestran, utilice un filtro para mostrar solo los tipos de AMI que le interesen. Por ejemplo, utilice el siguiente filtro para mostrar solo las AMI respaldadas por EBS.

```
--filters "Name=root-device-type,Values=ebs"
```

------
#### [ PowerShell ]

Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) (Herramientas para Windows PowerShell) para mostrar una lista de las AMI. Puede limitar la lista según los tipos de AMI que le interesen, tal y como se muestra en los siguientes ejemplos:

**Para enumerar todas las AMI públicas**  
El siguiente comando muestra todas las AMI públicas, incluidas aquellas de su propiedad.

```
Get-EC2Image -ExecutableUser all
```

**Para enumerar las AMI con permisos de lanzamiento explícitos**  
El siguiente comando muestra las AMI para las que tiene permisos de inicialización explícitos. Esta lista no incluye las AMI de su propiedad.

```
Get-EC2Image -ExecutableUser self
```

**Para enumerar las AMI propiedad de proveedores verificados**  
El siguiente comando enumera las AMI propiedad de [proveedores verificados](sharing-amis.md#verified-ami-provider). Las AMI públicas propiedad de proveedores verificados (Amazon o socios verificados) tienen un propietario con alias, el cual aparece como `amazon`, `aws-backup-vault` o `aws-marketplace` en el campo de cuenta. Esto le permite encontrar AMI de proveedores verificados fácilmente. Otros usuarios no pueden asociar las AMI.

```
Get-EC2Image -Owner amazon aws-marketplace
```

**Para enumerar las AMI propiedad de una cuenta**  
El siguiente comando muestra las AMI que son propiedad de la Cuenta de AWS especificada.

```
Get-EC2Image -Owner 123456789012
```

**Para acotar las AMI mediante un filtro**  
Para reducir el número de AMI que se muestran, utilice un filtro para mostrar solo los tipos de AMI que le interesen. Por ejemplo, utilice el siguiente filtro para mostrar solo las AMI respaldadas por EBS.

```
-Filter @{Name="root-device-type"; Values="ebs"}
```

------

# Preparación para utilizar AMI compartidas para Linux
<a name="usingsharedamis-confirm"></a>

Antes de usar una AMI compartida para Linux, siga estos pasos para confirmar que no hay credenciales preinstaladas que pudieran permitir un acceso no deseado a la instancia por parte de terceros ni registros remotos preconfigurados que pudieran transmitir información confidencial a terceros. Consulte la documentación de la distribución de Linux utilizada por la AMI para obtener información sobre cómo mejorar la seguridad del sistema.

Para garantizar que no pierda acceso a la instancia de manera accidental, le recomendamos que inicie dos sesiones de SSH y que mantenga la segunda de ellas abierta hasta que haya eliminado las credenciales que no reconozca y comprobado que sigue pudiendo iniciar sesión en la instancia a través de SSH.

1. Identificación y deshabilitación de claves SSH públicas no autorizadas. La única clave del archivo debería ser la que usó para iniciar la AMI. El siguiente comando localiza los archivos `authorized_keys`:

   ```
   [ec2-user ~]$ sudo find / -name "authorized_keys" -print -exec cat {} \;
   ```

1. Deshabilitación de autenticación mediante contraseña para el usuario raíz. Abra el archivo `sshd_config` y edite la línea `PermitRootLogin` del modo siguiente:

   ```
   PermitRootLogin without-password
   ```

   También puede deshabilitar la opción iniciar sesión en la instancia como el usuario raíz:

   ```
   PermitRootLogin No
   ```

   Reinicie el servicio sshd.

1. Verifique si existe algún otro usuario que pueda iniciar sesión en la instancia. Los usuarios con privilegios de superusuario son particularmente peligrosos. Elimine o bloquee la contraseña de cualquier cuenta desconocida.

1. Verifique si hay puertos abiertos que no esté utilizando y servicios de red en ejecución que escuchen conexiones entrantes.

1. Para evitar registros remotos preconfigurados, debe eliminar el archivo de configuración existente y reiniciar el servicio `rsyslog`. Por ejemplo:

   ```
   [ec2-user ~]$ sudo rm /etc/rsyslog.conf
   [ec2-user ~]$ sudo service rsyslog restart
   ```

1. Verifique que todos los trabajos cron son legítimos.

Si descubre una AMI pública que considere que podría suponer un riesgo para la seguridad, contacte con el equipo de seguridad de AWS. Para obtener más información, consulte el [ Centro de seguridad de AWS](https://aws.amazon.com/security/).

# Controle el descubrimiento y el uso de las AMI en Amazon EC2 con las AMI permitidas
<a name="ec2-allowed-amis"></a>

Para controlar el descubrimiento y el uso de las Imágenes de máquina de Amazon (AMI) por parte de los usuarios de la Cuenta de AWS, puede utilizar la característica *AMI permitidas*. Usted especifica los criterios que las AMI deben cumplir para estar visibles y disponibles en la cuenta. Cuando los criterios están habilitados, los usuarios que lancen instancias solo verán las AMI que cumplan con los criterios especificados, y únicamente tendrán acceso a estas. Por ejemplo, puede especificar una lista de proveedores de AMI de confianza como criterio y solo las AMI de estos proveedores estarán visibles y disponibles para ser utilizadas.

Antes de habilitar la configuración de AMI permitidas, puede habilitar el *modo de auditoría* para obtener una vista previa de las AMI que estarán o no visibles y disponibles para ser utilizadas. Esto permite ajustar los criterios según sea necesario para garantizar que solo las AMI previstas estén visibles y disponibles para los usuarios de la cuenta. Además, utilice el comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) para buscar las instancias que se hayan lanzado con AMI que no cumplan los criterios especificados. Esta información puede fundamentar su decisión para determinar si actualizar las configuraciones de lanzamiento para usar AMI compatibles (por ejemplo, especificar una AMI diferente en una plantilla de lanzamiento) o ajustar los criterios para permitir estas AMI.

Especifica la configuración de AMI permitidas a nivel de cuenta, ya sea directamente en la cuenta o mediante una política declarativa. Estos ajustes se deben configurar en cada Región de AWS en la que desee controlar el uso de AMI. El uso de una política declarativa permite aplicar la configuración en varias regiones simultáneamente, así como en varias cuentas simultáneamente. Cuando se utiliza una política declarativa, no se puede modificar la configuración directamente en una cuenta. En este tema se describe cómo configurar el ajuste directamente dentro de una cuenta. Para obtener información sobre el uso de políticas declarativas, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations*.

**nota**  
La característica AMI permitidas solo controla la detección y el uso de las AMI públicas o las AMI compartidas con la cuenta. No restringe las AMI propiedad de la cuenta. Independientemente de los criterios que establezca, los usuarios de la cuenta siempre pueden detectar y utilizar las AMI creadas por la cuenta.

**Principales ventajas de la característica AMI permitidas**
+ **Cumplimiento y seguridad**: los usuarios solo pueden descubrir y utilizar las AMI que cumplan los criterios especificados, lo que reduce el riesgo del uso no conforme de las AMI.
+ **Administración eficiente**: al reducir la cantidad de AMI permitidas, resulta más fácil y eficiente administrar las restantes.
+ **Implementación centralizada a nivel de cuenta**: configure los ajustes de AMI permitidas a nivel de cuenta, ya sea directamente dentro de la cuenta o mediante una política declarativa. Esto proporciona una forma centralizada y eficiente de controlar el uso de AMI en toda la cuenta.

**Topics**
+ [Cómo funciona la característica AMI permitidas](#how-allowed-amis-works)
+ [Prácticas recomendadas para implementar la característica AMI permitidas](#best-practice-for-implementing-allowed-amis)
+ [Permisos de IAM necesarios](#iam-permissions-for-allowed-amis)
+ [Administración de la configuración de las AMI permitidas](manage-settings-allowed-amis.md)

## Cómo funciona la característica AMI permitidas
<a name="how-allowed-amis-works"></a>

Para controlar qué AMI se pueden descubrir y usar en la cuenta, se define un conjunto de criterios con los cuales evaluar las AMI. Los criterios se componen de uno o más `ImageCriterion`, como se muestra en el siguiente diagrama. A continuación del diagrama se presenta una explicación.

![\[Jerarquía de configuración de ImageCriteria de AMI permitidas.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami_allowed-amis-imagecriteria.png)


La configuración tiene tres niveles:
+ **1** – valores de parámetros
  + Parámetros con varios valores:
    + `ImageProviders`
    + `ImageNames`
    + `MarketplaceProductCodes`

      Una AMI puede coincidir con *cualquiera* de los valores dentro de un parámetro para que se permita.

      Ejemplo: `ImageProviders` = `amazon` **O** cuenta `111122223333` **O** cuenta `444455556666` (La lógica de evaluación de los valores de los parámetros no se muestra en el diagrama).
  + Parámetros de un solo valor:
    + `CreationDateCondition`
    + `DeprecationTimeCondition`
+ **2**: `ImageCriterion`
  + Agrupa varios parámetros con la lógica **AND**.
  + Una AMI debe coincidir con *todos* los parámetros dentro de una `ImageCriterion` para que se permita.
  + Ejemplo: `ImageProviders` = `amazon` **AND** `CreationDateCondition` = 300 días o menos
+ **3**: `ImageCriteria`
  + Agrupa varios `ImageCriterion` con lógica **OR**.
  + Una AMI puede coincidir con *cualquier* `ImageCriterion` para que se permita.
  + Constituye la configuración completa con la cual se evalúan las AMI. 

**Topics**
+ [Parámetros de AMI permitidas](#allowed-amis-criteria)
+ [Configuración de AMI permitidas](#allowed-amis-json-configuration)
+ [Cómo se evalúan los criterios](#how-allowed-amis-criteria-are-evaluated)
+ [Límites](#allowed-amis-json-configuration-limits)
+ [Operaciones de AMI permitidas](#allowed-amis-operations)

### Parámetros de AMI permitidas
<a name="allowed-amis-criteria"></a>

Los siguientes parámetros se pueden configurar para crear `ImageCriterion`:

`ImageProviders`  
Los proveedores de AMI cuyas AMI están permitidas.  
Los valores válidos son los alias definidos por AWS, y los ID de Cuenta de AWS, de la siguiente manera:  
+ `amazon`: un alias que identifica las AMI creadas por Amazon o proveedores verificados
+ `aws-marketplace`: un alias que identifica las AMI creadas por proveedores verificados en el AWS Marketplace
+ `aws-backup-vault`: un alias que identifica las AMI de copia de seguridad que residen en cuentas de almacenes aislados lógicamente de AWS Backup. Si utiliza la característica de almacén aislado lógicamente de AWS Backup, asegúrese de incluir este alias como proveedor de AMI.
+ Identificadores de Cuenta de AWS: uno o más identificadores de Cuenta de AWS de 12 dígitos
+ `none`: indica que solo se pueden descubrir y utilizar las AMI creadas por la cuenta. Las AMI públicas o compartidas no se pueden detectar ni utilizar. Cuando se especifica, no se puede especificar ningún otro criterio.

`ImageNames`  
Los nombres de las AMI permitidas, con coincidencias exactas o caracteres comodín (`?` o `*`).

`MarketplaceProductCodes`  
Los códigos de producto de AWS Marketplace de las AMI permitidas.

`CreationDateCondition`  
La antigüedad máxima de las AMI permitidas.

`DeprecationTimeCondition`  
El período máximo desde la obsolescencia de las AMI permitidas.

Para conocer los valores válidos y las restricciones de cada criterio, consulte [ImageCriterionRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImageCriterionRequest.html) en la *Referencia de la API de Amazon EC2*.

### Configuración de AMI permitidas
<a name="allowed-amis-json-configuration"></a>

La configuración principal de las AMI permitidas es la configuración de `ImageCriteria` que define los criterios para las AMI permitidas. La siguiente estructura JSON muestra los parámetros que se pueden especificar:

```
{
    "State": "enabled" | "disabled" | "audit-mode",  
    "ImageCriteria" : [
        {
            "ImageProviders": ["string",...],
            "MarketplaceProductCodes": ["string",...],           
            "ImageNames":["string",...],
            "CreationDateCondition" : {
                "MaximumDaysSinceCreated": integer
            },
            "DeprecationTimeCondition" : {
                "MaximumDaysSinceDeprecated": integer
            }
         },
         ...
}
```

#### Ejemplo de ImageCriteria
<a name="allowed-amis-json-configuration-example"></a>

En el siguiente ejemplo de `ImageCriteria` se configuran cuatro `ImageCriterion`. Se permite una AMI si coincide con alguno de estos `ImageCriterion`. Para obtener información sobre cómo se evalúan los criterios, consulte [Cómo se evalúan los criterios](#how-allowed-amis-criteria-are-evaluated).

```
{
    "ImageCriteria": [
        // ImageCriterion 1: Allow AWS Marketplace AMIs with product code "abcdefg1234567890"
        {
            "MarketplaceProductCodes": [
                "abcdefg1234567890"
            ]
        },
        // ImageCriterion 2: Allow AMIs from providers whose accounts are
        // "123456789012" OR "123456789013" AND AMI age is less than 300 days
        {
            "ImageProviders": [
                "123456789012",
                "123456789013"
            ],
            "CreationDateCondition": {
                "MaximumDaysSinceCreated": 300
            }
        },
        // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" 
        // AND with names following the pattern "golden-ami-*"
        {
            "ImageProviders": [
                "123456789014"
            ],
            "ImageNames": [
                "golden-ami-*"
            ]
        },
        // ImageCriterion 4: Allow AMIs from Amazon or verified providers 
        // AND which aren't deprecated
        {
            "ImageProviders": [
                "amazon"
            ],
            "DeprecationTimeCondition": {
                "MaximumDaysSinceDeprecated": 0
            }
        }
    ]
}
```

### Cómo se evalúan los criterios
<a name="how-allowed-amis-criteria-are-evaluated"></a>

La siguiente tabla explica las reglas de evaluación que determinan si una AMI está permitida, y muestra cómo se aplica el operador `AND` o `OR` en cada nivel:


| Nivel de evaluación | Operador | Requisito para que se permita una AMI | 
| --- | --- | --- | 
| Valores de parámetros para ImageProviders, ImageNames y MarketplaceProductCodes | OR | La AMI debe coincidir con al menos un valor en cada lista de parámetros | 
| ImageCriterion | AND | La AMI debe coincidir con todos los parámetros en cada ImageCriterion | 
| ImageCriteria | OR | La AMI debe coincidir con cualquiera de los ImageCriterion | 

Utilicemos las reglas de evaluación anteriores para ver cómo aplicarlas a [Ejemplo de ImageCriteria](#allowed-amis-json-configuration-example):
+ `ImageCriterion` 1: permite las AMI que tienen el código de producto `abcdefg1234567890` de AWS Marketplace

  `OR`
+ `ImageCriterion` 2: permite las AMI que cumplen estos dos criterios:
  + Propiedad de cualquiera de las cuentas `123456789012` `OR` `123456789013`
    + `AND`
  + Creada en los últimos 300 días

  `OR`
+ `ImageCriterion` 3: permite las AMI que cumplen estos dos criterios:
  + Propiedad de la cuenta `123456789014`
    + `AND`
  + Nombrada con el patrón `golden-ami-*`

  `OR`
+ `ImageCriterion` 4: permite las AMI que cumplen estos dos criterios:
  + Publicada por Amazon o proveedores verificados (especificados por el alias `amazon`)
    + `AND`
  + No está en desuso (el número máximo de días transcurridos desde la obsolescencia es `0`)

### Límites
<a name="allowed-amis-json-configuration-limits"></a>

El `ImageCriteria` puede incluir hasta:
+ 10 `ImageCriterion`

Cada `ImageCriterion` puede incluir hasta:
+ 200 valores para `ImageProviders`
+ 50 valores para `ImageNames` 
+ 50 valores para `MarketplaceProductCodes` 

**Ejemplo de límites**

Si utilizamos el [Ejemplo de ImageCriteria](#allowed-amis-json-configuration-example) anterior:
+ Hay 4 `ImageCriterion`. Se pueden agregar hasta 6 más a la solicitud para alcanzar el límite de 10.
+ En el primer `ImageCriterion`, hay 1 valor para `MarketplaceProductCodes`. Se pueden agregar hasta 49 más a este `ImageCriterion` para alcanzar el límite de 50.
+ En el segundo `ImageCriterion`, hay 2 valores para `ImageProviders`. Se pueden agregar hasta 198 más a este `ImageCriterion` para alcanzar el límite de 200.
+ En el tercer `ImageCriterion`, hay 1 valor para `ImageNames`. Se pueden agregar hasta 49 más a este `ImageCriterion` para alcanzar el límite de 50.

### Operaciones de AMI permitidas
<a name="allowed-amis-operations"></a>

La característica de AMI permitidas tiene tres estados operativos para administrar los criterios de imágenes: **habilitada**, **desactivada** y **modo auditoría**. Con estos es posible habilitar o desactivar los criterios de imágenes, así como revisarlos según sea necesario.

**Habilitado**

Cuando AMI permitidas se encuentra habilitada: 
+ Se aplican los `ImageCriteria`.
+ Solo se pueden detectar AMI permitidas en la consola de EC2 y por las API que utilizan imágenes (por ejemplo, que describen, copian, almacenan o realizan otras acciones que utilizan imágenes).
+ Las instancias solo se pueden lanzar con las AMI permitidas.

**Deshabilitado**

Cuando AMI permitidas se encuentra desactivada: 
+ No se aplican los `ImageCriteria`.
+ No se imponen restricciones a la capacidad de detección o uso de las AMI. 

**Modo de auditoría**

 En el modo de auditoría:
+ Los `ImageCriteria` se aplican, pero no se imponen restricciones a la capacidad de detección o uso de las AMI.
+ En la consola de EC2, para cada AMI, el campo **Imagen permitida** muestra **Sí** o **No** para indicar si la AMI se podrá detectar y estará disponible para los usuarios de la cuenta cuando la característica AMI permitidas esté habilitada.
+ En la línea de comandos, la respuesta a la operación `describe-image` incluye `"ImageAllowed": true` o `"ImageAllowed": false` para indicar si la AMI podrá ser detectada y estará disponible para los usuarios de la cuenta cuando si la característica AMI permitidas está habilitada.
+ En la consola de EC2, el catálogo de AMI muestra **No permitida** junto a las AMI que no podrán detectar los usuarios de la cuenta y no estarán disponibles para ellos cuando la característica AMI permitidas esté habilitada.

## Prácticas recomendadas para implementar la característica AMI permitidas
<a name="best-practice-for-implementing-allowed-amis"></a>

Al implementar AMI permitidas, tenga en cuenta estas prácticas recomendadas para garantizar una transición fluida y minimizar las posibles interrupciones en el entorno de AWS.

1. **Cómo habilitar el modo de auditoría**

   Comience por habilitar la característica AMI permitidas en el modo de auditoría. Este estado permite ver qué AMI se verían afectadas por los criterios sin restringir realmente el acceso, lo que proporciona un período de evaluación sin riesgos.

1. **Establezca los criterios de AMI permitidas**

   Establezca cuidadosamente qué proveedores de AMI se alinean con las políticas de seguridad, los requisitos de cumplimiento y las necesidades operativas de la organización.
**nota**  
Cuando utilice servicios administrados de AWS como Amazon ECS, Amazon EKS o Lambda Managed Instances de AWS, le recomendamos que especifique el alias `amazon` para permitir las AMI creadas por AWS. Estos servicios dependen de las AMI publicadas por Amazon para ejecutar instancias.   
Tenga cuidado cuando establezca restricciones de `CreationDateCondition` para cualquier AMI. Establecer condiciones de fecha demasiado restrictivas (por ejemplo, las AMI deben tener menos de 5 días de antigüedad) puede provocar errores en la ejecución de las instancias si las AMI, ya sean de AWS o de otros proveedores, no se actualizan en el plazo especificado.  
Recomendamos combinar `ImageNames` con `ImageProviders` para mejorar el control y la especificidad. Es posible que el uso de `ImageNames` por sí solo no identifique exclusivamente una AMI.

1. **Compruebe el impacto en los procesos empresariales esperados**

   Puede usar la consola o la CLI para identificar cualquier instancia que se haya lanzado con AMI que no cumplan los criterios especificados. Esta información puede fundamentar su decisión para determinar si actualizar las configuraciones de lanzamiento para usar AMI compatibles (por ejemplo, especificar una AMI diferente en una plantilla de lanzamiento) o ajustar los criterios para permitir estas AMI.

   Consola: utilice la regla de AWS Config [ec2-instance-launched-with-allowed-ami](https://docs.aws.amazon.com/config/latest/developerguide/ec2-instance-launched-with-allowed-ami.html) para comprobar si las instancias en ejecución o detenidas se lanzaron con AMI que cumplen los criterios de las AMI permitidas. La regla es **NON\$1COMPLIANT** si una AMI no cumple los criterios de las AMI permitidas y **COMPLIANT** si los cumple. La regla solo funciona cuando la configuración de las AMI permitidas está establecida en **habilitada** o en **modo de auditoría**.

   CLI: ejecute el comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) y filtre la respuesta para identificar cualquier instancia que se haya lanzado con AMI que no cumplan los criterios especificados.

   Para obtener instrucciones sobre la consola y la CLI, consulte [Búsqueda de instancias lanzadas desde AMI no permitidas](manage-settings-allowed-amis.md#identify-instances-with-allowed-AMIs).

1. **Cómo habilitar AMI permitidas**

   Una vez que haya confirmado que los criterios no afectarán negativamente a los procesos empresariales esperados, habilite AMI permitidas.

1. **Supervise los lanzamientos de instancias**

   Continue con la supervisión de los lanzamientos de instancias desde AMI en las aplicaciones y los servicios administrados por AWS que utilice, como Amazon EMR, Amazon ECR, Amazon EKS y AWS Elastic Beanstalk. Compruebe si hay algún problema inesperado y realice los ajustes necesarios en los criterios de la característica AMI permitidas.

1. **Prueba piloto de AMI nuevas**

   Para probar las AMI de terceros que no cumplan con la configuración actual de las AMI permitidas, AWS sugiere los siguientes métodos:
   + Utilice una Cuenta de AWS distinta: cree una cuenta que no tenga acceso a los recursos fundamentales para la empresa. Asegúrese de que la configuración de las AMI permitidas no esté habilitada en esta cuenta o de que las AMI que desee probar estén permitidas de forma explícita para poder probarlas. 
   + Realice la prueba en otra Región de AWS: utilice una región en la que estén disponibles las AMI de terceros, pero en la que aún no haya habilitado la configuración de las AMI permitidas. 

   Estos métodos ayudan a garantizar la seguridad de los recursos fundamentales para la empresa mientras se prueban las nuevas AMI.

## Permisos de IAM necesarios
<a name="iam-permissions-for-allowed-amis"></a>

Para utilizar la característica AMI permitidas, necesitará los siguientes permisos de IAM:
+ `GetAllowedImagesSettings`
+ `EnableAllowedImagesSettings`
+ `DisableAllowedImagesSettings`
+ `ReplaceImageCriteriaInAllowedImagesSettings`

# Administración de la configuración de las AMI permitidas
<a name="manage-settings-allowed-amis"></a>

Puede administrar la configuración de las AMI permitidas. Estos ajustes son por región y por cuenta.

**Topics**
+ [Habilite AMI permitidas](#enable-allowed-amis-criteria)
+ [Definición de los criterios de AMI permitidas](#update-allowed-amis-criteria)
+ [Cómo desactivar AMI permitidas](#disable-allowed-amis-criteria)
+ [Obtención de los criterios de AMI permitidas](#identify-allowed-amis-state-and-criteria)
+ [Búsqueda de las AMI permitidas](#identify-amis-that-meet-allowed-amis-criteria)
+ [Búsqueda de instancias lanzadas desde AMI no permitidas](#identify-instances-with-allowed-AMIs)

## Habilite AMI permitidas
<a name="enable-allowed-amis-criteria"></a>

Puede habilitar las AMI permitidas y especificar los criterios de AMI permitidas. Le recomendamos que comience en el modo de auditoría, que muestra qué AMI se verían afectadas por los criterios sin restringir realmente el acceso.

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

**Para habilitar AMI permitidas**

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, elija **Panel**.

1. En la tarjeta **Atributos de la cuenta**, en **Configuración**, elija **AMI permitidas**.

1. En la pestaña **AMI permitidas**, elija **Administrar**.

1. En **Configuración de AMI permitidas**, seleccione **Modo de auditoría** o **Habilitado**. Le recomendamos que comience en el modo de auditoría, pruebe los criterios y, luego, vuelva a este paso para habilitar las AMI permitidas.

1. (Opcional) En **Criterios de AMI**, especifique los criterios en formato JSON.

1. Elija **Actualizar**.

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

**Para habilitar AMI permitidas**  
Utilice el comando [enable-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-allowed-images-settings.html).

```
aws ec2 enable-allowed-images-settings --allowed-images-settings-state enabled
```

Para habilitar el modo de auditoría en su lugar, especifique `audit-mode` en lugar de `enabled`.

```
aws ec2 enable-allowed-images-settings --allowed-images-settings-state audit-mode
```

------
#### [ PowerShell ]

**Para habilitar AMI permitidas**  
Utilice el cmdlet [Enable-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2AllowedImagesSetting.html).

```
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState enabled
```

Para habilitar el modo de auditoría en su lugar, especifique `audit-mode` en lugar de `enabled`.

```
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState audit-mode
```

------

## Definición de los criterios de AMI permitidas
<a name="update-allowed-amis-criteria"></a>

Después de habilitar las AMI permitidas, puede establecer o reemplazar los criterios de las AMI permitidas.

Para conocer la configuración correcta y los valores válidos, consulte [Configuración de AMI permitidas](ec2-allowed-amis.md#allowed-amis-json-configuration) y .[Parámetros de AMI permitidas](ec2-allowed-amis.md#allowed-amis-criteria)

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

**Definición de los criterios de las AMI permitidas**

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, elija **Panel**.

1. En la tarjeta **Atributos de la cuenta**, en **Configuración**, elija **AMI permitidas**.

1. En la pestaña **AMI permitidas**, elija **Administrar**.

1. En **Criterios de AMI**, especifique los criterios en formato JSON.

1. Elija **Actualizar**.

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

**Definición de los criterios de las AMI permitidas**  
Utilice el comando [replace-image-criteria-in-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-image-criteria-in-allowed-images-settings.html) y especifique el archivo JSON que contiene los criterios de las AMI permitidas.

```
aws ec2 replace-image-criteria-in-allowed-images-settings --cli-input-json file://file_name.json
```

------
#### [ PowerShell ]

**Definición de los criterios de las AMI permitidas**  
Utilice el cmdlet [Set-EC2ImageCriteriaInAllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2ImageCriteriaInAllowedImagesSetting.html) y especifique el archivo JSON que contiene los criterios de las AMI permitidas.

```
$imageCriteria = Get-Content -Path .\file_name.json | ConvertFrom-Json
Set-EC2ImageCriteriaInAllowedImagesSetting -ImageCriterion $imageCriteria
```

------

## Cómo desactivar AMI permitidas
<a name="disable-allowed-amis-criteria"></a>

Puede deshabilitar las AMI permitidas de la siguiente manera.

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

**Para desactivar AMI permitidas**

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, elija **Panel**.

1. En la tarjeta **Atributos de la cuenta**, en **Configuración**, elija **AMI permitidas**.

1. En la pestaña **AMI permitidas**, elija **Administrar**.

1. En la **Configuración de AMI permitidas**, seleccione **Desactivada**.

1. Elija **Actualizar**.

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

**Para desactivar AMI permitidas**  
Utilice el comando [disable-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-allowed-images-settings.html).

```
aws ec2 disable-allowed-images-settings
```

------
#### [ PowerShell ]

**Para desactivar AMI permitidas**  
Utilice el cmdlet [Disable-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2AllowedImagesSetting.html).

```
Disable-EC2AllowedImagesSetting
```

------

## Obtención de los criterios de AMI permitidas
<a name="identify-allowed-amis-state-and-criteria"></a>

Puede obtener el estado actual de la configuración de las AMI permitidas y los criterios de las AMI permitidas.

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

**Obtención del estado y los criterios de las AMI permitidas**

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, elija **Panel**.

1. En la tarjeta **Atributos de la cuenta**, en **Configuración**, elija **AMI permitidas**.

1. En la pestaña **AMI permitidas**, la opción **Configuración de AMI permitidas** está establecida en **Habilitado**, **Deshabilitado** o **Modo de auditoría**.

1. Si el estado de las AMI permitidas es **Habilitado** o **Modo de auditoría**, **Criterios de AMI** muestra los criterios de la AMI en formato JSON.

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

**Obtención del estado y los criterios de las AMI permitidas**  
Utilice el comando [get-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-allowed-images-settings.html).

```
aws ec2 get-allowed-images-settings
```

En el siguiente resultado de ejemplo, el estado es `audit-mode` y los criterios de imágenes están establecidos en la cuenta.

```
{
    "State": "audit-mode",
    "ImageCriteria": [
        {
            "MarketplaceProductCodes": [
                "abcdefg1234567890"
            ]
        },
        {
            "ImageProviders": [
                "123456789012",
                "123456789013"
            ],
            "CreationDateCondition": {
                "MaximumDaysSinceCreated": 300
            }
        },
        {
            "ImageProviders": [
                "123456789014"
            ],
            "ImageNames": [
                "golden-ami-*"
            ]
        },
        {
            "ImageProviders": [
                "amazon"
            ],
            "DeprecationTimeCondition": {
                "MaximumDaysSinceDeprecated": 0
            }
        }
    ],
    "ManagedBy": "account"
}
```

------
#### [ PowerShell ]

**Obtención del estado y los criterios de las AMI permitidas**  
Utilice el cmdlet [Get-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2AllowedImagesSetting.html).

```
Get-EC2AllowedImagesSetting | Select-Object `
    State, `
    ManagedBy, `
    @{Name='ImageProviders'; Expression={($_.ImageCriteria.ImageProviders)}}, `
    @{Name='MarketplaceProductCodes'; Expression={($_.ImageCriteria.MarketplaceProductCodes)}}, `
    @{Name='ImageNames'; Expression={($_.ImageCriteria.ImageNames)}}, `
    @{Name='MaximumDaysSinceCreated'; Expression={($_.ImageCriteria.CreationDateCondition.MaximumDaysSinceCreated)}}, `
    @{Name='MaximumDaysSinceDeprecated'; Expression={($_.ImageCriteria.DeprecationTimeCondition.MaximumDaysSinceDeprecated)}}
```

En el siguiente resultado de ejemplo, el estado es `audit-mode` y los criterios de imágenes están establecidos en la cuenta.

```
State      : audit-mode
ManagedBy  : account
ImageProviders            : {123456789012, 123456789013, 123456789014, amazon}
MarketplaceProductCodes   : {abcdefg1234567890}
ImageNames                : {golden-ami-*}
MaximumDaysSinceCreated  : 300
MaximumDaysSinceDeprecated: 0
```

------

## Búsqueda de las AMI permitidas
<a name="identify-amis-that-meet-allowed-amis-criteria"></a>

Puede buscar las AMI permitidas y las no permitidas según los criterios de AMI permitidas actuales.

**nota**  
Las AMI permitidas deben estar en modo de auditoría.

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

**Comprobación de si una AMI cumple los criterios de AMI permitidas**

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 la AMI.

1. En la pestaña **Detalles** (si ha seleccionado la casilla de verificación) o en el área de resumen (si ha seleccionado el ID de AMI), busque el campo **Imagen permitida**.
   + **Sí**: la AMI cumple los criterios de AMI permitidas. Esta AMI estará disponible para los usuarios de la cuenta después de que habilite las AMI permitidas.
   + **No**: la AMI no cumple los criterios de AMI permitidas.

1. En el panel de navegación, elija **Catálogo de AMI**.

   Cuando una AMI está marcada con **No permitida**, significa que no cumple los criterios de AMI permitidas. Esta AMI no estará visible ni disponible para los usuarios de la cuenta cuando AMI permitidas esté habilitada.

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

**Comprobación de si una AMI cumple los criterios de AMI permitidas**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) .

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[].ImageAllowed \
    --output text
```

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

```
True
```

**Búsqueda de las AMI que cumplen los criterios de AMI permitidas**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) .

```
aws ec2 describe-images \
    --filters "Name=image-allowed,Values=true" \
    --max-items 10 \
    --query Images[].ImageId
```

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

```
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
```

------
#### [ PowerShell ]

**Comprobación de si una AMI cumple los criterios de AMI permitidas**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).ImageAllowed
```

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

```
True
```

**Búsqueda de las AMI que cumplen los criterios de AMI permitidas**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image `
    -Filter @{Name="image-allows";Values="true"} `
    -MaxResult 10 | `
    Select ImageId
```

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

```
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
```

------

## Búsqueda de instancias lanzadas desde AMI no permitidas
<a name="identify-instances-with-allowed-AMIs"></a>

Puede identificar las instancias que se lanzaron con una AMI que no cumple los criterios de AMI permitidas.

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

**Comprobación de si una instancia se lanzó con una AMI que no es permitida**

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 **Instancias**.

1. Seleccione la instancia.

1. En la pestaña **Detalles**, en **Detalles de la instancia**, busque **Imagen permitida**.
   + **Sí**: la AMI cumple los criterios de AMI permitidas.
   + **No**: la AMI no cumple los criterios de AMI permitidas.

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

**Búsqueda de instancias lanzadas desde AMI no permitidas**  
Utilice el comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) con el filtro `image-allowed`.

```
aws ec2 describe-instance-image-metadata \
    --filters "Name=image-allowed,Values=false" \
    --query "InstanceImageMetadata[*].[InstanceId,ImageMetadata.ImageId]" \
    --output table
```

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

```
--------------------------------------------------
|          DescribeInstanceImageMetadata         |
+----------------------+-------------------------+
|  i-08fd74f3f1595fdbd |  ami-09245d5773578a1d6  |
|  i-0b1bf24fd4f297ab9 |  ami-07cccf2bd80ed467f  |
|  i-026a2eb590b4f7234 |  ami-0c0ec0a3a3a4c34c0  |
|  i-006a6a4e8870c828f |  ami-0a70b9d193ae8a799  |
|  i-0781e91cfeca3179d |  ami-00c257e12d6828491  |
|  i-02b631e2a6ae7c2d9 |  ami-0bfddf4206f1fa7b9  |
+----------------------+-------------------------+
```

------
#### [ PowerShell ]

**Búsqueda de instancias lanzadas desde AMI no permitidas**  
Utilice el cmdlet [Get-EC2InstanceImageMetadata](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceImageMetadata.html).

```
Get-EC2InstanceImageMetadata `
    -Filter @{Name="image-allowed";Values="false"} | `
    Select InstanceId, @{Name='ImageId'; Expression={($_.ImageMetadata.ImageId)}}
```

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

```
InstanceId          ImageId
----------          -------
i-08fd74f3f1595fdbd ami-09245d5773578a1d6
i-0b1bf24fd4f297ab9 ami-07cccf2bd80ed467f
i-026a2eb590b4f7234 ami-0c0ec0a3a3a4c34c0
i-006a6a4e8870c828f ami-0a70b9d193ae8a799
i-0781e91cfeca3179d ami-00c257e12d6828491
i-02b631e2a6ae7c2d9 ami-0bfddf4206f1fa7b9
```

------
#### [ AWS Config ]

Puede agregar la regla **ec2-instance-launched-with-allowed-ami** de AWS Config, configurarla según sus requisitos y, a continuación, usarla para evaluar las instancias.

Para obtener más información, consulte [Añadir reglas AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_add-rules.html) y [ec2-instance-launched-with-allowed-ami](https://docs.aws.amazon.com/config/latest/developerguide/ec2-instance-launched-with-allowed-ami.html) en la *Guía para desarrolladores de AWS Config*.

------

# Publicación de la AMI para utilizarla en Amazon EC2
<a name="sharingamis-intro"></a>

Puede hacer que su AMI esté disponible públicamente y compartirla con todas las Cuentas de AWS.

Si desea impedir que sus AMI se compartan públicamente, habilite el *bloqueo del acceso público de las AMI*. Esto bloquea cualquier intento de hacer pública una AMI, lo que ayuda a prevenir el acceso no autorizado y el posible uso indebido de los datos de la AMI. Tenga en cuenta que la habilitación del bloqueo del acceso público no afecta a las AMI que ya están disponibles públicamente y que permanecerán en ese estado. Para obtener más información, consulte [Descripción del bloqueo del acceso público de las AMI](block-public-access-to-amis.md).

Para permitir que solo cuentas específicas utilicen su AMI para iniciar instancias, consulte [Compartir una AMI con cuentas de AWS específicas](sharingamis-explicit.md).

**Topics**
+ [Consideraciones](#considerations-for-sharing-public-AMIs)
+ [Compartir una AMI con todas las cuentas de AWS (compartir públicamente)](#share-an-ami-publicly)

## Consideraciones
<a name="considerations-for-sharing-public-AMIs"></a>

Tenga en cuenta lo siguiente antes de hacer pública una AMI.
+ **Propiedad**: para hacer pública una AMI, su Cuenta de AWS debe ser la propietaria de esta.
+ **Región**: las AMI son un recurso regional. Cuando comparte una AMI, solo está disponible en la región desde donde la compartió. Para hacer que una AMI esté disponible en una región distinta, copie la AMI en dicha región y, a continuación, compártala. Para obtener más información, consulte [Copia de una AMI de Amazon EC2](CopyingAMIs.md).
+ **bloqueo del acceso público**: para compartir públicamente una AMI, debe deshabilitar el [bloqueo del acceso público de las AMI](block-public-access-to-amis.md) en cada región en la que la AMI se compartirá públicamente. Una vez que haya compartido la AMI públicamente, puede volver a habilitar el bloqueo del acceso público de las AMI para evitar que se sigan compartiendo públicamente.
+ **Algunas AMI no se pueden hacer públicas**: si su AMI tiene alguno de los siguientes componentes, no puede hacerla pública (pero puede [compartir la AMI con Cuentas de AWS específicas](sharingamis-explicit.md)):
  + Volúmenes cifrados
  + Instantáneas de volúmenes cifrados
  + Códigos de producto
+ **Evite exponer información confidencial**: para evitar exponer información confidencial al compartir una AMI, lea las consideraciones de seguridad disponibles en [Recomendaciones para crear AMI compartidas de Linux](building-shared-amis.md) y realice las acciones recomendadas.
+ **Uso**: cuando comparte una AMI, los usuarios solo pueden iniciar instancias desde la AMI. No pueden eliminarla, compartirla ni modificarla. Sin embargo, después de iniciar una instancia mediante la AMI, pueden crear una AMI a partir de esa instancia.
+ **Obsolescencia automática**: de forma predeterminada, la fecha de obsolescencia de todas las AMI públicas se establece en dos años a partir de la fecha de creación de la AMI. Puede establecer una fecha de obsolescencia anterior a los dos años. Para anular la fecha de obsolescencia o para aplazarla, debe hacer que la AMI sea privada. Para ello, [compártala solo con Cuentas de AWS específicas](sharingamis-explicit.md).
+ **Eliminar las AMI obsoletas**: cuando una AMI pública alcanza su fecha de caducidad, si no se han inicializado instancias nuevas desde la AMI durante seis meses o más, AWS elimina con el tiempo la propiedad de uso compartido público para que las AMI obsoletas no aparezcan en las listas de AMI públicas.
+ **Facturación**: no se factura cuando otras Cuentas de AWS utilizan la AMI para iniciar instancias. Las cuentas que inician instancias mediante la AMI serán facturadas por las instancias iniciadas.

## Compartir una AMI con todas las cuentas de AWS (compartir públicamente)
<a name="share-an-ami-publicly"></a>

Después de hacer pública una AMI, estará disponible en **AMI de la comunidad** de la consola, a las que puede acceder desde el **Catálogo de AMI** en el navegador izquierdo de la consola de EC2 o cuando lance una instancia con la consola. Tenga en cuenta que pueden transcurrir unos minutos antes de que la AMI aparezca en **AMI de comunidad** una vez que se ha hecho pública. 

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

**Para hacer una AMI pública**

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 la AMI de la lista y, a continuación, elija **Acciones**, **Editar permisos de la AMI**.

1. En **Disponibilidad de AMI**, elija **Pública**.

1. Seleccione **Save changes (Guardar cambios)**.

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

Cada AMI tiene una propiedad `launchPermission` que controla qué Cuentas de AWS, además de la del propietario, pueden utilizar dicha AMI para iniciar instancias. Al modificar la propiedad `launchPermission` de una AMI, puede hacerla pública (lo cual concede permisos de inicialización a todas las Cuentas de AWS) o compartirla solo con aquellas Cuentas de AWS que especifique.

Puede añadir o eliminar ID de cuentas en la lista de cuentas que tienen permisos de inicialización para una AMI. Para hacer la AMI pública, especifique el grupo `all`. Puede especificar permisos de inicialización públicos y explícitos.

**Para hacer una AMI pública**

1. Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) del modo siguiente para agregar el grupo `all` a la lista `launchPermission` de la AMI especificada.

   ```
   aws ec2 modify-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --launch-permission "Add=[{Group=all}]"
   ```

1. Para verificar los permisos de inicialización de la AMI, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html).

   ```
   aws ec2 describe-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --attribute launchPermission
   ```

1. (Opcional) Para hacer la AMI privada de nuevo, elimine el grupo `all` de sus permisos de inicialización. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

   ```
   aws ec2 modify-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --launch-permission "Remove=[{Group=all}]"
   ```

------
#### [ PowerShell ]

Cada AMI tiene una propiedad `launchPermission` que controla qué Cuentas de AWS, además de la del propietario, pueden utilizar dicha AMI para iniciar instancias. Al modificar la propiedad `launchPermission` de una AMI, puede hacerla pública (lo cual concede permisos de inicialización a todas las Cuentas de AWS) o compartirla solo con aquellas Cuentas de AWS que especifique.

Puede añadir o eliminar ID de cuentas en la lista de cuentas que tienen permisos de inicialización para una AMI. Para hacer la AMI pública, especifique el grupo `all`. Puede especificar permisos de inicialización públicos y explícitos.

**Para hacer una AMI pública**

1. Utilice el comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) del modo siguiente para agregar el grupo `all` a la lista `launchPermission` de la AMI especificada.

   ```
   Edit-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission `
       -OperationType add `
       -UserGroup all
   ```

1. Para verificar los permisos de inicialización de la AMI, utilice el comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html).

   ```
   Get-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission
   ```

1. (Opcional) Para hacer la AMI privada de nuevo, elimine el grupo `all` de sus permisos de inicialización. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de lanzamiento, por lo que este comando no le afecta.

   ```
   Edit-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission `
       -OperationType remove `
       -UserGroup all
   ```

------

# Descripción del bloqueo del acceso público de las AMI
<a name="block-public-access-to-amis"></a>

Para impedir que las AMI se compartan públicamente, habilite el *bloqueo del acceso público de las AMI* a nivel de cuenta.

Cuando el bloqueo del acceso público se habilita, cualquier intento de hacer pública una AMI se bloquea de manera automática. Sin embargo, si ya tiene AMI públicas, permanecerán disponibles públicamente.

Si quiere compartir públicamente las AMI, deberá deshabilitar el bloqueo del acceso público. Cuando haya terminado de compartir, se recomienda volver a habilitar el bloqueo del acceso público para evitar que sus AMI se compartan públicamente sin su consentimiento.

**nota**  
Este ajuste se configura a nivel de cuenta, ya sea directamente en la cuenta o mediante una política declarativa. Se debe configurar en cada Región de AWS en la que desea impedir que las AMI se compartan públicamente. El uso de una política declarativa permite aplicar la configuración en varias regiones simultáneamente, así como en varias cuentas simultáneamente. Cuando se utiliza una política declarativa, no se puede modificar la configuración directamente en una cuenta. En este tema se describe cómo configurar el ajuste directamente dentro de una cuenta. Para obtener información sobre el uso de políticas declarativas, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations.*

Puede restringir los permisos de IAM a un usuario administrador para que solo esa persona pueda habilitar o deshabilitar el bloqueo del acceso público de las AMI.

**Topics**
+ [Configuración predeterminada](#block-public-access-to-amis-default-settings)
+ [Administración de la configuración del bloqueo del acceso público de las AMI](manage-block-public-access-for-amis.md)

## Configuración predeterminada
<a name="block-public-access-to-amis-default-settings"></a>

La configuración **bloquear el acceso público a las AMI** está habilitada o deshabilitada de forma predeterminada en función de si su cuenta es nueva o existente y de si tiene AMI públicas. En la tabla siguiente se muestra la configuración predeterminada:


| Cuenta de AWS | Configuración bloquear el acceso público a las AMI | 
| --- | --- | 
| Cuentas nuevas | Habilitado | 
|  Cuentas existentes sin AMI públicas ¹  | Habilitado | 
|  Cuentas existentes con una o varias AMI públicas  | Deshabilitado | 

¹ Si su cuenta tenía una o varias AMI públicas el 15 de julio de 2023 o después de esa fecha, la configuración **bloquear el acceso público a las AMI** está deshabilitada de forma predeterminada en su cuenta, aunque posteriormente haya hecho que todas las AMI sean privadas.

# Administración de la configuración del bloqueo del acceso público de las AMI
<a name="manage-block-public-access-for-amis"></a>

Puede administrar la configuración del bloqueo del acceso público de las AMI para controlar si se pueden compartir públicamente. Puede activar, desactivar o ver el estado actual del bloqueo del acceso público de las AMI mediante la consola de Amazon EC2 o la AWS CLI.

## Ver el estado del bloqueo del acceso público de las AMI
<a name="get-block-public-access-state-for-amis"></a>

Para comprobar si el uso compartido público de las AMI está bloqueado en su cuenta, puede ver el estado del bloqueo del acceso público de las AMI. Debe ver el estado en cada Región de AWS en la que desee comprobar si el uso compartido público de sus AMI está bloqueado.

**Permisos necesarios**  
Para obtener la configuración del bloqueo del acceso público de las AMI, debe contar con el permiso de IAM `GetImageBlockPublicAccessState`.

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

**Para ver el estado del bloqueo del acceso público de las AMI en la región especificada**

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

1. En la barra de navegación (en la parte superior de la pantalla), seleccione la región en la que desea ver el estado del bloqueo del acceso público de las AMI.

1. En el panel de navegación, elija **Panel**.

1. En la tarjeta **Atributos de cuenta**, en **Configuración**, elija **Protección y seguridad de datos**.

1. En **bloqueo del acceso público de las AMI**, active el campo **Acceso público**. El valor será **Nuevo uso compartido público bloqueado** o **Nuevo uso compartido público permitido**.

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

**Ver el estado del bloqueo del acceso público de las AMI**  
Utilice el comando [ get-image-block-public-access-state](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-block-public-access-state.html). El valor es `block-new-sharing` o `unblocked`.

**Ejemplo: Para una región específica**

```
aws ec2 get-image-block-public-access-state --region us-east-1
```

El campo `ManagedBy` indica la entidad que configuró el ajuste. En este ejemplo, `account` indica que el ajuste se configuró directamente en la cuenta. Un valor de `declarative-policy` significaría que el ajuste se configuró mediante una política declarativa. Para obtener más información, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations*.

```
{
    "ImageBlockPublicAccessState": "block-new-sharing",
    "ManagedBy": "account"
}
```

**Ejemplo: Para todas las regiones de su cuenta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 get-image-block-public-access-state \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

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

```
Region           Public Access State
--------------   ----------------------
ap-south-1       block-new-sharing
eu-north-1       unblocked
eu-west-3        block-new-sharing
...
```

------
#### [ PowerShell ]

**Ver el estado del bloqueo del acceso público de las AMI**  
Utilice el cmdlet [Get-EC2ImageBlockPublicAccessState](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageBlockPublicAccessState.html). El valor es `block-new-sharing` o `unblocked`.

**Ejemplo: Para una región específica**

```
Get-EC2ImageBlockPublicAccessState -Region us-east-1
```

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

```
block-new-sharing
```

**Ejemplo: Para todas las regiones de su cuenta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
        [PSCustomObject]@{
            Region   = $_
            PublicAccessState = (Get-EC2ImageBlockPublicAccessState -Region $_)
        }
} | `
Format-Table -AutoSize
```

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

```
Region         PublicAccessState
------         -----------------
ap-south-1     block-new-sharing
eu-north-1     block-new-sharing
eu-west-3      block-new-sharing
...
```

------

## Habilitar el bloqueo del acceso público de las AMI
<a name="enable-block-public-access-for-amis"></a>

Para impedir que sus AMI se compartan públicamente, habilite el bloqueo del acceso público de las AMI a nivel de cuenta. Debe habilitar el bloqueo del acceso público de las AMI en cada Región de AWS en la que desea impedir que se compartan públicamente sus AMI. Si ya tiene AMI públicas, permanecerán disponibles públicamente.

**Permisos necesarios**  
Para habilitar el bloqueo del acceso público de las AMI, debe contar con el permiso de IAM `EnableImageBlockPublicAccess`.

**Consideraciones**
+ Puede tardar hasta 10 minutos en configurar este ajuste. Durante este tiempo, si describe el estado del acceso público, la respuesta es `unblocked`. Cuando la configuración se haya completado, la respuesta es `block-new-sharing`.

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

**Para habilitar el bloqueo del acceso público de las AMI en la región especificada**

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

1. En la barra de navegación (en la parte superior de la pantalla), seleccione la región en la que desea habilitar el bloqueo del acceso público de las AMI.

1. En el panel de navegación, elija **Panel**.

1. En la tarjeta **Atributos de cuenta**, en **Configuración**, elija **Protección y seguridad de datos**.

1. En **bloqueo del acceso público de las AMI**, elija **Administrar**.

1. Seleccione la casilla de verificación **bloquear nuevo uso compartido público** y luego, elija **Actualizar**.

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

**Habilitar el bloqueo del acceso público de las AMI**  
Utilice el comando [enable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-block-public-access.html).

**Ejemplo: Para una región específica**

```
aws ec2 enable-image-block-public-access \
--region us-east-1 \
--image-block-public-access-state block-new-sharing
```

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

```
{ 
    "ImageBlockPublicAccessState": "block-new-sharing"
}
```

**Ejemplo: Para todas las regiones de su cuenta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 enable-image-block-public-access \
            --region $region \
            --image-block-public-access-state block-new-sharing \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

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

```
Region           Public Access State
--------------   ----------------------
ap-south-1       block-new-sharing
eu-north-1       block-new-sharing
eu-west-3        block-new-sharing
...
```

------
#### [ PowerShell ]

**Habilitar el bloqueo del acceso público de las AMI**  
Utilice el comando [Enable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageBlockPublicAccess.html).

**Ejemplo: Para una región específica**

```
Enable-EC2ImageBlockPublicAccess `
    -Region us-east-1 `
    -ImageBlockPublicAccessState block-new-sharing
```

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

```
Value
-----
block-new-sharing
```

**Ejemplo: Para todas las regiones de su cuenta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (
        Enable-EC2ImageBlockPublicAccess `
         -Region $_ `
         -ImageBlockPublicAccessState block-new-sharing)
    }
} | `
Format-Table -AutoSize
```

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

```
Region         PublicAccessState
------         -----------------
ap-south-1     block-new-sharing
eu-north-1     block-new-sharing
eu-west-3      block-new-sharing
...
```

------

## Deshabilitar el bloqueo del acceso público de las AMI
<a name="disable-block-public-access-for-amis"></a>

Para permitir que los usuarios de su cuenta compartan públicamente sus AMI, deshabilite el bloqueo del acceso público a nivel de cuenta. Debe deshabilitar el bloqueo del acceso público de las AMI en cada Región de AWS en la que desea permitir que se compartan públicamente sus AMI.

**Permisos necesarios**  
Para inhabilitar el bloqueo del acceso público de las AMI, debe contar con el permiso de IAM `DisableImageBlockPublicAccess`.

**Consideraciones**
+ Puede tardar hasta 10 minutos en configurar este ajuste. Durante este tiempo, si describe el estado del acceso público, la respuesta es `block-new-sharing`. Cuando la configuración se haya completado, la respuesta es `unblocked`.

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

**Para deshabilitar el bloqueo del acceso público de las AMI en la región especificada**

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

1. En la barra de navegación (en la parte superior de la pantalla), seleccione la región en la que desea deshabilitar el bloqueo del acceso público de las AMI.

1. En el panel de navegación, elija **Panel**.

1. En la tarjeta **Atributos de cuenta**, en **Configuración**, elija **Protección y seguridad de datos**.

1. En **bloqueo del acceso público de las AMI**, elija **Administrar**.

1. Desactive la casilla de verificación **bloquear nuevo uso compartido público** y luego, elija **Actualizar**.

1. Cuando se le pida confirmación, ingrese **confirm** y elija **Permitir uso compartido**.

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

**Deshabilitar el bloqueo del acceso público de las AMI**  
Utilice el comando [disable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-block-public-access.html).

**Ejemplo: Para una región específica**

```
aws ec2 disable-image-block-public-access --region us-east-1
```

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

```
{
   "ImageBlockPublicAccessState": "unblocked"
}
```

**Ejemplo: Para todas las regiones de su cuenta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 disable-image-block-public-access \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

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

```
Region           Public Access State
--------------   ----------------------
ap-south-1       unblocked
eu-north-1       unblocked
eu-west-3        unblocked
...
```

------
#### [ PowerShell ]

**Deshabilitar el bloqueo del acceso público de las AMI**  
Utilice el cmdlet [Disable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageBlockPublicAccess.html).

**Ejemplo: Para una región específica**

```
Disable-EC2ImageBlockPublicAccess -Region us-east-1
```

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

```
Value
-----
unblocked
```

**Ejemplo: Para todas las regiones de su cuenta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (Disable-EC2ImageBlockPublicAccess -Region $_)
    }
} | `
Format-Table -AutoSize
```

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

```
Region         PublicAccessState
------         -----------------
ap-south-1     unblocked
eu-north-1     unblocked
eu-west-3      unblocked
...
```

------

# Cómo compartir una AMI con organizaciones y unidades organizativas
<a name="share-amis-with-organizations-and-OUs"></a>

 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html) es un servicio de administración de cuentas que le permite unificar varias Cuentas de AWS en una organización que crea y administra de forma centralizada. Puede compartir una AMI con una organización o una unidad organizativa (UO) de su creación, además de [compartirla con cuentas específicas](sharingamis-explicit.md).

Una organización es una entidad que se crea para consolidar y administrar las Cuentas de AWS de forma centralizada. Puede organizar las cuentas jerárquicamente en una estructura de árbol con un [nodo raíz](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#root) en la parte superior y [unidades organizativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) anidadas bajo la organización raíz. Cada cuenta puede añadirse directamente en el nodo raíz o colocarse en una de las UO de la jerarquía. Para obtener más información, consulte [Terminología y conceptos de AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) en la *Guía del usuario de AWS Organizations*.

Cuando comparte una AMI con una organización o una unidad organizativa, todas las cuentas secundarias obtienen acceso a la AMI. Por ejemplo, en el siguiente diagrama, la AMI se comparte con una unidad organizativa de nivel superior (indicada por la flecha en el número **1**). Todas las unidades organizativas y cuentas anidadas debajo de esa unidad organizativa de nivel superior (indicadas por la línea punteada en el número **2**) también tienen acceso a la AMI. Las cuentas de la organización y la unidad organizativa fuera de la línea punteada (indicadas por el número **3**) no tienen acceso a la AMI porque no dependen de la unidad organizativa con la que se comparte la AMI.

![\[La AMI se comparte con una unidad organizativa y todas las unidades organizativas y cuentas secundarias tienen acceso a la AMI.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/ami-share-with-orgs-and-ous.png)


**Topics**
+ [Consideraciones](#considerations-org-ou)
+ [Obtención del ARN de una organización o unidad organizativa](get-org-ou-ARN.md)
+ [Permitir que las organizaciones y unidades organizativas utilicen una clave de KMS](allow-org-ou-to-use-key.md)
+ [Administración del uso compartido de AMI con una organización o unidad organizativa](share-amis-org-ou-manage.md)

## Consideraciones
<a name="considerations-org-ou"></a>

Tenga en cuenta lo siguiente al compartir AMI con organizaciones o unidades organizativas específicas.
+ **Propiedad**: para compartir una AMI, su Cuenta de AWS debe ser la propietaria de esta.
+ **Límites del uso compartido**: el propietario de la AMI puede compartir una AMI con cualquier organización o unidad organizativa, incluidas organizaciones y unidades organizativas de las que no son miembros.

  Para conocer el número máximo de entidades con las que se puede compartir una AMI dentro de una región, consulte [Amazon EC2 service quotas](https://docs.aws.amazon.com//general/latest/gr/ec2-service.html#limits_ec2).
+ **Etiquetas**: no puede compartir etiquetas definidas por el usuario (etiquetas que se adjuntan a una AMI). Al compartir una AMI, las etiquetas definidas por el usuario no están disponibles para ninguna Cuenta de AWS de organización o unidad organizativa con la que se comparte la AMI.
+ **Formato ARN**: al especificar una organización o UO en un comando, asegúrese de utilizar el formato ARN correcto. Si especifica solo el ID se producirá un error, por ejemplo, si solo especifica `o-123example` o `ou-1234-5example`.

  Formatos de ARN adecuados:
  + ARN de la organización: `arn:aws:organizations::111122223333:organization/organization-id`
  + ARN de la unidad organizativa: `arn:aws:organizations::111122223333:ou/organization-id/ou-id`

  Donde:
  + *`111122223333`* es un ejemplo del ID de cuenta de 12 dígitos de la cuenta de administración. Si no conoce el número de cuenta de administración, puede describir la organización o la unidad organizativa para obtener el ARN, que incluye el número de cuenta de administración. Para obtener más información, consulte [Obtención del ARN de una organización o unidad organizativa](get-org-ou-ARN.md).
  + *`organization-id`* es el ID de la organización, por ejemplo, `o-123example`.
  + *`ou-id`* es el ID de la unidad organizativa, por ejemplo, `ou-1234-5example`.

  Para obtener más información acerca del formato de los ARN, consulte [Nombres de recursos de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) en la *Guía del usuario de IAM*.
+ **Cifrado y claves**: puede compartir AMI que cuentan con el respaldo de instantáneas sin cifrar y cifradas.
  + Las instantáneas cifradas deben estar cifradas con una clave administrada por el cliente. No pueden compartir las AMI que están respaldadas por instantáneas cifradas con la clave predeterminada administrada por AWS.
  + Si comparte una AMI respaldada por instantáneas cifradas, debe permitir que las organizaciones o unidades organizativas utilicen las claves administradas por el cliente que se utilizaron para cifrar las instantáneas. Para obtener más información, consulte [Permitir que las organizaciones y unidades organizativas utilicen una clave de KMS](allow-org-ou-to-use-key.md).
+ **Región**: las AMI son un recurso regional. Cuando comparte una AMI, solo está disponible en la región desde donde la compartió. Para hacer que una AMI esté disponible en una región distinta, copie la AMI en dicha región y, a continuación, compártala. Para obtener más información, consulte [Copia de una AMI de Amazon EC2](CopyingAMIs.md).
+ **Uso**: cuando comparte una AMI, los usuarios solo pueden iniciar instancias desde la AMI. No pueden eliminarla, compartirla ni modificarla. Sin embargo, después de iniciar una instancia mediante la AMI, pueden crear una AMI a partir de esa instancia.
+ **Facturación**: no se factura cuando otras Cuentas de AWS utilizan la AMI para iniciar instancias. Las cuentas que inician instancias mediante la AMI serán facturadas por las instancias iniciadas.

# Obtención del ARN de una organización o unidad organizativa
<a name="get-org-ou-ARN"></a>

La organización y los ARN de la unidad organizativa contienen el número de cuenta de administración de 12 dígitos. Si no conoce el número de cuenta de administración, puede describir la organización y la unidad organizativa para obtener el ARN de cada una. En los siguientes ejemplos, `123456789012` es el ID de la cuenta de administración.

**Permisos necesarios**  
Para poder obtener los ARN, debe tener permiso para describir organizaciones y unidades organizativas. La siguiente política de ejemplo proporciona el permiso necesario.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "organizations:Describe*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

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

**Para obtener el ARN de una organización**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html). Agregue la opción `--query` para devolver solo el ARN de la organización.

```
aws organizations describe-organization --query 'Organization.Arn'
```

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

```
"arn:aws:organizations::123456789012:organization/o-1234567abc"
```

**Para obtener el ARN de una unidad organizativa**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organizational-unit.html](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organizational-unit.html). Use el parámetro `--query` para devolver solo el ARN de la unidad organizativa.

```
aws organizations describe-organizational-unit \
    --organizational-unit-id ou-a123-b4567890 \
    --query 'OrganizationalUnit.Arn'
```

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

```
"arn:aws:organizations::123456789012:ou/o-1234567abc/ou-a123-b4567890"
```

------
#### [ PowerShell ]

**Para obtener el ARN de una organización**  
Use el cmdlet [Get-ORGOrganization](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ORGOrganization.html).

```
(Get-ORGOrganization).Arn
```

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

```
arn:aws:organizations::123456789012:organization/o-1234567abc
```

**Para obtener el ARN de una unidad organizativa**  
Use el cmdlet [Get-ORGOrganizationalUnit](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ORGOrganizationalUnit.html).

```
(Get-ORGOrganizationalUnit -OrganizationalUnitId "ou-a123-b4567890").Arn
```

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

```
arn:aws:organizations::123456789012:ou/o-1234567abc/ou-a123-b4567890
```

------

# Permitir que las organizaciones y unidades organizativas utilicen una clave de KMS
<a name="allow-org-ou-to-use-key"></a>

Si comparte una AMI respaldada por instantáneas cifradas, también debe permitir que las organizaciones o unidades organizativas (OU) utilicen las claves de KMS que se emplearon para cifrar las instantáneas.

**nota**  
Las instantáneas cifradas deben estar cifradas con una *clave administrada por el cliente*. No pueden compartir las AMI que están respaldadas por instantáneas cifradas con la clave predeterminada administrada por AWS.

Para controlar el acceso a la clave de KMS, en la [política de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) puede usar las claves de condición [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) para permitir que solo determinadas entidades principales tengan permiso para las acciones especificadas. Una entidad principal puede ser un usuario, un rol de IAM, un usuario federado o usuario raíz de Cuenta de AWS.

Las claves de condición se utilizan de la siguiente manera:
+ `aws:PrincipalOrgID`: permite que cualquier entidad principal que pertenezca a la organización esté representada por el ID especificado.
+ `aws:PrincipalOrgPaths`: permite que cualquier entidad principal que pertenezca a la unidad organizativa esté representada por las rutas especificadas.

Para conceder permiso a una organización (incluidas las unidades organizativas y las cuentas que pertenecen a esta) para utilizar una clave de KMS, agregue la siguiente instrucción a la política de claves.

```
{
    "Sid": "Allow access for organization root",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "kms:Describe*",
        "kms:List*",
        "kms:Get*",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:PrincipalOrgID": "o-123example"
        }
    }
}
```

Para conceder a determinadas unidades organizativas (y a las cuentas que pertenecen a estas) permiso para utilizar una clave de KMS, puede utilizar una política similar a la del siguiente ejemplo.

```
{
        "Sid": "Allow access for specific OUs and their descendants",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
            "kms:Describe*",
            "kms:List*",
            "kms:Get*",
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:CreateGrant"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalOrgID": "o-123example"
            },
            "ForAnyValue:StringLike": {
                "aws:PrincipalOrgPaths": [
                    "o-123example/r-ab12/ou-ab12-33333333/*",
                    "o-123example/r-ab12/ou-ab12-22222222/*"
                ]
            }
        }
}
```

Para ver más ejemplos de declaraciones de condiciones, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) en la *Guía del usuario de IAM*. 

Para obtener más información acerca del acceso entre cuentas, consulte [Cómo permitir a los usuarios de otras cuentas utilizar una clave de KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) en la *Guía para desarrolladores de AWS Key Management Service*.

# Administración del uso compartido de AMI con una organización o unidad organizativa
<a name="share-amis-org-ou-manage"></a>

Puede administrar el uso compartido de AMI con organizaciones y unidades organizativas (OU) para controlar si pueden lanzar instancias de Amazon EC2.

## Ver las organizaciones y unidades organizativas con las que se comparte una AMI
<a name="decribe-ami-launch-permissions"></a>

Puede encontrar las organizaciones y unidades organizativas con las que compartió la AMI.

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

**Para verificar con qué organizaciones y unidades organizativas compartió la AMI**

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 la AMI en la lista, elija la pestaña **Permisos** y desplácese hacia abajo hasta **Organizaciones/unidades organizativas compartidas**.

   Para encontrar las AMI compartidas con usted, consulte [Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2](usingsharedamis-finding.md).

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

**Para verificar con qué organizaciones y unidades organizativas compartió la AMI**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html) con el atributo `launchPermission`.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

A continuación, se muestra un ejemplo de respuesta.

```
{
    "ImageId": "ami-0abcdef1234567890",
    "LaunchPermissions": [
        {
            "OrganizationalUnitArn": "arn:aws:organizations::111122223333:ou/o-123example/ou-1234-5example"
        }
    ]
}
```

------
#### [ PowerShell ]

**Para verificar con qué organizaciones y unidades organizativas compartió la AMI**  
Utilice el cmdlet [Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html).

```
Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

## Uso compartido de una AMI con una organización o unidad organizativa
<a name="share-amis-org-ou"></a>

Puede compartir una AMI con una organización o unidad organizativa.

**nota**  
No es necesario compartir las instantáneas de Amazon EBS a las que hace referencia una AMI para compartir dicha AMI. Solo es necesario compartir la AMI; para la inicialización, el sistema proporciona automáticamente a la instancia acceso a las instantáneas de EBS a las que se hace referencia. Sin embargo, es necesario compartir las claves de KMS que se utilizan para cifrar instantáneas a las que hace referencia la AMI. Para obtener más información, consulte [Permitir que las organizaciones y unidades organizativas utilicen una clave de KMS](allow-org-ou-to-use-key.md).

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

**Para compartir una AMI con una organización o una unidad organizativa**

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 la AMI en la lista y, a continuación, elija **Acciones**, **Editar permisos de la AMI**.

1. En **Disponibilidad de AMI**, elija **Privada**.

1. Junto a **Organizaciones/unidades organizativas compartidas**, elija **Agregar ARN de organización/unidad organizativa**.

1. En **ARN de organización/unidad organizativa**, introduzca el ARN de la organización o de la unidad organizativa con el que desea compartir la AMI y, a continuación, elija **Compartir AMI**. Tenga en cuenta que debe especificar el ARN completo, no solo el ID.

   Para compartir esta AMI con varias organizaciones o unidades organizativas, repita este paso hasta que haya agregado todas las organizaciones o unidades organizativas necesarias.

1. Cuando haya terminado, elija **Guardar cambios**.

1. (Opcional) Para ver las organizaciones o unidades organizativas con las que ha compartido la AMI, seleccione la AMI en la lista, elija la pestaña **Permisos** y desplácese hacia abajo hasta **Organizaciones/unidades organizativas compartidas**. Para encontrar las AMI compartidas con usted, consulte [Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2](usingsharedamis-finding.md).

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

**Para compartir una AMI con una organización**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) para conceder permisos de inicialización para la AMI especificada a la organización especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
```

**Para compartir una AMI con una unidad organizativa**  
El comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) concede permisos de inicialización para la AMI especificada a la unidad organizativa determinada. Tenga en cuenta que debe especificar el ARN completo, no solo el ID.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{OrganizationalUnitArn=arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example}]"
```

------
#### [ PowerShell ]

Utilice el comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) (Herramientas para Windows PowerShell) para compartir una AMI tal y como se muestra en los siguientes ejemplos.

**Para compartir una AMI con una organización o una unidad organizativa**  
El siguiente comando concede permisos de inicialización para la AMI especificada a la organización determinada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType add `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para dejar de compartir una AMI con una organización o unidad organizativa**  
El siguiente comando elimina permisos de inicialización para la AMI especificada de la organización determinada:

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType remove `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para dejar de compartir una AMI con todas las organizaciones, unidades organizativas y Cuentas de AWS**  
El siguiente comando elimina todos los permisos de inicialización públicos y explícitos de la AMI especificada. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

## Finalización del uso compartido de una AMI con una organización o unidad organizativa
<a name="stop-sharing-amis-org-ou"></a>

Puede dejar de compartir una AMI con una organización o unidad organizativa.

**nota**  
No puede dejar de compartir una AMI con una cuenta específica si se encuentra en una organización o unidad organizativa con la que se comparte una AMI. Si intenta dejar de compartir la AMI mediante la eliminación de los permisos de inicialización de la cuenta, Amazon EC2 devuelve el mensaje de que la operación se realizó correctamente. Sin embargo, la AMI sigue compartiéndose con la cuenta.

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

**Para dejar de compartir una AMI con una organización o unidad organizativa**

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 la AMI en la lista y, a continuación, elija **Actions** (Acciones), **Edit AMI permissions** (Editar permisos de la AMI).

1. En **Organizaciones/unidades organizativas compartidas**, seleccione las organizaciones o unidades organizativas con las que desea dejar de compartir la AMI y, a continuación, elija **Eliminar la selección**.

1. Cuando haya terminado, elija **Guardar cambios**.

1. (Opcional) Para confirmar que dejó de compartir la AMI con las organizaciones o unidades organizativas, seleccione la AMI en la lista, elija la pestaña **Permisos** y desplácese hacia abajo hasta **Organizaciones/unidades organizativas compartidas**.

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

**Para dejar de compartir una AMI con una organización o unidad organizativa**  
Utilice el comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html). En este ejemplo se eliminan los permisos de inicialización para la AMI especificada de la organización especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Remove=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
```

**Para dejar de compartir una AMI con todas las organizaciones, unidades organizativas y Cuentas de AWS**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/reset-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/reset-image-attribute.html). En este ejemplo se eliminan todos los permisos de inicialización públicos y explícitos de la AMI especificada. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

```
aws ec2 reset-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

------
#### [ PowerShell ]

**Para dejar de compartir una AMI con una organización o unidad organizativa**  
Utilice el cmdlet [Edit-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html). En este ejemplo se eliminan los permisos de inicialización para la AMI especificada de la organización especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType remove `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para dejar de compartir una AMI con todas las organizaciones, unidades organizativas y Cuentas de AWS**  
Utilice el cmdlet [Reset-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Reset-EC2ImageAttribute.html). En este ejemplo se eliminan todos los permisos de inicialización públicos y explícitos de la AMI especificada. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute LaunchPermission
```

------

# Compartir una AMI con cuentas de AWS específicas
<a name="sharingamis-explicit"></a>

Puede compartir una AMI con Cuentas de AWS específicas sin hacerla pública. Lo único que necesita es las ID de Cuenta de AWS.

Un identificador de Cuenta de AWS es un número de 12 dígitos, por ejemplo `012345678901`, que identifica de forma única a una Cuenta de AWS. Para obtener más información, consulte [Ver identificadores de la Cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html) en la *Guía de referencia de AWS Account Management*.



## Consideraciones
<a name="considerations-for-sharing-AMI-with-accounts"></a>

Tenga en cuenta lo siguiente al compartir AMI con Cuentas de AWS específicas.
+ **Propiedad**: para compartir una AMI, su Cuenta de AWS debe ser la propietaria de esta.
+ **Límites del uso compartido**: para conocer el número máximo de entidades con las que se puede compartir una AMI dentro de una región, consulte [Amazon EC2 service quotas](https://docs.aws.amazon.com//general/latest/gr/ec2-service.html#limits_ec2).
+ **Etiquetas**: no puede compartir etiquetas definidas por el usuario (etiquetas que se adjuntan a una AMI). Al compartir una AMI, las etiquetas definidas por el usuario no están disponibles para ninguna de las personas de las Cuenta de AWS que comparten la AMI.
+ **Instantáneas**: no es necesario compartir las instantáneas de Amazon EBS a las que hace referencia una AMI para compartir dicha AMI. Solo puede compartir la AMI en sí; el sistema proporciona a la instancia acceso a las instantáneas de EBS referenciadas para el lanzamiento. Sin embargo, debe compartir cualquier clave KMS utilizada para cifrar las instantáneas a las que hace referencia una AMI. Para obtener más información, consulte [Compartir una instantánea de Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) en la *Guía del usuario de Amazon EBS*.
+ **Cifrado y claves**: puede compartir AMI que cuentan con el respaldo de instantáneas sin cifrar y cifradas.
  + Las instantáneas cifradas deben estar cifradas con una clave de KMS. No pueden compartir las AMI que están respaldadas por instantáneas cifradas con la clave predeterminada administrada por AWS.
  + Si comparte una AMI respaldada por instantáneas cifradas, debe permitir que las Cuentas de AWS utilicen las claves administradas por el cliente que se utilizaron para cifrar las instantáneas. Para obtener más información, consulte [Permitir que las organizaciones y unidades organizativas utilicen una clave de KMS](allow-org-ou-to-use-key.md). Para configurar la política de claves que necesita para iniciar instancias de Auto Scaling cuando utiliza una clave administrada por el cliente para el cifrado, consulte [Política requerida AWS KMS key para usar con volúmenes cifrados](https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*. 
+ **Región**: las AMI son un recurso regional. Cuando comparte una AMI, solo estará disponible en esa región. Para hacer que una AMI esté disponible en una región distinta, copie la AMI en dicha región y, a continuación, compártala. Para obtener más información, consulte [Copia de una AMI de Amazon EC2](CopyingAMIs.md).
+ **Uso**: cuando comparte una AMI, los usuarios solo pueden iniciar instancias desde la AMI. No pueden eliminarla, compartirla ni modificarla. Sin embargo, después de iniciar una instancia mediante la AMI, pueden crear una AMI a partir de esa instancia.
+ **Copiar AMI compartidas**: si los usuarios de otra cuenta desean copiar una AMI compartida, debe otorgar permisos de lectura para el almacenamiento que respalda la AMI. Para obtener más información, consulte [Copias entre cuentas](how-ami-copy-works.md#copy-ami-across-accounts).
+ **Facturación**: no se factura cuando otras Cuentas de AWS utilizan la AMI para iniciar instancias. Las cuentas que inician instancias mediante la AMI serán facturadas por las instancias iniciadas.

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

**Para conceder permisos de inicialización explícitos**

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 la AMI en la lista y, a continuación, elija **Actions** (Acciones), **Edit AMI permissions** (Editar permisos de la AMI).

1. Seleccione **Privado**.

1. En **Cuentas compartidas**, elija **Agregar ID de cuenta**.

1. En **ID de la Cuenta de AWS**, ingrese el ID de la Cuenta de AWS con la que desea compartir la AMI y, a continuación, elija **Compartir AMI**.

   Para compartir esta AMI con varias cuentas, repita los pasos 5 y 6 hasta que haya agregado todos los ID de cuenta necesarios.

1. Cuando haya terminado, elija **Guardar cambios**.

1. (Opcional) Para ver los ID de la Cuenta de AWS con los que ha compartido la AMI, seleccione la AMI en la lista y elija la pestaña **Permisos**. Para encontrar las AMI compartidas con usted, consulte [Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2](usingsharedamis-finding.md).

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

Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) para compartir una AMI tal y como se muestra en los siguientes ejemplos.

**Para conceder permisos de inicialización explícitos**  
En el siguiente ejemplo se conceden los permisos de inicialización para la AMI especificada a la Cuenta de AWS especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{UserId=123456789012}]"
```

**Para eliminar permisos de inicialización para una cuenta**  
En el siguiente ejemplo se eliminan los permisos de inicialización para la AMI especificada de la Cuenta de AWS especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Remove=[{UserId=123456789012}]"
```

**Para eliminar todos los permisos de inicialización**  
En el siguiente ejemplo se eliminan todos los permisos de inicialización públicos y explícitos de la AMI especificada. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

```
aws ec2 reset-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

------
#### [ PowerShell ]

Utilice el comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) (Herramientas para Windows PowerShell) para compartir una AMI tal y como se muestra en los siguientes ejemplos.

**Para conceder permisos de inicialización explícitos**  
En el siguiente ejemplo se conceden los permisos de inicialización para la AMI especificada a la Cuenta de AWS especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 ` 
    -Attribute launchPermission `
    -OperationType add `
    -UserId "123456789012"
```

**Para eliminar permisos de inicialización para una cuenta**  
En el siguiente ejemplo se eliminan los permisos de inicialización para la AMI especificada de la Cuenta de AWS especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission -OperationType remove `
    -UserId "123456789012"
```

**Para eliminar todos los permisos de inicialización**  
En el siguiente ejemplo se eliminan todos los permisos de inicialización públicos y explícitos de la AMI especificada. Tenga en cuenta que el propietario de la AMI siempre tiene permisos de inicialización, por lo que este comando no le afecta.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

# Cancelar que se comparta una AMI con su Cuenta de AWS
<a name="cancel-sharing-an-AMI"></a>

Se puede [compartir una imagen de máquina de Amazon (AMI) con Cuentas de AWS específicas](sharingamis-explicit.md) si agrega las cuentas a los permisos de inicialización de la AMI. Si se ha compartido una AMI con su Cuenta de AWS y ya no desea que sea así, puede eliminar la cuenta de los permisos de inicialización de la AMI. Para hacerlo, ejecute el comando `cancel-image-launch-permission` de la AWS CLI. Al ejecutar este comando, la Cuenta de AWS se elimina de los permisos de inicialización de la AMI especificada. Para encontrar las AMI compartidas con su Cuenta de AWS, consulte [Búsqueda de AMI compartidas para utilizarlas en las instancias de Amazon EC2](usingsharedamis-finding.md).

Puede cancelar que se comparta una AMI con la cuenta, por ejemplo, para reducir la probabilidad de iniciar una instancia con una AMI obsoleta o en desuso que se compartió con usted. Cuando cancele que se comparta una AMI con la cuenta, ya no aparecerá en ninguna lista de AMI de la consola de EC2 ni en la salida de [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

**Topics**
+ [Limitaciones](#cancel-sharing-an-AMI-limitations)
+ [Cancelar que se comparta una AMI con su cuenta](#cancel-image-launch-permission)

## Limitaciones
<a name="cancel-sharing-an-AMI-limitations"></a>
+ Puede eliminar la cuenta de los permisos de lanzamiento de una AMI compartida solo con su Cuenta de AWS. No puede usar `cancel-image-launch-permission` para eliminar la cuenta de los permisos de lanzamiento de una [AMI compartida con una organización o unidad organizativa](share-amis-with-organizations-and-OUs.md) ni para eliminar el acceso a las AMI públicas.
+ No puede eliminar permanentemente su cuenta de los permisos de inicialización de una AMI. El propietario de una AMI puede volver a compartirla con su cuenta.
+ Las AMI son un recurso regional. Al ejecutar `cancel-image-launch-permission`, debe especificar la región en la que se encuentra la AMI. Para especificar una región predeterminada en el comando, utilice la [variable de entorno](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) AWS\$1DEFAULT\$1REGION.
+ Solo la AWS CLI y los SDK admiten que se elimine la cuenta de los permisos de inicialización de una AMI. Actualmente, la consola de EC2 no admite esta acción.

## Cancelar que se comparta una AMI con su cuenta
<a name="cancel-image-launch-permission"></a>

**nota**  
Después de cancelar que se comparta una AMI con la cuenta, no podrá deshacer la acción. Para recuperar el acceso a la AMI, el propietario de esta debe compartirla con su cuenta.

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

**Para cancelar el uso compartido de una AMI con su cuenta**  
Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-image-launch-permission.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-image-launch-permission.html).

```
aws ec2 cancel-image-launch-permission \
    --image-id ami-0abcdef1234567890 \
    --region us-east-1
```

------
#### [ PowerShell ]

**Para cancelar el uso compartido de una AMI con su cuenta**  
Utilice el cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/index.html](https://docs.aws.amazon.com/powershell/latest/reference/index.html).

```
Stop-EC2ImageLaunchPermission `
    -ImageId ami-0abcdef1234567890 `
    -Region us-east-1
```

------

# Recomendaciones para crear AMI compartidas de Linux
<a name="building-shared-amis"></a>

Utilice las siguientes directrices para reducir la superficie de ataque y mejorar la fiabilidad de las AMI que cree.

**importante**  
Ninguna lista de directrices de seguridad es exhaustiva. Cree sus AMI compartidas con precaución y piense bien en qué casos podría estar exponiendo información confidencial.

**Topics**
+ [Deshabilitación de los inicios de sesión remotos mediante contraseña para el usuario raíz](#public-amis-disable-password-logins-for-root)
+ [Deshabilitar el acceso local de la raíz](#restrict-root-access)
+ [Eliminar los pares de claves del host SSH](#remove-ssh-host-key-pairs)
+ [Instalar credenciales de clave pública](#public-amis-install-credentials)
+ [Desactivación de la verificación de DNS de sshd (opcional)](#public-amis-disable-ssh-dns-lookups)
+ [Eliminación de datos confidenciales](#public-amis-protect-yourself)

Si crea la AMI para AWS Marketplace, consulte [Prácticas recomendadas para crear AMI](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html) en la *Guía del vendedor de AWS Marketplace* en lo que respecta a directrices, políticas y prácticas recomendadas.

## Deshabilitación de los inicios de sesión remotos mediante contraseña para el usuario raíz
<a name="public-amis-disable-password-logins-for-root"></a>

El uso de una contraseña raíz fija para una AMI pública supone un riesgo para la seguridad que puede darse a conocer rápidamente. Incluso pedir a los usuarios que cambien la contraseña tras el primer inicio de sesión abre la puerta a un potencial abuso. 

Para solucionar este problema, deshabilite los inicios de sesión remotos mediante contraseña para el usuario raíz.

**Deshabilitar los inicios de sesión remotos mediante contraseña para el usuario raíz**

1. Abra el archivo `/etc/ssh/sshd_config` con un editor de texto y localice la siguiente línea:

   ```
   #PermitRootLogin yes
   ```

1. Cambie la línea a:

   ```
   PermitRootLogin without-password
   ```

   La ubicación de este archivo de configuración podría diferir para su distribución o si no está ejecutando OpenSSH. En ese caso, consulte la documentación pertinente. 

## Deshabilitar el acceso local de la raíz
<a name="restrict-root-access"></a>

Cuando trabaja con AMI compartidas, es una práctica recomendada deshabilitar los inicios de sesión directos de la raíz. Para ello, inicie sesión en la instancia en ejecución e introduzca el siguiente comando:

```
[ec2-user ~]$ sudo passwd -l root
```

**nota**  
Este comando no afecta al uso de `sudo`.

## Eliminar los pares de claves del host SSH
<a name="remove-ssh-host-key-pairs"></a>

 Si tiene previsto compartir una AMI derivada de una AMI pública, elimine los pares de claves del host de SSH existentes ubicados en `/etc/ssh`. Esto obliga a SSH a generar nuevos pares de claves de SSH únicos cuando alguien inicia una instancia usando la AMI, lo que mejora la seguridad y reduce la probabilidad de ataques "man-in-the-middle" (MITM). 

Elimine los siguientes archivos de claves presentes en el sistema.
+  ssh\$1host\$1dsa\$1key 
+  ssh\$1host\$1dsa\$1key.pub 
+  ssh\$1host\$1key 
+  ssh\$1host\$1key.pub 
+  ssh\$1host\$1rsa\$1key 
+  ssh\$1host\$1rsa\$1key.pub 
+ ssh\$1host\$1ecdsa\$1key
+ ssh\$1host\$1ecdsa\$1key.pub
+ ssh\$1host\$1ed25519\$1key
+ ssh\$1host\$1ed25519\$1key.pub

Puede eliminar de forma segura todos esos archivos con el comando siguiente.

```
[ec2-user ~]$ sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub
```

**aviso**  
Los servicios de eliminación segura, como **shred**, podrían no eliminar todas las copias de un archivo del medio de almacenamiento. Los sistemas de archivos de registro en diario (incluidos Amazon Linux default ext4), las instantáneas, las copias de seguridad, los RAID y el almacenamiento temporal en caché podrían crear copias ocultas de archivos. Para obtener más información, consulte la [documentación de shred](https://www.gnu.org/software/coreutils/manual/html_node/shred-invocation.html).

**importante**  
Si olvida eliminar los pares de claves del host de SSH existentes de la AMI pública, nuestro proceso de auditoría rutinario le notifica a usted y a todos los clientes que ejecuten instancias de la AMI acerca del posible riesgo para la seguridad. Tras un breve periodo de gracia, marcamos la AMI como privada. 

## Instalar credenciales de clave pública
<a name="public-amis-install-credentials"></a>

Tras configurar la AMI para evitar el inicio de sesión mediante contraseña, debe asegurarse de que los usuarios pueden iniciar sesión utilizando otro mecanismo. 

Amazon EC2 permite a los usuarios especificar un nombre de par de claves pública y privada para iniciar la instancia. Cuando se proporciona un nombre de par de claves válido durante la llamada a la API `RunInstances` (o a través de las herramientas de la API de la línea de comandos), la clave pública (la parte del par de claves que Amazon EC2 conserva en el servidor tras llamar a `CreateKeyPair` o a `ImportKeyPair`) se pone a disposición de la instancia a través de una consulta HTTP a los metadatos de dicha instancia. 

Para iniciar sesión mediante SSH, la AMI debe recuperar el valor de la clave al arrancar y adjuntarlo a `/root/.ssh/authorized_keys` (o el equivalente para cualquier otra cuenta de usuario de la AMI). Los usuarios pueden iniciar instancias de la AMI con un par de claves e iniciar sesión sin necesidad de una contraseña raíz. 

Muchas distribuciones, como Amazon Linux y Ubuntu, usan el paquete `cloud-init` para introducir credenciales de clave pública para un usuario configurado. Si su distribución no admite `cloud-init`, puede añadir el siguiente código a un script de arranque del sistema (como `/etc/rc.local`) para obtener la clave pública que especificó durante la inicialización para el usuario raíz.

**nota**  
En el ejemplo siguiente, la dirección IP http://169.254.169.254/ es una dirección local del vínculo y solo es válida desde la instancia.

------
#### [ IMDSv2 ]

```
if [ ! -d /root/.ssh ] ; then
        mkdir -p /root/.ssh
        chmod 700 /root/.ssh
fi
# Fetch public key using HTTP
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-key
if [ $? -eq 0 ] ; then
        cat /tmp/my-key >> /root/.ssh/authorized_keys
        chmod 700 /root/.ssh/authorized_keys
        rm /tmp/my-key
fi
```

------
#### [ IMDSv1 ]

```
if [ ! -d /root/.ssh ] ; then
        mkdir -p /root/.ssh
        chmod 700 /root/.ssh
fi
# Fetch public key using HTTP
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-key
if [ $? -eq 0 ] ; then
        cat /tmp/my-key >> /root/.ssh/authorized_keys
        chmod 700 /root/.ssh/authorized_keys
        rm /tmp/my-key
fi
```

------

 Esto se puede aplicar a cualquier usuario; no es necesario restringirlo al usuario `root`.

**nota**  
La reagrupación de una instancia basada en esta AMI incluye la clave con la que se lanzó. Para evitar que se incluya esta clave, debe borrar (o eliminar) el archivo `authorized_keys` o excluirlo de la reagrupación. 

## Desactivación de la verificación de DNS de sshd (opcional)
<a name="public-amis-disable-ssh-dns-lookups"></a>

Deshabilitar la verificación de DNS de sshd debilita ligeramente la seguridad sshd. No obstante, si la resolución de DNS falla, los inicios de sesión SSH siguen funcionando. Si no deshabilita la verificación de sshd, los errores de resolución de DNS impedirán cualquier inicio de sesión. 

**Para deshabilitar la verificación de DNS de sshd**

1. Abra el archivo `/etc/ssh/sshd_config` con un editor de texto y localice la siguiente línea:

   ```
   #UseDNS yes
   ```

1. Cambie la línea a: 

   ```
   UseDNS no
   ```

**nota**  
La ubicación de este archivo de configuración puede diferir para su distribución o si no está ejecutando OpenSSH. En ese caso, consulte la documentación pertinente. 

## Eliminación de datos confidenciales
<a name="public-amis-protect-yourself"></a>

Desaconsejamos el almacenamiento de información confidencial o software en cualquier AMI que comparta. Los usuarios que lancen una AMI compartida podrían reagruparla y registrarla como propia. Siga estas directrices para ayudarlo a evitar ciertos riesgos para la seguridad que suelen pasarse por alto. 
+ Le recomendamos que utilice la opción `--exclude directory` en `ec2-bundle-vol` para omitir cualquier directorio y subdirectorio que contenga información secreta que no desearía incluir en el paquete. En particular, excluya todos los pares de claves pública y privada SSH propiedad de los usuarios y los archivos SSH `authorized_keys` cuando realice la agrupación de la imagen. Las AMI públicas de Amazon los almacenan en `/root/.ssh` para el usuario raíz y en `/home/user_name/.ssh/` para usuarios normales. Para obtener más información, consulte [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol).
+ Elimine siempre el historial del shell antes de realizar la agrupación. Si intenta cargar más de una agrupación en la misma AMI, el historial del shell contiene la clave de acceso. El siguiente ejemplo debería ser el último comando que ejecute antes de realizar la agrupación desde la instancia.

  ```
  [ec2-user ~]$ shred -u ~/.*history
  ```
**aviso**  
Las limitaciones de **shred** descritas en la advertencia anterior también son aplicables aquí.   
Tenga en cuenta que bash escribe el historial de la sesión actual en el disco al salir. Si cierra sesión en la instancia después de eliminar `~/.bash_history` y, a continuación, vuelve a iniciar sesión, verá que `~/.bash_history` se ha vuelto a crear y que contiene todos los comandos que ejecutó durante la sesión anterior.  
Además de bash, otros programas también escriben el historial en el disco. Tenga precaución y elimine o excluya los dot-files y dot-directories que no sean necesarios.
+ La agrupación de una instancia en ejecución requiere la clave privada y el certificado X.509. Guarde estas y otras credenciales en un lugar que no forme parte de la agrupación (como, por ejemplo, el almacén de instancias).

# Supervisión de los eventos de las AMI con Amazon EventBridge
<a name="monitor-ami-events"></a>

Cuando cambia el estado de una imagen de máquina de Amazon (AMI), Amazon EC2 genera un evento que se envía a Amazon EventBridge (antes conocido como Eventos de Amazon CloudWatch). Los eventos se envían al bus de eventos en EventBridge en formato JSON de manera predeterminada. Puede utilizar Amazon EventBridge para detectar y reaccionar a estos eventos. Para ello, cree reglas en EventBridge que activen una acción como respuesta a un evento. Por ejemplo, puede crear una regla de EventBridge que detecte cuándo se ha completado el proceso de creación de la AMI y, a continuación, invoque un tema de Amazon SNS para que envíe una notificación por email.

Amazon EC2 genera un evento de `EC2 AMI State Change` cuando una AMI entra en alguno de los siguientes estados:
+ `available`
+ `failed`
+ `deregistered`
+ `disabled`

Los eventos se envían en la medida de lo posible.

En la siguiente tabla se enumeran las operaciones de la AMI y los estados que puede adoptar una AMI. En la tabla, **Sí** indica los estados que la AMI puede adoptar cuando se ejecuta la operación correspondiente.


| Operaciones de AMI | available | failed | deregistered | disabled | 
| --- | --- | --- | --- | --- | 
| CopyImage | Sí | Sí |  |  | 
|  CreateImage  |  Sí  |  Sí  |  |  | 
|  CreateRestoreImageTask  | Sí | Sí |  |  | 
| DeregisterImage |  |  |  Sí  |  | 
|  DisableImage  |  |  |  |  Sí  | 
|  EnableImage  |  Sí  |  |  |  | 
| RegisterImage | Sí | Sí |  |  | 

**EC2 AMI State ChangeEventos de **
+ [Detalles del evento](#ami-events)
+ [availableEventos de](#ami-event-available)
+ [failedEventos de](#ami-event-failed)
+ [deregisteredEventos de](#ami-event-deregistered)
+ [disabledEventos de](#ami-event-disabled)

## Detalles del evento
<a name="ami-events"></a>

Puede utilizar los siguientes campos del evento para crear reglas que desencadenen una acción:

`"source": "aws.ec2"`  
Identifica que el evento es de Amazon EC2.

`"detail-type": "EC2 AMI State Change"`  
Identifica el nombre del evento.

`"detail": { "ImageId": "ami-0abcdef1234567890", "State": "available", }`  
Proporciona el identificador de la AMI y el estado de la AMI (`available`, `failed`, `deregistered` o `disabled`).

Para obtener más información, consulte lo siguiente en la *Guía del usuario de Amazon EventBridge*:
+ [Eventos de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)
+ [Patrones de eventos Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [Reglas de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)

Para ver un tutorial acerca de cómo crear una función de Lambda y una regla de EventBridge que ejecute la función de Lambda, consulte [Tutorial: Log the state of an Amazon EC2 instance using EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html) en la *Guía para desarrolladores de AWS Lambda*.

## availableEventos de
<a name="ami-event-available"></a>

A continuación, se muestra un ejemplo de un evento que Amazon EC2 genera cuando la AMI adopta el estado `available` tras una operación `CreateImage`, `CopyImage`, `RegisterImage`, `CreateRestoreImageTask` o `EnableImage` correcta.

`"State": "available"` indica que la operación se ha realizado correctamente.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "available",
        "ErrorMessage": ""
    }
}
```

## failedEventos de
<a name="ami-event-failed"></a>

A continuación, se muestra un ejemplo de un evento que Amazon EC2 genera cuando la AMI adopta el estado `failed` tras una operación `CreateImage`, `CopyImage`, `RegisterImage`, `CreateRestoreImageTask` con errores.

En los campos siguientes, se muestra información pertinente:
+ `"State": "failed"` indica que se ha producido un error en una operación.
+ `"ErrorMessage": ""`: proporciona el motivo de la operación fallida.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "failed",
        "ErrorMessage": "Description of failure"
    }
}
```

## deregisteredEventos de
<a name="ami-event-deregistered"></a>

A continuación, se muestra un ejemplo de un evento que Amazon EC2 genera cuando la AMI adopta el estado `deregistered` tras una operación `DeregisterImage` correcta. Si la operación falla, no se genera ningún evento. Cualquier error se conoce inmediatamente porque `DeregisterImage` es una operación sincrónica.

`"State": "deregistered"` indica que la operación `DeregisterImage` se ha realizado correctamente.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "deregistered",
        "ErrorMessage": ""
    }
}
```

## disabledEventos de
<a name="ami-event-disabled"></a>

A continuación, se muestra un ejemplo de un evento que Amazon EC2 genera cuando la AMI adopta el estado `disabled` tras una operación `DisableImage` correcta. Si la operación falla, no se genera ningún evento. Cualquier error se conoce inmediatamente porque `DisableImage` es una operación sincrónica.

`"State": "disabled"` indica que la operación `DisableImage` se ha realizado correctamente.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "disabled",
        "ErrorMessage": ""
    }
}
```

# Comprender la información de facturación de la AMI
<a name="ami-billing-info"></a>

Hay muchas Imágenes de máquina de Amazon (AMI) entre las que elegir al iniciar las instancias y son compatibles con una variedad de plataformas y características del sistema operativo. Para comprender cómo la AMI que elija cuando lance la instancia afecta los resultados de su factura de AWS, puede investigar la plataforma del sistema operativo asociada y la información de facturación. Haga esto antes de iniciar cualquier instancia bajo demanda o instancias de spot, o antes de comprar una instancia reservada.

Estos son dos ejemplos de cómo puede ayudarlo investigar su AMI con anticipación para elegir la AMI que mejor se adapte a sus necesidades:
+ Para instancias de spot, puede utilizar los **detalles de la plataforma** de la AMI para confirmar que esta es compatible con instancias de spot.
+ Al comprar una instancia reservada, puede asegurarse de seleccionar la plataforma del sistema operativo (**Plataforma**) que se asigna a los **detalles de la plataforma** de la AMI.

Para obtener más información acerca de los precios de las instancias, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/).

**Topics**
+ [Campos de información de facturación de las AMI](billing-info-fields.md)
+ [Encontrar detalles de facturación y uso de la AMI](view-billing-info.md)
+ [Verifique los cargos de la AMI en su factura](verify-ami-charges.md)

# Campos de información de facturación de las AMI
<a name="billing-info-fields"></a>

Los siguientes campos proporcionan información de facturación asociada a una AMI:

Detalles de la plataforma  
 Los detalles de la plataforma asociados con el código de facturación de la AMI. Por ejemplo, `Red Hat Enterprise Linux`.

Operación de uso  
El funcionamiento de la instancia de Amazon EC2 y el código de facturación asociado a la AMI. Por ejemplo, `RunInstances:0010`. La **operación de uso** se corresponde con el contenido de la columna [lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation) de su AWS Informe de uso y costo (CUR) y de la[ API de lista de precios de AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html).

Puede ver estos campos en la página **instancias** o **AMI** en la consola de Amazon EC2, o en la respuesta que devuelve el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) o [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

## Datos de ejemplo: operación de uso por plataforma
<a name="billing-info"></a>

La siguiente tabla enumera algunos de los detalles de la plataforma y los valores de operación de uso que se pueden mostrar en las páginas **instancias** o **AMI** en la consola de Amazon EC2, o en la respuesta que devuelve el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) o [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).


| Detalles de la plataforma | Operación de uso 2 | 
| --- | --- | 
|  Linux/UNIX  |  RunInstances  | 
|  Red Hat BYOL Linux  |  RunInstances:00g0 3  | 
|  Red Hat Enterprise Linux  |  RunInstances:0010  | 
|  Red Hat Enterprise Linux with HA  |  RunInstances:1010  | 
|  Red Hat Enterprise Linux with SQL Server Standard and HA  |  RunInstances:1014  | 
|  Red Hat Enterprise Linux with SQL Server Enterprise and HA  |  RunInstances:1110  | 
|  Red Hat Enterprise Linux with SQL Server Standard  |  RunInstances:0014  | 
|  Red Hat Enterprise Linux with SQL Server Web  |  RunInstances:0210  | 
|  Red Hat Enterprise Linux with SQL Server Enterprise  |  RunInstances:0110  | 
|  SQL Server Enterprise  |  RunInstances:0100  | 
|  SQL Server Standard  |  RunInstances:0004  | 
|  SQL Server Web  |  RunInstances:0200  | 
|  SUSE Linux  |  RunInstances:000g  | 
| Ubuntu Pro |  RunInstances:0g00  | 
|  Windows  |  RunInstances:0002  | 
|  Windows BYOL  |  RunInstances:0800  | 
|  Windows with SQL Server Enterprise 1  |  RunInstances:0102  | 
|  Windows with SQL Server Standard 1  |  RunInstances:0006  | 
|  Windows with SQL Server Web 1  |  RunInstances:0202  | 

1 Si hay dos licencias de software asociadas a una AMI, el campo **Detalles de la plataforma** muestra ambas.

2 Si está ejecutando instancias de spot, el [https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation) que aparece en su Informe de costos y uso de AWS puede ser diferente del valor de la **operación de uso** que aparece aquí. Por ejemplo, si `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)` muestra `RunInstances:0010:SV006`, significa que Amazon EC2 está ejecutando una instancia de spot Red Hat Enterprise Linux por horas en el Este de EE. UU. (Norte de Virginia) en la Zona 6.

3 Aparece como RunInstances (Linux/UNIX) en sus informes de uso.

# Encontrar detalles de facturación y uso de la AMI
<a name="view-billing-info"></a>

Las siguientes propiedades pueden ayudarlo a verificar los cargos de la AMI en su factura:
+ **Detalles de la plataforma**
+ **Operación de uso**
+ **ID DE AMI**

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

**Para buscar la información de facturación de la AMI para una AMI**

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 la AMI.

1. En la pestaña **Detalles**, busque **Detalles de la plataforma** y **Operación de uso**.

**Para buscar la información de facturación de la AMI para una instancia**

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 **Instances (Instancias)**.

1. Seleccione la instancia.

1. En la pestaña **Detalles**, expanda **Detalles de la instancia** y busque **Detalles de la plataforma** y **Operación de uso**.

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

**Para buscar la información de facturación de la AMI para una AMI**  
Utilice el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) .

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query "Images[].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"
```

En el siguiente ejemplo se muestra el resultado para una AMI de Linux.

```
[
    {
        "PlatformDetails": "Linux/UNIX",
        "UsageOperation": "RunInstances"
    }
]
```

**Para buscar la información de facturación de la AMI para una instancia**  
Utilice el comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[].Instances[].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"
```

En el siguiente ejemplo se muestra un resultado para una instancia de Windows.

```
[
    {
        "PlatformDetails": "Windows",
        "UsageOperation": "RunInstances:0002"
    }
]
```

------
#### [ PowerShell ]

**Para buscar la información de facturación de la AMI para una AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | `
    Format-List PlatformDetails, UsageOperation
```

En el siguiente ejemplo se muestra el resultado para una AMI de Linux.

```
PlatformDetails : Linux/UNIX
UsageOperation  : RunInstances
```

**Para buscar la información de facturación de la AMI para una instancia**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances | `
    Format-List PlatformDetails, UsageOperation
```

En el siguiente ejemplo se muestra un resultado para una instancia de Windows.

```
PlatformDetails : Windows
UsageOperation  : RunInstances:0002
```

------

# Verifique los cargos de la AMI en su factura
<a name="verify-ami-charges"></a>

Para garantizar que no incurra en costos imprevistos, puede verificar que la información de facturación de una instancia en su Informe de uso y costo de AWS (CUR) coincida con la información de facturación asociada a la AMI que utilizó para iniciar la instancia.

Para verificar la información de facturación, busque el ID de la instancia en el CUR y compruebe el valor correspondiente en la columna `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)`. El valor debe coincidir con el valor de la **Operación de uso** asociada a la AMI.

Por ejemplo, la AMI `ami-0123456789EXAMPLE` tiene la siguiente información de facturación:
+ **Detalles de la plataforma** = `Red Hat Enterprise Linux`
+ **Operación de uso** = `RunInstances:0010`

Si ha iniciado una instancia con esta AMI, puede encontrar el ID de instancia en su CUR y verificar el valor correspondiente en la columna `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)`. En este ejemplo, el valor debería ser `RunInstances:0010`.

# Cuotas de AMI en Amazon EC2
<a name="ami-quotas"></a>

Las siguientes cuotas se aplican a la creación y el uso compartido de AMI. Las cuotas se aplican por Región de AWS.


****  

| Nombre de la cuota | Descripción | Cuota predeterminada por región | 
| --- | --- | --- | 
| AMI | El número máximo de AMI públicas y privadas permitido por región. Esto incluye las AMI disponibles, pendientes y deshabilitadas, así como las AMI de la Papelera de reciclaje. | 50 000 | 
| AMI públicas | El número máximo de AMI públicas, incluidas las de la papelera de reciclaje, permitido por región. | 5 | 
| Uso compartido de AMI | La cantidad máxima de entidades (organizaciones, unidades organizativas [OU] y cuentas) con las que se puede compartir una AMI en una región. Tenga en cuenta que, si comparte una AMI con una organización o una unidad organizativa, el número de cuentas en cualquiera de estas últimas no se tendrá en cuenta para la cuota. | 1 000 | 

Si supera sus cuotas y quiere crear o compartir más AMI, puede hacer lo siguiente:
+ Si supera la cuota total de AMI o AMI públicas, considere la posibilidad de anular el registro de las imágenes no utilizadas.
+ Si supera la cuota de AMI públicas, considere la posibilidad de convertir una o más AMI en privadas.
+ Si supera la cuota de uso compartido de AMI, considere la posibilidad de compartir las AMI con una organización o unidad organizativa en lugar de con cuentas independientes.
+ Solicite un aumento de cuota de las AMI.

## Solicitud de un aumento de cuota de las AMI
<a name="request-ami-quota-increase"></a>

Si necesita incrementar la cuota predeterminada de AMI, puede solicitar un aumento.

**Para solicitar un aumento de cuota de las AMI**

1. Abra la consola de Service Quotas en [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

1. En el panel de navegación, elija **Servicios de AWS**.

1. Elija **Amazon Elastic Compute Cloud (Amazon EC2)** en la lista o escriba el nombre del servicio en el cuadro de búsqueda.

1. Elija la cuota de AMI para solicitar un aumento. Las cuotas de AMI que puede seleccionar son:
   + AMI
   + AMI públicas
   + Uso compartido de AMI

1. Elija **Solicitar aumento de cuota**.

1. En **Cambiar el valor de la cuota**, ingrese el nuevo valor y, a continuación, seleccione **Solicitar**.

Para ver las solicitudes pendientes o resueltas recientemente, elija **Panel** en el panel de navegación. Para las solicitudes pendientes, seleccione el estado de la solicitud para abrir la recepción de solicitud. El estado inicial de una solicitud es **Pendiente**. Cuando el estado cambie a **Cuota solicitada**, verá el número de caso en **Número de caso del Centro de soporte**. Elija el número de caso para abrir el ticket para su solicitud.

Una vez resuelta la solicitud, **Valor de cuota aplicada** para la cuota se establece en el nuevo valor.

Para obtener más información, consulte la [Guía del usuario de Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).