Controlar el acceso al almacén de claves externo - AWS Key Management Service

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.

Controlar el acceso al almacén de claves externo

Todas las funciones de control de acceso de AWS KMS (políticas de claves, políticas de IAM y concesiones) que se utilizan con las claves de KMS estándar funcionan de la misma manera con las claves de KMS en un almacén de claves externo. Puede usar las políticas de IAM para controlar el acceso a las operaciones de la API que crean y administran almacenes de claves externos. Usa políticas de IAM y políticas de claves para controlar el acceso a las AWS KMS keys en su almacén de claves externo. También puede usar las políticas de control de servicios de su organización de AWS y las políticas de punto de conexión de VPC para controlar el acceso a las claves de KMS en su almacén de claves externo.

Le recomendamos que únicamente otorgue a los usuarios y roles los permisos necesarios para las tareas que es probable que se vayan a realizar.

Autorizar a administradores de almacenes de claves externos

Las entidades principales que crean y administran un almacén de claves externo necesitan permisos para las operaciones del almacén de claves personalizado. En la siguiente lista, se describen los permisos mínimos necesarios para los administradores del almacén de claves externo. Como un almacén de claves personalizado no es un recurso de AWS, no puede conceder permisos a un almacén de claves externo para las entidades principales de otras Cuentas de AWS.

  • kms:CreateCustomKeyStore

  • kms:DescribeCustomKeyStores

  • kms:ConnectCustomKeyStore

  • kms:DisconnectCustomKeyStore

  • kms:UpdateCustomKeyStore

  • kms:DeleteCustomKeyStore

Las entidades principales que crean un almacén de claves externo necesitan permiso para crear y configurar los componentes del almacén de claves externo. Las entidades principales pueden crear almacenes de claves externos solo en sus propias cuentas. Para crear un almacén de claves externo con conectividad a los servicios de punto de conexión de VPC, las entidades principales deben tener permiso para crear los siguientes componentes:

  • Una VPC de Amazon

  • Subredes públicas y privadas

  • Un equilibrador de carga de red y grupo de destino

  • Un servicio de punto de conexión de VPC

Para obtener más información, consulte Identity and Access Management para Amazon VPC, Identity and Access Management para puntos de conexión de VPC y servicios de puntos de conexión de VPC y Elastic Load Balancing API permissions (Permisos de la API de Elastic Load Balancing).

Autorización de usuarios de claves de KMS en almacenes de claves externos

Las entidades principales que crean y administran AWS KMS keys del almacén de claves externo necesitan los mismos permisos que aquellas que crean y administran las claves de KMS en AWS KMS. La política de claves predeterminada para claves de KMS en un almacén de claves externo es idéntica a la política de claves predeterminada para claves de KMS en AWS KMS. El control de acceso basado en atributos (ABAC), que utiliza etiquetas y alias para controlar el acceso a las claves de KMS, también es efectivo para claves de KMS en almacenes de claves externos.

Las entidades principales que usan las claves KMS en el almacén de claves personalizado para operaciones criptográficas requieren permiso para realizar la operación criptográfica con la clave KMS, por ejemplo, kms:Decrypt. Puede proporcionar estos permisos en una política de IAM o en una política de claves. Sin embargo, no necesitan más permisos para utilizar una clave KMS en un almacén de claves personalizado.

Para establecer un permiso que se aplique solo a las claves de KMS en un almacén de claves externo, utilice la condición de política kms:KeyOrigin con un valor de EXTERNAL_KEY_STORE. Puede usar esta condición para limitar el permiso kms: o cualquier CreateKey permiso que sea específico de un recurso clave de KMS. Por ejemplo, la siguiente política de IAM permite a la identidad a la que está asociada llamar a las operaciones especificadas en cualquier clave de KMS de la cuenta, siempre que las claves de KMS se encuentren en un almacén de claves externo. Tenga en cuenta que puede limitar el permiso a las claves de KMS de un almacén de claves externo y a las claves de KMS en una Cuenta de AWS, pero no a cualquier almacén de claves externo en particular en la cuenta.

