View a markdown version of this page

Establezca una política de claves gestionadas por el cliente - Base amazónica AgentCore

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.

Establezca una política de claves gestionadas por el cliente

Para usar una clave gestionada por el cliente con AWS Agent Registry, debe configurar una política de IAM para el principal llamante y una política de claves de KMS que permita al servicio realizar operaciones de cifrado y descifrado.

Requisitos previos

Antes de crear un registro con una clave gestionada por el cliente, asegúrese de lo siguiente:

  • Tiene una clave KMS de cifrado simétrico en la misma AWS región que el registro. Para obtener información sobre la creación de una clave de KMS, consulte Creación de claves en la Guía para desarrolladores del servicio de administración de AWS claves.

  • La persona que realiza la llamada principal de IAM CreateRegistry tiene los permisos de KMS necesarios. Consulte Permisos de IAM necesarios.

Permisos de IAM necesarios

Para interactuar con un registro cifrado, debe tener los siguientes permisos en la clave de KMS:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryCMKAccess", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } } ] }

Reemplace los siguientes valores:

  • Resource— El ARN de su clave de KMS.

  • kms:ViaService— us-east-1 Sustitúyalo por la AWS región de su registro.

Esta kms:ViaService condición restringe los permisos a las solicitudes realizadas a través del servicio de registro de AWS agentes, lo que impide que estos permisos se utilicen fuera del registro de AWS agentes.

nota

Debe estar autorizado a realizar estas acciones de KMS, ya sea mediante su política de IAM o mediante la política de claves (consultePolítica de claves para una clave administrada por el cliente). Si su política de claves incluye la declaración de política de claves predeterminada que habilita las políticas de IAM, la política de IAM es suficiente.

Política de claves para una clave administrada por el cliente

En las siguientes secciones se enumeran las declaraciones de política clave de KMS que requiere el Registro de AWS Agentes. Agregue estas instrucciones a su política de claves de KMS para que el servicio y los principales llamantes puedan usar la clave. Es necesario agregar declaraciones cuando su política de claves no incluye la declaración de política de claves predeterminada que habilita las políticas de IAM, o cuando la clave está en una cuenta diferente.

importante

Los bloques JSON de las siguientes secciones son ejemplos de declaraciones de políticas individuales, no políticas clave completas. No los utilices para reemplazar tu política de claves de KMS actual. En su lugar, copie las declaraciones que necesite (en función de las personas de su organización y del rol vinculado al servicio) y agréguelas al Statement conjunto de su política de claves actual. Actualiza los valores de cada extracto (identificador de cuenta, región, ARN de rol y ARN de registro) para que coincidan con tu entorno antes de guardar la política.

La política de claves debe conceder los permisos en función de las personas de registro de su organización:

  • Administrador: crea registros y administra la configuración de cifrado. kms:DescribeKeyNecesidades kms:CreateGrant y encrypt/decrypt permisos.

  • Publicador o aprobador: crea y actualiza los registros de registro (escribe y lee los descriptores de los registros). Necesita permisos para cifrar y descifrar.

  • Consumidor: lee los registros del registro y los resultados de la búsqueda (lee los descriptores de los registros). Necesita permisos de descifrado.

Además de las declaraciones personales, añada la Declaración de política para la función vinculada al servicio para que AWS Agent Registry pueda usar la clave en su nombre durante el tiempo de ejecución. Si compartes tu registro con otras cuentas de tu AWS organización mediante el administrador de acceso a los AWS recursos (AWS RAM), agrega también laDeclaración de política para el acceso de la organización a través de AWS RAM.

nota

Si su función escribe y lee descriptores de registros (por ejemplo, un editor que también recupera registros), conceda los permisos de cifrado y descifrado, tal y como se muestra en. Declaración de política para el editor

