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.
Cifrado en reposo
importante
Dual-layer cifrado del lado del servidor con AWS KMS (DSSE-KMS) solo está disponible en AWS GovCloud (US) Regiones.
Amazon ECR almacena imágenes en depósitos de Amazon S3 que administra Amazon ECR. De forma predeterminada, Amazon ECR utiliza el cifrado del lado del servidor con Amazon S3-managed claves de cifrado que cifran los datos en reposo mediante un AES-256 algoritmo de cifrado. Esto no requiere ninguna acción por su parte y no conlleva ningún cargo adicional. Para obtener más información, consulte Protección de datos mediante Server-Side Cifrado con Amazon S3-Managed Claves de cifrado (SSE-S3) en el Guía del usuario de Amazon Simple Storage Service.
Para tener más control sobre el cifrado de sus repositorios de Amazon ECR, puede utilizar el cifrado del lado del servidor con las claves de KMS almacenadas en AWS Key Management Service (AWS KMS). Cuando usas AWS KMS para cifrar sus datos, puede utilizar la opción predeterminada Clave administrada de AWS, que administra Amazon ECR, o bien especificar su propia clave de KMS (denominada clave gestionada por el cliente). Para obtener más información, consulte Protección de datos mediante Server-Side Cifrado con claves de KMS almacenadas en AWS KMS (SSE-KMS) en el Guía del usuario de Amazon Simple Storage Service.
Puede optar por aplicar dos capas de cifrado a sus imágenes de Amazon ECR mediante un cifrado de doble capa en el servidor con AWS KMS (DSSE-KMS). DSSE-KMS la opción es similar a SSE-KMS, pero aplica dos capas individuales de cifrado en lugar de una sola. Para obtener más información, consulte Uso del cifrado de doble capa en el servidor con AWS KMS claves (DSSE-KMS).
Cada repositorio de Amazon ECR tiene una configuración de cifrado, que se establece cuando este se crea. En cada repositorio se pueden utilizar diferentes configuraciones de cifrado. Para obtener más información, consulte Creación de un repositorio privado de Amazon ECR para almacenar imágenes.
Cuando se crea un repositorio con AWS KMS el cifrado habilitado, se usa una clave de KMS para cifrar el contenido del repositorio. Además, Amazon ECR añade un AWS KMS conceda la clave de KMS con el repositorio de Amazon ECR como principal beneficiario.
A continuación se proporciona una descripción de alto nivel sobre cómo Amazon ECR se integra con AWS KMS para cifrar y descifrar sus repositorios:
-
Al crear un repositorio, Amazon ECR envía un DescribeKey llame a AWS KMS para validar y recuperar el nombre de recurso de Amazon (ARN) de la clave de KMS especificada en la configuración de cifrado.
-
Amazon ECR envía dos CreateGrant solicitudes a AWS KMS para crear concesiones en la clave de KMS para permitir a Amazon ECR cifrar y descifrar datos mediante la clave de datos.
-
Al insertar una imagen, un GenerateDataKey la solicitud se hace a AWS KMS que especifica la clave de KMS que se utilizará para cifrar la capa de imágenes y el manifiesto.
-
AWS KMS genera una nueva clave de datos, la cifra con la clave KMS especificada y envía la clave de datos cifrada para que se almacene con los metadatos de la capa de imagen y el manifiesto de imágenes.
-
Al extraer una imagen, un Descifrar la solicitud se hace para AWS KMS, especificando la clave de datos cifrada.
-
AWS KMS descifra la clave de datos cifrada y envía la clave de datos descifrada a Amazon S3.
-
La clave de datos se utiliza para descifrar la capa de imagen antes de que esta se extraiga.
-
Cuando se elimina un repositorio, Amazon ECR envía dos RetireGrant solicitudes para AWS KMS para retirar las subvenciones creadas para el repositorio.
Consideraciones
Se deben tener en cuenta los siguientes puntos a la hora de utilizarlas AWS KMS cifrado basado (SSE-KMS o DSSE-KMS) con Amazon ECR.
-
Si crea su repositorio de Amazon ECR con cifrado de KMS y no especifica una clave de KMS, Amazon ECR utiliza una Clave administrada de AWS con el alias
aws/ecrde forma predeterminada. Esta clave KMS se crea en su cuenta la primera vez que crea un repositorio con cifrado KMS habilitado. -
La configuración de cifrado del repositorio no se puede cambiar después de que se haya creado un repositorio.
-
Cuando utiliza el cifrado KMS con su propia clave KMS, la clave debe existir en la misma región que el repositorio.
-
No se deben revocar las concesiones que Amazon ECR crea en su nombre. Si revoca la concesión que otorga a Amazon ECR el permiso para usar el AWS KMS las claves de su cuenta, Amazon ECR no puede acceder a estos datos, cifrar las imágenes nuevas que se suben al repositorio ni descifrarlas cuando se extraen. Al revocar una concesión para Amazon ECR, el cambio se produce inmediatamente. Para revocar derechos de acceso, debe eliminar el repositorio en lugar de revocar la concesión. Cuando se elimina un repositorio, Amazon ECR retira las concesiones en su nombre.
-
El uso conlleva un coste AWS KMS llaves. Para obtener más información, consulte Precios de AWS Key Management Service
. -
Utilizar el cifrado del servidor de doble capa conlleva un costo asociado. Para obtener más información, consulte los Precios de Amazon ECR
Permisos de IAM necesarios
Al crear o eliminar un repositorio de Amazon ECR con cifrado del lado del servidor mediante AWS KMS, los permisos necesarios dependen de la clave KMS específica utilice.
Permisos de IAM necesarios al utilizar el Clave administrada de AWS para Amazon ECR
De forma predeterminada, cuando AWS KMS el cifrado está habilitado para un repositorio de Amazon ECR pero no se especifica ninguna clave de KMS, Clave administrada de AWS para Amazon ECR se utiliza. Cuando el AWS-La clave KMS administrada para Amazon ECR se usa para cifrar un repositorio, cualquier principal que tenga permiso para crear un repositorio también puede habilitarla AWS KMS cifrado en el repositorio. No obstante, la entidad de seguridad de IAM que elimina el repositorio debe tener el permiso kms:RetireGrant. Esto permite retirar las subvenciones que se agregaron al AWS KMS clave cuando se creó el repositorio.
El siguiente ejemplo de política de IAM se puede agregar como política insertada a un usuario para asegurarse de que tiene los permisos mínimos necesarios para eliminar un repositorio que tenga habilitado el cifrado. La clave KMS utilizada para cifrar el repositorio se puede especificar mediante el parámetro de recurso.
Permisos de IAM necesarios cuando se utiliza una clave administrada por el cliente
Al crear un repositorio con AWS KMS si se habilita el cifrado mediante una clave gestionada por el cliente, el usuario o el rol que crea el repositorio deben tener permisos tanto para la política de claves de KMS como para la política de IAM.
Al crear su propia clave KMS, puede usar la política de clave AWS KMS predeterminada o especificar la suya propia. Para garantizar que el propietario de la cuenta pueda gestionar la clave gestionada por el cliente, la política de claves de la clave de KMS debe permitir todo AWS KMS acciones para el usuario raíz de la cuenta. Es posible que se agreguen permisos de ámbito adicionales a la política de clave, pero como mínimo se le deben dar permisos al usuario raíz para administrar la clave KMS. Para permitir que la clave de KMS solo se utilice en las solicitudes que se originan en Amazon ECR, puede utilizar el kms:ViaService clave de condición con el ecr. valor.<region>.amazonaws.com
El siguiente ejemplo de política clave proporciona la AWS cuenta (usuario raíz) propietaria de la clave de KMS con acceso total a la clave de KMS. Para obtener más información sobre este ejemplo de política de claves, consulte Permite el acceso a AWS cuenta y habilita las políticas de IAM en el AWS Key Management Service Guía para desarrolladores.
El usuario de IAM, la función de IAM o AWS la cuenta que crea tus repositorios debe tener el kms:CreateGrant, kms:RetireGrant, y kms:DescribeKey permiso además de los permisos de Amazon ECR necesarios.
nota
El permiso kms:RetireGrant se debe agregar a la política de IAM del usuario o rol que crea el repositorio. Los permisos kms:CreateGrant y kms:DescribeKey se pueden agregar a la política de clave para la clave KMS, o a la política de IAM del usuario o rol que crea el repositorio. Para obtener más información sobre cómo AWS KMS los permisos funcionan, consulte AWS KMS
Permisos de API: referencia de acciones y recursos en el AWS Key Management Service Guía para desarrolladores.
El siguiente ejemplo de política de IAM se puede agregar como política insertada a un usuario, para asegurarse de que tiene los permisos mínimos necesarios para crear un repositorio que tenga habilitado el cifrado y borrarlo cuando haya terminado de utilizarlo. La AWS KMS key utilizada para cifrar el repositorio se puede especificar mediante el parámetro de recurso.
Habilitación de un usuario para mostrar una lista de claves KMS en la consola al crear un repositorio
Cuando utilice la consola de Amazon ECR para crear un repositorio, puede conceder permisos para permitir que un usuario publique las claves KMS administradas por el cliente en la región al habilitar el cifrado para el repositorio. En el siguiente ejemplo de política de IAM se muestran los permisos necesarios para mostrar una lista de las claves KMS y alias cuando se utiliza la consola.
Supervisión de la interacción de Amazon ECR con AWS KMS
Puede usar AWS CloudTrail para realizar un seguimiento de las solicitudes que Amazon ECR envía a AWS KMS en su nombre. Las entradas de registro del CloudTrail el registro contiene una clave de contexto de cifrado para que sean más fáciles de identificar.
Contexto de cifrado de Amazon ECR
Un contexto de cifrado es un conjunto de pares de clave-valor que contiene datos no secretos arbitrarios. Al incluir un contexto de cifrado en una solicitud para cifrar datos, AWS KMS vincula criptográficamente el contexto de cifrado a los datos cifrados. Para descifrar los datos, es necesario pasar el mismo contexto de cifrado.
En su GenerateDataKey y Descifrar solicita a AWS KMS, Amazon ECR utiliza un contexto de cifrado con dos pares de nombre y valor que identifican el repositorio y el bucket de Amazon S3 que se están utilizando. Esto se muestra en el siguiente ejemplo. Los nombres no varían, pero los valores de contexto de cifrado combinado serán diferentes para cada valor.
"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df", "aws:ecr:arn": "arn:aws:ecr:us-west-2:111122223333:repository/repository-name" }
Puede usar el contexto de cifrado para identificar estas operaciones criptográficas en los registros y registros de auditoría, como AWS CloudTrail y Amazon CloudWatch Registros y como condición para la autorización en políticas y subvenciones.
El contexto de cifrado de Amazon ECR se compone de dos pares de nombre-valor.
-
aws:s3:arn: el primer par de nombre-valor identifica el bucket. La clave es
aws:s3:arn. El valor es el Nombre de recurso de Amazon (ARN) del bucket de Amazon S3."aws:s3:arn": "ARN of an Amazon S3 bucket"Por ejemplo, si el ARN del bucket fuera
arn:aws:s3:::, el contexto de cifrado incluiría el siguiente par.us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df"arn:aws:s3:::us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df" -
aws:ecr:arn: el segundo par de nombre-valor identifica el Nombre de recurso de Amazon (ARN) del repositorio. La clave es
aws:ecr:arn. El valor representa el ARN del proyecto."aws:ecr:arn": "ARN of an Amazon ECR repository"Por ejemplo, si el ARN del repositorio fuera
arn:aws:ecr:, el contexto de cifrado incluiría el siguiente par.us-west-2:111122223333:repository/repository-name"aws:ecr:arn": "arn:aws:ecr:us-west-2:111122223333:repository/repository-name"
Resolución de problemas
Al eliminar un repositorio de Amazon ECR con la consola, si el repositorio se elimina correctamente pero Amazon ECR no puede retirar las concesiones agregadas a la clave KMS para su repositorio, recibirá el siguiente error.
The repository[{repository-name}]has been deleted successfully but the grants created by the kmsKey[{kms_key}]failed to be retired
Cuando esto ocurra, puede retirar el AWS KMS usted mismo concederá subvenciones para el repositorio.
Para jubilarse AWS KMS subvenciones para un repositorio de forma manual
-
Enumere las subvenciones para el AWS KMS clave utilizada para el repositorio. El valor
key-idse incluye en el error que recibe de la consola. También puedes usar lalist-keyscomando para enumerar tanto los Claves administradas de AWS y claves de KMS administradas por el cliente en una región específica de su cuenta.aws kms list-grants \ --key-idb8d9ae76-080c-4043-9237-c815bfc21dfc--regionus-west-2La salida incluye un elemento
EncryptionContextSubsetcon el Nombre de recurso de Amazon (ARN) del repositorio. Esto se puede utilizar para determinar qué concesión agregada a la clave es la que desea retirar. En el siguiente paso se usará el valorGrantIdal retirar la concesión. -
Retira cada subvención para el AWS KMS clave añadida para el repositorio. Sustituya el valor de
GrantIdcon el identificador de la subvención del resultado del paso anterior.aws kms retire-grant \ --key-idb8d9ae76-080c-4043-9237-c815bfc21dfc\ --grant-idGrantId\ --regionus-west-2