

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Firmar imágenes en Amazon ECR
<a name="image-signing"></a>

Amazon ECR se integra AWS Signer para proporcionarle dos formas de firmar las imágenes de su contenedor: *firma gestionada* (automática, recomendada) y *firma manual* (del lado del cliente). Puede almacenar tanto las imágenes de contenedor como las firmas en sus repositorios privados.

## Elija un método de firma
<a name="image-signing-choose-method"></a>

Amazon ECR admite dos métodos para firmar imágenes de contenedores:

**Firma gestionada** (recomendada)  
La firma gestionada genera automáticamente firmas criptográficas cuando las imágenes se envían a Amazon ECR. Este método simplifica la configuración. La firma gestionada es el enfoque recomendado para la mayoría de los usuarios. Para obtener más información, consulte [Firma gestionada](managed-signing.md).

**Firma manual**  
La firma manual utiliza la CLI de Notation y el AWS Signer complemento para firmar las imágenes antes de enviarlas a Amazon ECR. Este método proporciona un mayor control sobre el proceso de firma y resulta útil cuando necesita firmar imágenes fuera del flujo de trabajo push o si necesita un control detallado de las operaciones de firma. Para obtener más información, consulte [Firma manual](image-signing-manual.md).

## Consideraciones
<a name="image-signing-considerations"></a>

Al utilizar la firma de imágenes Amazon ECR, se debe tener en cuenta lo siguiente:
+ Las firmas almacenadas en el repositorio se incluyen en la cuota de servicio para el número máximo de imágenes por repositorio. Cada firma cuenta como un artefacto en la cuota de imágenes por repositorio. Para obtener más información, consulte [Cuotas de servicio de Amazon ECR](service-quotas.md).
+ Cuando hay artefactos de referencia en un repositorio, las políticas del ciclo de vida de Amazon ECR los limpiarán automáticamente dentro de un plazo de 24 horas a partir de la eliminación de la imagen en cuestión.

# Firma gestionada
<a name="managed-signing"></a>

La firma gestionada por Amazon ECR firma automáticamente las imágenes del contenedor mediante la generación de firmas criptográficas mediante [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) cuando las imágenes se envían a Amazon ECR. Esto elimina la necesidad de instalar y configurar las herramientas del lado del cliente y le permite gestionar de forma centralizada la firma como una configuración de registro.

## Requisitos previos
<a name="managed-signing-prerequisites"></a>

Para configurar la firma gestionada, debe crear una configuración de firma con Amazon ECR que haga referencia a uno o más perfiles de firma de firmantes y, de forma opcional, a filtros de repositorio que restrinjan qué repositorios deben tener sus imágenes firmadas. Una vez configurada, la firma gestionada por Amazon ECR firma automáticamente las imágenes a medida que se insertan utilizando la identidad de la entidad que envía la imagen.

