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 El cifrado del lado del servidor con AWS KMS (DSSE-KMS) solo está disponible en las regiones. AWS GovCloud (US)
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 las claves de cifrado de Amazon, que cifran los datos en reposo mediante un algoritmo de S3-managed cifrado. AES-256 Esto no requiere ninguna acción por su parte y no conlleva ningún cargo adicional. Para obtener más información, consulte Proteger los datos mediante el Server-Side cifrado con claves de cifrado de Amazon S3-Managed (SSE-S3) en la 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 lo usas AWS KMS para cifrar tus datos, puedes usar la predeterminada, que es administrada por Amazon ECR Clave administrada de AWS, o especificar tu propia clave de KMS (denominada clave gestionada por el cliente). Para obtener más información, consulte Proteger los datos mediante el Server-Side cifrado con claves KMS almacenadas en AWS KMS (SSE-KMS) en la Guía del usuario de Amazon Simple Storage Service.
Puede optar por aplicar dos capas de cifrado a las imágenes de Amazon ECR mediante un cifrado de doble capa en el servidor con (). AWS KMS DSSE-KMS DSSE-KMSLa opción es similar aSSE-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 el AWS KMS cifrado habilitado, se usa una clave de KMS para cifrar el contenido del repositorio. Además, Amazon ECR añade una AWS KMS concesión a 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 una DescribeKey llamada AWS KMS a 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 para crear concesiones en la clave de KMS AWS KMS a fin de permitir a Amazon ECR cifrar y descifrar los datos con la clave de datos.
-
Al insertar una imagen, se realiza una GenerateDataKey solicitud en la que se especifica la clave de KMS AWS 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 de 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 la imagen.
-
Al extraer una imagen, se envía una solicitud de descifrado en la que se especifica la AWS KMS clave de datos cifrados.
-
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 AWS KMS para retirar las subvenciones creadas para el repositorio.
Consideraciones
Al utilizar el cifrado AWS KMS basado (SSE-KMSoDSSE-KMS) con Amazon ECR, se deben tener en cuenta los siguientes puntos.
-
Si crea su repositorio de Amazon ECR con el cifrado de KMS y no especifica ninguna 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 autorización que otorga a Amazon ECR el permiso para usar las AWS KMS claves de su cuenta, Amazon ECR no podrá acceder a estos datos, cifrar las imágenes nuevas que se suban al repositorio ni descifrarlas cuando se extraigan. 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 de las claves conlleva un coste. AWS KMS 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.
Los permisos de IAM necesarios al utilizar el Clave administrada de AWS para Amazon ECR
De forma predeterminada, cuando el AWS KMS cifrado está habilitado para un repositorio de Amazon ECR pero no se especifica ninguna clave de KMS, se utiliza la Clave administrada de AWS de Amazon ECR. Cuando la clave AWS de KMS administrada por Amazon ECR se usa para cifrar un repositorio, cualquier principal que tenga permiso para crear un repositorio también puede habilitar AWS KMS el 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 a la 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 el AWS KMS cifrado habilitado 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 administrar la clave gestionada por el cliente, la política de claves para la clave de KMS debe permitir que el usuario raíz de la cuenta pueda AWS KMS realizar todas las acciones. 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 KMS se utilice únicamente en las solicitudes que se originen en Amazon ECR, puede usar la clave kms: ViaService condition con el ecr. valor.<region>.amazonaws.com
El siguiente ejemplo de política de claves otorga a la AWS cuenta (usuario raíz) propietaria de la clave de KMS acceso total a la clave de KMS. Para obtener más información sobre este ejemplo de política de claves, consulte Permitir el acceso a la AWS cuenta y habilitar las políticas de IAM en la Guía para AWS Key Management Service desarrolladores.
El usuario de IAM, el rol de IAM o la AWS cuenta que cree sus repositorios debe tener el kms:DescribeKey permiso y kms:CreateGrantkms:RetireGrant, 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 funcionan AWS KMS los permisos, consulte la referencia sobre permisos de AWS KMS
API: acciones y recursos en la Guía para desarrolladores. AWS Key Management Service
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 utilizarla AWS CloudTrail para realizar un seguimiento de las solicitudes a las que Amazon ECR envía AWS KMS en su nombre. Las entradas del CloudTrail registro contienen 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. Cuando se incluye un contexto de cifrado en una solicitud de cifrado de datos, se vincula AWS KMS criptográficamente el contexto de cifrado a los datos cifrados. Para descifrar los datos, es necesario pasar el mismo contexto de cifrado.
En sus solicitudes GenerateDataKey y en las de Decrypt 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 los registros de Amazon CloudWatch , AWS CloudTrail y como condición para la autorización en políticas y concesiones.
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, podrás retirar tú mismo las AWS KMS subvenciones del repositorio.
Para jubilarse AWS KMS subvenciones para un repositorio de forma manual
-
Enumera las subvenciones para la AWS KMS clave utilizada en el repositorio. El valor
key-idse incluye en el error que recibe de la consola. También puedes usar ellist-keyscomando para enumerar tanto las Claves administradas por AWS claves de KMS como las administradas por el cliente en una región específica de tu 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 concesión de la AWS KMS clave añadida al repositorio. Sustituya el valor de por
GrantIdel identificador de la concesión del resultado del paso anterior.aws kms retire-grant \ --key-idb8d9ae76-080c-4043-9237-c815bfc21dfc\ --grant-idGrantId\ --regionus-west-2