{ "Sid": "AllowKeysInExternalKeyStores", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL_KEY_STORE" } } }

Autorización de AWS KMS para la comunicación con su proxy del almacén de claves externo

AWS KMS se comunica con su administrador de claves externo únicamente a través del proxy del almacén de claves externo que usted proporcione. AWS KMS autentica en su proxy firmando sus solicitudes mediante el proceso Signature Version 4 (SigV4) con la credencial de autenticación del proxy del almacén de claves externo que usted especifique. Si utiliza conectividad a un punto de conexión público para su proxy del almacén de claves externo, AWS KMS no requiere ningún permiso adicional.

Sin embargo, si utiliza la conectividad al servicio de punto de conexión de VPC, debe conceder permiso a AWS KMS para crear un punto de conexión de interfaz para su servicio de punto de conexión de VPC de Amazon. Este permiso es necesario independientemente de si el proxy del almacén de claves externo se encuentra en la VPC o si el proxy del almacén de claves externo se encuentra en otro lugar, pero utiliza el servicio del punto de conexión de VPC para comunicarse con AWS KMS.

AWS KMSPara permitir la creación de un punto final de interfaz, utilice la consola de Amazon VPC o la ModifyVpcEndpointServicePermissionsoperación. Conceda permisos para la siguiente entidad principal: cks.kms.<region>.amazonaws.com.

Por ejemplo, el siguiente comando de la AWS CLI permite que AWS KMS se conecte al servicio del punto de conexión de VPC especificado en la región Oeste de EE. UU. (Oregón) (us-west-2). Antes de ejecutar este comando, reemplace el ID de servicio de la VPC de Amazon y la Región de AWS con valores válidos para su configuración.

modify-vpc-endpoint-service-permissions --service-id vpce-svc-12abc34567def0987 --add-allowed-principals '["cks.kms.us-west-2.amazonaws.com"]'

Para eliminar este permiso, utilice la consola de Amazon VPC o el parámetro ModifyVpcEndpointServicePermissionswith. RemoveAllowedPrincipals

Autorización del proxy del almacén de claves externo (opcional)

Algunos proxy del almacén de claves externo implementan requisitos de autorización para el uso de sus claves externas. Se permite, pero no es obligatorio, utilizar un proxy del almacén de claves externo para diseñar e implementar un esquema de autorización que permita a determinados usuarios solicitar ciertas operaciones únicamente en determinadas condiciones. Por ejemplo, un proxy puede configurarse para permitir al usuario A cifrar con una clave externa determinada, pero no descifrar con ella.

La autorización del proxy es independiente de la autenticación del proxy basada en SigV4 que AWS KMS requiere para todos los proxy del almacén de claves externo. También es independiente de las políticas de clave, las políticas de IAM y las concesiones que autorizan el acceso a las operaciones que afectan al almacén de claves externo o a sus claves de KMS.

Para habilitar la autorización por parte del proxy del almacén de claves externo, AWS KMS incluye metadatos en cada solicitud de la API de proxy, incluidos la persona que llama, la clave de KMS, la operación AWS KMS y el Servicio de AWS (si la hubiera). Los metadatos de solicitud para la versión 1 (v1) de la API del proxy de clave externa son los siguientes.

"requestMetadata": { "awsPrincipalArn": string, "awsSourceVpc": string, // optional "awsSourceVpce": string, // optional "kmsKeyArn": string, "kmsOperation": string, "kmsRequestId": string, "kmsViaService": string // optional }

Por ejemplo, puede configurar su proxy para permitir las solicitudes de una entidad principal específica (awsPrincipalArn), pero solo cuando la solicitud la realiza una entidad principal en nombre de un Servicio de AWS (kmsViaService) específico.

Si se produce un error en la autorización del proxy, la operación AWS KMS relacionada falla con un mensaje que explica el error. Para obtener más información, consulte Problemas de autorización de proxy.

Autenticación mTLS (opcional)

Para permitir que su proxy del almacén de claves externo autentique solicitudes desde AWS KMS, AWS KMS firma todas las solicitudes en su proxy del almacén de claves externo con una credencial de autenticación del proxy de Signature V4 (SigV4).

Para garantizar aún más que el proxy de su almacén de claves externo solo responda a las solicitudes AWS KMS, algunos proxy de clave externos admiten seguridad mutua de la capa de transporte (mTLS), en la que ambas partes de una transacción utilizan certificados para autenticarse entre sí. mTLS agrega la autenticación del cliente (en la que el servidor del proxy del almacén de claves externo autentica el cliente de AWS KMS) a la autenticación del servidor que proporciona la TLS estándar. En el caso improbable de que su credencial de autenticación de proxy se vea comprometida, mTLS impide que un tercero realice solicitudes de API satisfactorias al proxy del almacén de claves externo.

Para implementar la mTLS, configure su proxy del almacén de claves externo para que solo acepte certificados TLS del cliente con las siguientes propiedades:

  • El nombre común del asunto en el certificado TLS debe ser cks.kms.<Region>.amazonaws.com, por ejemplo, cks.kms.eu-west-3.amazonaws.com.

  • El certificado debe estar vinculado a una autoridad de certificación asociada a Amazon Trust Services.