Para poder configurar la firma gestionada, debe disponer de lo siguiente:
+ **Un perfil de firma de firmante**: cree al menos un perfil de firma de [firmante](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html). Un perfil de firma es un recurso de AWS firmante único que puede utilizar para realizar operaciones de firma en Amazon ECR. Los perfiles de firma le permiten firmar y verificar elementos del código, como imágenes de contenedores y paquetes de AWS Lambda implementación. Cada perfil de firma designa la plataforma de firma en la que se va a firmar, un ID de plataforma y otra información específica de la plataforma. Por ejemplo, un ARN de perfil de firma tiene este aspecto:. `arn:partition:signer:region:account-id:/signing-profiles/profile-name`
+ **Permisos de IAM**: el director de IAM que publica la imagen debe tener los permisos de IAM necesarios para acceder al perfil de firma del firmante correspondiente y al repositorio de ECR correspondiente. Debe modificar la política basada en la identidad del director de IAM para incluir permisos tanto para las operaciones del repositorio de ECR como para las operaciones de firma de los firmantes. El siguiente ejemplo de política muestra los permisos necesarios:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Sid":"UploadSignaturePermissions",
       "Effect":"Allow",
       "Action":[
           "ecr:CompleteLayerUpload",
           "ecr:UploadLayerPart",
           "ecr:InitiateLayerUpload",
           "ecr:BatchCheckLayerAvailability",
           "ecr:PutImage"
       ],
       "Resource":"arn:aws:ecr:region:account-id:repository/repository-name"
   },
   {
       "Sid": "SignPermissions",
       "Effect": "Allow",
       "Action": [
           "signer:SignPayload"
       ],
       "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name"
   }
   ]
}
```

Con la firma gestionada de Amazon ECR, puede crear varias reglas de firma (hasta 10 por registro) para crear límites de seguridad más estrictos. Por ejemplo, puede ejecutar varias canalizaciones de compilación y querer limitar los repositorios que cada canalización puede firmar. Dentro de cada regla, configuras un perfil de firma y especificas los filtros de nombres de los repositorios. Cuando se inserta una imagen nueva, Amazon ECR determina qué regla de firma y perfil de firma pueden firmar la imagen. Si hay varias coincidencias, Amazon ECR genera varias firmas.

**nota**  
Si verifica las firmas manualmente, aún necesita instalar la CLI de notación.

**nota**  
La firma gestionada por Amazon ECR está disponible en todas AWS las regiones en las que está disponible la firma de imágenes de contenedores con AWS Signer.

## Introducción
<a name="managed-signing-getting-started"></a>

Siga estos pasos para configurar la firma gestionada. Usted proporciona a Amazon ECR una referencia a un perfil de firma del firmante y, opcionalmente, filtros que restringen qué repositorios deben tener sus imágenes firmadas.

------
#### [ Consola de administración de AWS ]

Siga los siguientes pasos para configurar la firma gestionada mediante. Consola de administración de AWS

1. Abra la [consola Amazon ECR.](https://console.aws.amazon.com/ecr/private-registry/repositories) En el panel de navegación izquierdo, selecciona **Registro privado**, **Características y configuración y** **Firma gestionada**.

1. En la página de **reglas de firma**, selecciona **Crear regla**.

1. En la página del **perfil de firma**, en **Seleccione un perfil de AWS firmante**, elija **Crear un nuevo perfil de AWS firmante**, introduzca un **nombre de perfil y, si** lo desea, cambie el período de **validez de la firma**. A continuación, seleccione **Siguiente**.

1. En la página **Filtros**, en **Seleccionar repositorios**, introduzca un filtro de nombre de **repositorio**. A continuación, seleccione **Siguiente**.

1. En la página **Revisar y crear**, compruebe los **filtros del **perfil del AWS firmante** y del nombre del repositorio** que ha introducido. Si todo parece correcto, selecciona **Guardar**.

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

Usa los siguientes AWS CLI comandos para configurar la firma gestionada.
+ **Crea una regla de firma**

  Cree una configuración de firma con el ARN de su perfil de firma. Cree un archivo JSON con el siguiente contenido:

  ```
  {
      "rules": [ 
          { 
              "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name",
              "repositoryFilters": [ 
                  { 
                      "filter": "test*",
                      "filterType": "WILDCARD_MATCH"
                  }
              ]
          }
      ]
  }
  ```

  A continuación, ejecute el siguiente comando:

  ```
  aws ecr --region region \
      put-signing-configuration \
      --signing-configuration file://signing-config.json
  ```

  Deberías ver la respuesta de la API que contiene la configuración de firma.
+ **Consulta tu configuración de firma**

  Recupera tu configuración de firma:

  ```
  aws ecr --region region \
      get-signing-configuration
  ```

  Deberías ver la respuesta de la API que contiene la configuración de firma.
+ **Comprueba el estado de firma de la imagen**

  Envía una imagen a tu repositorio. Por ejemplo:

  ```
  docker pull ubuntu
  
  IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name"
  IMAGE_TAG="${IMAGE_NAME}:test-1"
  
  docker tag ubuntu $IMAGE_TAG
  docker push $IMAGE_TAG
  ```

  Después de presionar, usa tu etiqueta de imagen para comprobar el estado de la firma:

  ```
  aws ecr --region region \
      describe-image-signing-status \
      --repository-name repository-name \
      --image-id imageTag=test-1
  ```

  Si el nombre del repositorio coincide con el filtro de repositorio definido en la configuración de firma, deberías ver el estado de firma en la respuesta de la API. Si el estado es correcto, deberías ver una firma insertada en tu repositorio.
+ **Elimine la configuración de firma**

  Elimine la configuración de firma:

  ```
  aws ecr --region region \
      delete-signing-configuration
  ```

  Deberías ver la respuesta de la API que contiene la configuración de firma eliminada.

------

## Consideraciones
<a name="managed-signing-considerations"></a>

Las siguientes limitaciones y capacidades se aplican a la firma gestionada:
+ **No se admite la firma entre regiones**: los perfiles de firma deben estar en la misma región que su registro de Amazon ECR. No puede usar un perfil de firma de una región para firmar imágenes en un registro ubicado en una región diferente.
+ **Se admite la firma multicuenta**: los perfiles de firma pueden estar en cuentas diferentes a las de tu registro de Amazon ECR. Esto permite a las organizaciones gestionar de forma centralizada los perfiles de firma y, al mismo tiempo, permitir que los desarrolladores de otras cuentas los utilicen. Para obtener más información, consulta Cómo [configurar la firma multicuenta para Signer](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profile-cross-account.html) en la Guía para *AWS Signer desarrolladores*.
+ **Las firmas no se pueden firmar**: no se pueden firmar las firmas por sí mismas. Solo se pueden firmar las imágenes del contenedor.

# Verificación de firma
<a name="image-signing-verification"></a>

Después de firmar las imágenes del contenedor, puede comprobar las firmas para asegurarse de que las imágenes no se hayan manipulado y que procedan de una fuente de confianza. Amazon ECR admite varios métodos para verificar las firmas:

## Verificación gestionada con Amazon EKS
<a name="image-signing-verification-managed"></a>

Amazon EKS proporciona una integración nativa para la verificación automática de firmas. Cuando configura la verificación de firmas en sus clústeres de Amazon EKS, el servicio verifica automáticamente las firmas de imagen antes de permitir que se ejecuten los contenedores. Para obtener más información sobre la configuración de la verificación de firmas, consulte [Validar las firmas de imágenes de contenedores durante la implementación](https://docs.aws.amazon.com/eks/latest/userguide/image-verification.html) en la *Guía del usuario de Amazon EKS*.

## Controladora de admisión Lambda para Amazon ECS
<a name="image-signing-verification-lambda"></a>

Amazon ECS proporciona enlaces al ciclo de vida del servicio que le permiten ejecutar una lógica personalizada durante las implementaciones del servicio. Estos enlaces pueden activar AWS Lambda funciones en puntos específicos del proceso de implementación, lo que le permite validar las firmas de imágenes de los contenedores antes de permitir que se inicien los servicios. Para obtener más información, consulte [Verificar las firmas de imagen de contenedores para Amazon ECS](https://docs.aws.amazon.com/signer/latest/developerguide/ecs-verification.html) en la *Guía para AWS Signer desarrolladores*.

## Verificación manual con Notation CLI
<a name="image-signing-verification-manual"></a>

Puede verificar las firmas manualmente mediante la CLI de notación. Este método requiere que instale y configure la CLI de notación en su máquina local o en su entorno de verificación. Para obtener instrucciones detalladas sobre la verificación de una imagen mediante Notation CLI, consulte [Verificar una imagen localmente después de iniciar sesión](https://docs.aws.amazon.com/signer/latest/developerguide/image-verification.html) en la *Guía para AWS Signer desarrolladores*.

## Configure la autenticación para el cliente de Notation
<a name="image-signing-authentication"></a>

Si utiliza la firma manual o verifica las firmas manualmente mediante la CLI de Notation, debe configurar el cliente de Notation para que pueda autenticarse en Amazon ECR. Si tiene Docker instalado en el mismo host en el que instaló el cliente de Notation, Notation reutilizará el mismo método de autenticación que utiliza para el cliente de Docker. El Docker `login` y `logout` los comandos permitirán que Notation `sign` y `verify` los comandos utilicen las mismas credenciales y no tendrá que autenticar Notation por separado. Para obtener más información acerca de la configuración de su cliente de Notation para la autenticación, consulte [Autenticar con registros compatibles con OCI](https://notaryproject.dev/docs/user-guides/how-to/registry-authentication/) en la documentación de Notary Project.

Si no utiliza Docker u otra herramienta que utilice credenciales de Docker, le recomendamos que utilice el Asistente de credenciales de Docker de Amazon ECR como almacén de credenciales. Para obtener más información sobre cómo instalar y configurar el asistente de credenciales de Amazon ECR, consulte el [Asistente de credenciales de Amazon ECR Docker](https://github.com/awslabs/amazon-ecr-credential-helper).

# Firma manual
<a name="image-signing-manual"></a>

La firma manual utiliza la CLI de Notation y el AWS Signer complemento para firmar las imágenes antes de enviarlas a Amazon ECR. Este método proporciona un mayor control sobre el proceso de firma y resulta útil cuando necesita firmar imágenes fuera del flujo de trabajo push o si necesita un control detallado de las operaciones de firma.

Para obtener instrucciones detalladas sobre la firma de imágenes de contenedores mediante la CLI de notación AWS Signer, consulte [Firmar imágenes de contenedores en Signer](https://docs.aws.amazon.com/signer/latest/developerguide/container-workflow.html) y los temas relacionados en la *Guía para AWS Signer desarrolladores*.

## Requisitos previos
<a name="image-signing-prerequisites"></a>

Antes de comenzar, se deben cumplir los siguientes requisitos previos.
+ Instalar y configurar la versión más reciente de la  AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de la  AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) en la *Guía del usuario de AWS Command Line Interface *.
+ Instale la CLI de Notation y el AWS Signer complemento de Notation. Para obtener más información, consulte [Requisitos previos para firmar imágenes de contenedor](https://docs.aws.amazon.com/signer/latest/developerguide/image-signing-prerequisites.html) en la *Guía para desarrolladores de AWS Signer *.
+ Disponer de una imagen de contenedor guardada en un repositorio privado de Amazon ECR para firmarla. Para obtener más información, consulte [Inserción de una imagen en un repositorio privado de Amazon ECR](image-push.md).