Declaración de política para el administrador

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryAdminKeyValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } }, { "Sid": "AllowRegistryAdminGrantCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowRegistryAdminCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryAdminKeyValidation— Permite al administrador validar la clave antes de usarla con un registro.

  • AllowRegistryAdminGrantCreation— Permite al administrador crear concesiones al crear un registro. La kms:GrantIsForAWSResource condición garantiza que solo se kms:CreateGrant pueda usar cuando un AWS servicio inicie la creación de la subvención en nombre de la persona que llama.

  • AllowRegistryAdminCryptoOps— Permite al administrador cifrar y descifrar los descriptores de los registros correspondientes a un registro específico mediante un contexto de cifrado.

Declaración de política para el editor

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryPublisherCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryPublisherRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryPublisherCryptoOps— Permite a los editores y aprobadores cifrar y descifrar los descriptores de los registros. Necesario para y. CreateRegistryRecord UpdateRegistryRecord

Declaración de política para el consumidor

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryConsumerDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryConsumerRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryConsumerDecrypt— Permite a los consumidores descifrar los descriptores de los registros. Necesario para y. GetRegistryRecord SearchDiscoverableRegistryRecords

Declaración de política para la función vinculada al servicio

Conceda permiso al rol vinculado al servicio de AWS Agent Registry para usar la clave en tiempo de ejecución. El servicio usa esta función para cifrar y descifrar los descriptores de registros en su nombre.

La adición de esta declaración requiere dos pasos ordenados:

  1. Primero, cree el rol vinculado al servicio en su cuenta. AWS El registro del agente no crea la función automáticamente; debe crearla usted mismo antes de agregar la declaración de política de claves de KMS. Utilice la AWS CLI:

    aws iam create-service-linked-role --aws-service-name agent-registry.amazonaws.com

    Esto crea el AWSServiceRoleForAgentRegistry rol enarn:aws:iam::<account-id>:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry. Solo es necesario hacerlo una vez para cada cuenta.

  2. A continuación, agregue la siguiente declaración a su política de claves de KMS. IAM rechaza cualquier política clave que haga referencia a un principal que aún no existe, por lo que el rol debe estar presente antes de pegar una declaración que lo nombre.

Aplica la declaración a los registros de tu cuenta utilizando un comodín de contexto de cifrado.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistrySlrCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/*" } } } ] }
  • AllowRegistrySlrCryptoOps— Permite que la función vinculada a servicios de AWS Agent Registry (AWSServiceRoleForAgentRegistry) cifre y descifre los descriptores de los registros en su nombre. Esta condición se aplica a los registros de su cuenta. kms:EncryptionContext:aws:agent-registry:registry-arn

Declaración de política para el acceso de la organización a través de AWS RAM

Agrega esta declaración si compartes un registro encriptado y administrado por un cliente con otras cuentas de tu AWS organización mediante AWS Resource Access Manager (RAM).AWS Otorga a cualquier director de su organización la capacidad de descifrar los descriptores de los registros de un registro compartido con ellos. Si no compartes el registro a través de la AWS RAM, esta declaración no es obligatoria.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-EXAMPLE1234" } } } ] }
  • AllowOrganizationDecrypt— Permite a cualquier director de su AWS organización descifrar los descriptores de los registros que comparte mediante la RAM. AWS La aws:PrincipalOrgID condición aplica este permiso exclusivamente a las cuentas de los miembros de la organización nombrada; sin un identificador de organización coincidente, no se concede nada. "Principal": "*" Las personas que llaman siguen necesitando el permiso de IAM de nivel de servicio correspondiente en el propio registro compartido.

Sustituya los valores en las declaraciones políticas clave

Sustituya los siguientes valores en cada declaración de política clave:

  • Principal— El ARN del usuario o rol de IAM para cada persona. 111122223333Sustitúyalo por tu ID de cuenta y los nombres de los roles por tus roles de IAM reales. En el caso de la declaración de funciones vinculadas a un servicio, 111122223333 sustitúyala por la ID de su cuenta; mantenga la ruta y el nombre del rol (aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry) tal y como se muestran; es un valor fijo gestionado por el servicio.

  • kms:ViaService— Sustitúyalo por us-east-1 la AWS región de su registro.

  • kms:EncryptionContext:aws:agent-registry:registry-arn— Sustitúyalo por el ARN de su registro. Para permitir el acceso a todos los registros de su cuenta, utilícelo StringLike con un comodín:. arn:aws:agent-registry:us-east-1:111122223333:registry/*

  • aws:PrincipalOrgID— En la declaración de uso compartido de AWS RAM, sustitúyala por tu o-EXAMPLE1234 ID de AWS organización. Puedes encontrarlo en la consola de la AWS organización o ejecutarloaws organizations describe-organization --query 'Organization.Id' --output text.