

# Uso de marcas de agua de AMI para rastrear e identificar las AMI
<a name="ami-watermark"></a>

Una marca de agua de la AMI es un identificador que se asocia a las AMI privadas para rastrear la procedencia y aplicar las políticas de gobernanza. Las marcas de agua persisten durante todo el ciclo de vida de la AMI:
+ Si crea una nueva AMI a partir de una instancia en ejecución que se lanzó desde una AMI con marca de agua, la nueva AMI hereda la marca de agua.
+ Si copia una AMI con marca de agua, la copia incluirá la marca de agua.
+ Si comparte una AMI con marca de agua con otra cuenta, la marca de agua permanece visible para el destinatario.

**Ventajas principales**
+ Realizar un seguimiento de la procedencia en todas las cuentas y regiones: identifique qué AMI se derivan de sus imágenes base aprobadas.
+ Filtrar y buscar las AMI relacionadas en sus cuentas.
+ Ayudar a los consumidores de AMI a descubrir e identificar las AMI fiables asociadas a un proyecto u organización.
+ Imponga la gobernanza al combinar las marcas de agua con las [AMI permitidas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) para restringir el lanzamiento de instancias solo a las AMI que tengan marcas de agua aprobadas.

**Topics**
+ [Cómo funcionan las marcas de agua de AMI](#ami-watermark-how-it-works)
+ [Permisos necesarios](#ami-watermark-permissions)
+ [Asociación de una marca de agua a una AMI](#ami-watermark-attach)
+ [Desasociar una marca de agua de una AMI](#ami-watermark-detach)
+ [Consultar marcas de agua de AMI](#ami-watermark-view)
+ [Filtrar las AMI por marca de agua](#ami-watermark-filter)

## Cómo funcionan las marcas de agua de AMI
<a name="ami-watermark-how-it-works"></a>

Las marcas de agua de las AMI son identificadores estructurados que se asocian a las AMI. A continuación se describen las características clave de las marcas de agua:
+ **Persistente**: cuando se asocia una marca de agua a una AMI, esta se conserva en todas las AMI derivadas.
+ **Solo para el propietario**: solo el propietario de la AMI puede asociar marcas de agua a una AMI.
+ **Visible para todos**: cualquier persona con acceso a la AMI puede ver sus marcas de agua.
+ **Límite de 5**: una AMI puede tener hasta un total de 5 marcas de agua.
+ **No disponible en AMI públicas**: no se pueden asociar marcas de agua a las AMI públicas ni hacerlas públicas si tienen una marca de agua.
+ **Filtrables**: puede filtrar las AMI por marca de agua cuando utilice `describe-images`.

### Formato de marca de agua
<a name="ami-watermark-format"></a>

Una marca de agua es un objeto estructurado con los siguientes campos:
+ `WatermarkKey`: el identificador único de la marca de agua, compuesto por `{{account-id}}:{{watermark-name}}` La parte de ID de cuenta es el ID de cuenta de 12 dígitos de AWS del propietario de la AMI. La parte del nombre de la marca de agua es un nombre especificado por el cliente.
+ `SourceImageRegion`: la región de la AMI a la que originalmente asoció la marca de agua.
+ `SourceImageId`: la AMI a la que originalmente asoció la marca de agua.
+ `SourceImageCreationDate`: la fecha de creación de la AMI a la que originalmente asoció la marca de agua.
+ `WatermarkCreationTime`: la marca de tiempo del momento en que aplicó la marca de agua.

El nombre de la marca de agua debe tener entre 3 y 128 caracteres y puede contener caracteres alfanuméricos, paréntesis (()), corchetes ([]), espacios, puntos (.), barras diagonales (/), guiones (-), comillas simples ('), arrobas (@) o guiones bajos (\_).

## Permisos necesarios
<a name="ami-watermark-permissions"></a>

Para crear y editar el componente de la aplicación, necesita los siguientes permisos de IAM:
+ `ec2:AttachImageWatermark`: para asociar una marca de agua a una AMI.
+ `ec2:DetachImageWatermark`: para desasociar una marca de agua de una AMI.
+ `ec2:DescribeImages`: para ver las marcas de agua de las AMI.

## Asociación de una marca de agua a una AMI
<a name="ami-watermark-attach"></a>

Puede asociar una marca de agua a una AMI mediante la consola, la AWS CLI o PowerShell.

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

**Asociar una marca de agua a 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**, dentro de la sección **Marcas de agua**, elija **Administrar marcas de agua**.

1. Ingrese un nombre de marca de agua y seleccione **Asociar**.

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

**Asociar una marca de agua a una AMI**  
Utilice el comando [attach-image-watermark](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-image-watermark.html).

```
aws ec2 attach-image-watermark \
    --image-id {{ami-1111111111EXAMPLE}} \
    --image-watermark-name "{{prod-baseline}}"
```

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

```
{
    "WatermarkKey": "123456789012:prod-baseline"
}
```

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

**Asociar una marca de agua a una AMI**  
Utilice el cmdlet [Add-EC2ImageWatermark](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2ImageWatermark.html).

```
Add-EC2ImageWatermark `
    -ImageId {{ami-1111111111EXAMPLE}} `
    -ImageWatermarkName "{{prod-baseline}}"
```

------

Puede asociar hasta 5 marcas de agua a una única AMI.

## Desasociar una marca de agua de una AMI
<a name="ami-watermark-detach"></a>

Puede desasociar una marca de agua de una AMI mediante la consola, AWS CLI o PowerShell.

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

**Desasociar una marca de agua 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. Seleccione la AMI.

1. En la pestaña **Detalles**, dentro de la sección **Marcas de agua**, elija **Administrar marcas de agua**.

1. Seleccione la marca de agua que desea eliminar y, a continuación, seleccione **Eliminar**.

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

**Desasociar una marca de agua de una AMI**  
Utilice el comando [detach-image-watermark](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-image-watermark.html).

```
aws ec2 detach-image-watermark \
    --image-id {{ami-1111111111EXAMPLE}} \
    --image-watermark-key "{{111122223333:prod-baseline}}"
```

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

**Desasociar una marca de agua de una AMI**  
Utilice el cmdlet [Remove-EC2ImageWatermark](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2ImageWatermark.html).

```
Remove-EC2ImageWatermark `
    -ImageId {{ami-1111111111EXAMPLE}} `
    -ImageWatermarkKey "{{111122223333:prod-baseline}}"
```

------

**nota**  
Al desasociar una marca de agua de una AMI, la marca de agua no se elimina de las AMI derivadas que ya la llevan. Para garantizar que las marcas de agua sigan siendo persistentes, conceda el permiso `ec2:DetachImageWatermark` únicamente a administradores de confianza que necesiten administrar marcas de agua.

## Consultar marcas de agua de AMI
<a name="ami-watermark-view"></a>

Puede consultar las marcas de agua de una AMI mediante la consola, la AWS CLI o PowerShell.

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

**Consultar las marcas de agua 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. Seleccione la AMI.

1. Vea las marcas de agua en la sección **Marcas de agua** de la pestaña **Detalles**.

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

**Consultar las marcas de agua de 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-046863d776a820ccd}} \
    --region {{us-east-1}}
```

La respuesta incluye la matriz `ImageWatermarks` de cada AMI.

```
{
    "Images": [
        {
            "ImageId": "ami-046863d776a820ccd",
            "Public": false,
            "OwnerId": "123456789012",
            ...
            "ImageWatermarks": [
                {
                    "WatermarkKey": "111122223333:prod-baseline",
                    "Region": "us-east-1",
                    "SourceImageId": "ami-0b752bf1df193a6c4",
                    "SourceImageCreationDate": "2024-07-10T08:15:00",
                    "CreationDate": "2024-07-12T14:30:00"
                },
                {
                    "WatermarkKey": "222222222222:security-approved",
                    "Region": "eu-north-1",
                    "SourceImageId": "ami-12345678",
                    "SourceImageCreationDate": "2024-06-01T10:00:00",
                    "CreationDate": "2024-06-05T09:45:00"
                }
            ]
        }
    ]
}
```

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

**Consultar las marcas de agua de una AMI**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId {{ami-046863d776a820ccd}}).ImageWatermarks
```

------

## Filtrar las AMI por marca de agua
<a name="ami-watermark-filter"></a>

Puede filtrar las AMI por marcas de agua mediante la consola, la AWS CLI o PowerShell.

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

**Filtrar las AMI por marca de agua**

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 búsqueda, elija el filtro **Clave de marca de agua** e ingrese el valor de la clave de marca de agua.

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

**Filtrar las AMI por marca de agua**  
Use el comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) con el filtro `image-watermark-key`.

```
aws ec2 describe-images \
    --filters "Name=image-watermark-key,Values={{111122223333:prod-baseline}}"
```

Esto devuelve todas las AMI a las que tiene acceso y que llevan la marca de agua especificada, incluidas las AMI derivadas que la heredaron mediante operaciones de copia.

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

**Filtrar las AMI por marca de agua**  
Utilice el cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) con el parámetro `-Filter`.

```
Get-EC2Image `
    -Filter @{Name="image-watermark-key"; Values="{{111122223333:prod-baseline}}"}
```

Esto devuelve todas las AMI a las que tiene acceso y que llevan la marca de agua especificada, incluidas las AMI derivadas que la heredaron mediante operaciones de copia.

------