Uso de claves administradas por el cliente (CMK) - Amazon Bedrock

Uso de claves administradas por el cliente (CMK)

Si tiene previsto usar una clave administrada por el cliente para cifrar su modelo importado personalizado, complete los siguientes pasos:

  1. Cree una clave de administrada por el cliente con el AWS Key Management Service.

  2. Asocie una política basada en recursos con permisos a los roles especificados a fin de crear y usar modelos importados personalizados.

Creación de una clave administrada por el cliente

Primero, asegúrese de tener permisos CreateKey. A continuación, siga los pasos que se indican en creación de claves para crear una clave administrada por el cliente mediante la consola de AWS KMS o la operación de la API de CreateKey. Asegúrese de crear una clave de cifrado simétrica.

Al crear la clave, se obtiene un Arn para la clave que puede utilizar como el importedModelKmsKeyId al importar un modelo personalizado con la importación de modelos personalizados.

Creación de una política de claves y asociación a la clave administrada por el cliente

Las políticas de claves son políticas basadas en recursos que se asocian a la clave administrada por el cliente para controlar el acceso a la misma. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de claves. Puede modificar la política de claves en cualquier momento, pero es posible que haya un pequeño decalaje hasta que el cambio esté disponible en AWS KMS. Para obtener más información, consulte Administración del acceso a las claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service.

Cifrado del modelo personalizado importado resultante

Para utilizar la clave administrada por el cliente para cifrar un modelo personalizado importado, debe incluir las siguientes operaciones de AWS KMS en la política de claves:

  • kms:CreateGrant: crea una concesión para una clave administrada por el cliente al permitir que la entidad principal del servicio de Amazon Bedrock acceda a la clave de KMS especificada mediante operaciones de concesión. Para obtener más información sobre las concesiones, consulte Grants in AWS KMS en la Guía para desarrolladores de AWS Key Management Service.

    nota

    Amazon Bedrock también establece una entidad principal que se retira y elimina automáticamente la concesión cuando ya no se necesite.

  • kms:DescribeKey: proporciona los detalles de la clave administrada por el cliente para permitir que Amazon Bedrock valide la clave.

  • kms:GenerateDataKey: proporciona los detalles de la clave administrada por el cliente para permitir que Amazon Bedrock valide el acceso de usuario. Amazon Bedrock almacena el texto cifrado generado junto con el modelo personalizado para utilizarlo como comprobación de validación adicional frente a los usuarios del modelo personalizado.

  • kms:Decrypt: descifra el texto cifrado almacenado para validar que el rol tiene el acceso adecuado a la clave de KMS que cifra el modelo personalizado.

El siguiente es un ejemplo de política que puede asociar a una clave de un rol y que utilizará para cifrar un modelo personalizado importado:

{ "Version": "2012-10-17", "Id": "KMS key policy for a key to encrypt an imported custom model", "Statement": [ { "Sid": "Permissions for model import API invocation role", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${account-id}:user/role" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*" } ] }

Descifrado de un modelo personalizado importado cifrado

Si va a importar un modelo personalizado que ya ha sido cifrado por otra clave administrada por el cliente, debe añadir permisos kms:Decrypt para el mismo rol, tal y como se indica en la siguiente política:

{ "Version": "2012-10-17", "Id": "KMS key policy for a key that encrypted a custom imported model", "Statement": [ { "Sid": "Permissions for model import API invocation role", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${account-id}:user/role" }, "Action": [ "kms:Decrypt" ], "Resource": "*" } ] }