Crittografia delle risorse degli agenti con chiavi gestite dal cliente (CMK) - Amazon Bedrock

Crittografia delle risorse degli agenti con chiavi gestite dal cliente (CMK)

Puoi creare in qualsiasi momento una chiave gestita dal cliente per crittografare le informazioni di un agente utilizzando le seguenti informazioni fornite durante la creazione dell’agente.

Nota

Le seguenti risorse per gli agenti vengono crittografate solo per gli agenti creati dopo il 22 gennaio 2025.

Azione Campi abilitati per CMK Descrizione
CreateAgent instruction Istruisce l’agente su cosa deve fare e come deve interagire con gli utenti
basePromptTemplate Definisce il modello di prompt con cui sostituire quello predefinito
CreateAgentActionGroup description Descrizione del gruppo di azioni
apiSchema Contiene i dettagli di apiSchema per il gruppo di azioni dell’agente o il payload in formato JSON o YAML che definisce lo schema
s3 Contiene i dettagli sull’oggetto Amazon S3 contenente l’elemento apiSchema per il gruppo di azioni dell’agente
functionSchema Contiene i dettagli dello schema di funzioni per il gruppo di azioni dell’agente o il payload in formato JSON o YAML che definisce lo schema
AssociateAgentKnowledgeBase description Descrizione dello scopo per cui l’agente deve utilizzare la knowledge base
AssociateAgentCollaborator collaborationInstruction Istruzioni per l’agente collaboratore

Per utilizzare una chiave gestita dal cliente, attieniti alla seguente procedura:

  1. Crea una chiave gestita dal cliente con il AWS Key Management Service.

  2. Creare una policy della chiave e collegarla alla chiave gestita dal cliente

Creazione di una chiave gestita dal cliente

Puoi creare una chiave simmetrica gestita dal cliente utilizzando la Console di gestione AWS o le API AWS Key Management Service.

Assicurati innanzitutto di disporre di autorizzazioni CreateKey, quindi segui la procedura per la creazione di una chiave gestita dal cliente simmetrica nella Guida per gli sviluppatori di AWS Key Management Service.

Policy della chiave: le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, puoi specificare una policy della chiave. Per ulteriori informazioni, consulta Gestione dell’accesso alle chiavi gestite dal cliente nella Guida per gli sviluppatori di AWS Key Management Service.

Se hai creato il tuo agente dopo il 22 gennaio 2025 e desideri utilizzare la chiave gestita dal cliente per crittografare le informazioni del tuo agente, assicurati che l’utente o il ruolo che chiama le operazioni dell’API dell’agente disponga delle seguenti autorizzazioni nella policy della chiave:

  • kms:GenerateDataKey: restituisce una chiave dati simmetrica univoca da utilizzare al di fuori di AWS KMS.

  • kms:Decrypt: decrittografa il testo criptato che è stato crittografato da una chiave KMS.

La creazione della chiave restituisce un Arn per la chiave che puoi utilizzare come customerEncryptionKeyArn, durante la creazione del tuo agente.

Creare una policy della chiave e collegarla alla chiave gestita dal cliente

Se crittografi le risorse degli agenti con una chiave gestita dal cliente, devi configurare una policy basata su identità e una policy basata su risorse, per consentire ad Amazon Bedrock di crittografare e decrittografare le risorse degli agenti per tuo conto.

Policy basata su identità

Allega la seguente policy basata su identità a un utente o un ruolo IAM con autorizzazioni per effettuare chiamate alle API degli agenti che crittografano e decrittografano le risorse degli agenti per tuo conto. Questa policy verifica che l’utente che effettua una chiamata API disponga di autorizzazioni AWS KMS. Sostituisci ${region}, ${account-id}, ${agent-id} e ${key-id} con i valori appropriati.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EncryptAgents", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }

Policy basata su risorse

Allega la seguente policy basata su risorse alla tua chiave AWS KMS solo se stai creando gruppi di azioni in cui lo schema in Amazon S3 è crittografato. Non è necessario collegare una policy basata su risorse per altri casi d’uso.

Per collegare la seguente policy basata su risorse, modifica l’ambito delle autorizzazioni secondo necessità e sostituisci ${region}, ${account-id}, ${agent-id} e ${key-id} con i valori appropriati.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}" }, { "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }

Modifica della chiave gestita dal cliente

Agent per Amazon Bedrock non supporta la nuova crittografia degli agenti con versione quando la chiave gestita dal cliente associata all’agente DRAFT viene modificata o quando si passa dalla chiave gestita dal cliente alla chiave di proprietà di AWS. Solo i dati della risorsa DRAFT vengono nuovamente crittografati con la nuova chiave.

Assicurati di non eliminare o rimuovere le autorizzazioni per alcuna chiave per un agente con versione se lo utilizzi per fornire dati di produzione.

Per visualizzare e verificare le chiavi utilizzate da una versione, chiama GetAgentVersion e controlla customerEncryptionKeyArn nella risposta.