Criptaggio delle raccomandazioni
Quando si specifica un no kmsKeyArn su una raccomandazione, il servizio crittografa la configurazione del consiglio e il risultato del consiglio utilizzando la crittografia a busta con Encryption AWS SDK. Tutti gli altri metadati delle raccomandazioni (nome, tipo, stato) rimangono crittografati con la chiave proprietaria. AWS
kmsKeyArnViene specificato al momento della creazione tramiteStartRecommendation.
Come funziona
La crittografia delle raccomandazioni utilizza AWS Encryption SDK per la crittografia delle buste. Quando il servizio scrive o legge i dati delle raccomandazioni, chiama KMS per generare o decrittografare le chiavi di dati. Il risultato della raccomandazione viene inoltre archiviato in S3 SSE-KMS utilizzando la stessa chiave gestita dal cliente.
Al momento dell'API, il servizio verifica che il chiamante disponga delle autorizzazioni KMS utilizzando un controllo a secco (Forward Access Sessions). In questo modo vengono rilevati immediatamente i problemi di autorizzazione anziché fallire in modo asincrono durante il flusso di lavoro di raccomandazione.
Quando il flusso di lavoro di raccomandazione viene eseguito in modo asincrono, il service principal (bedrock-agentcore.amazonaws.com) decrittografa la configurazione e crittografa il risultato. Il responsabile del servizio deve disporre kms:GenerateDataKey dell'autorizzazione nella politica chiave. kms:Decrypt
AgentCore le ottimizzazioni supportano solo chiavi KMS di crittografia simmetrica. La chiave KMS deve trovarsi nella stessa AWS regione della raccomandazione.
Configurazione delle autorizzazioni per l'utilizzo di una chiave KMS gestita dal cliente
La seguente politica chiave fornisce le autorizzazioni minime richieste per la crittografia delle raccomandazioni. La policy ha tre istruzioni:
-
AllowCallerAccess— Consente all'utente o al ruolo IAM di convalidare la chiave tramite.
DescribeKey -
AllowCallerCryptoOps— Consente all'utente o al ruolo IAM di crittografare e decrittografare, in base al contesto di crittografia.
-
AllowServicePrincipalAccess— Consente al responsabile del AgentCore servizio di crittografare e decrittografare i dati delle raccomandazioni durante il flusso di lavoro di raccomandazione asincrono, con ambito per account di origine e ARN di origine.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } }, { "Sid": "AllowServicePrincipalAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } } ] }
La politica contiene le seguenti dichiarazioni:
-
AllowCallerAccess— Concede al ruolo IAM l'
kms:DescribeKeyautorizzazione per la convalida delle chiavi al momento della creazione della raccomandazione.111122223333Sostituiscilo con l'ID del tuo account eMyRecommendationRolecon il ruolo o l'utente IAM che avvia i consigli. -
AllowCallerCryptoOps— Concede il ruolo
kms:GenerateDataKeye lekms:Decryptautorizzazioni IAM, in base alaws:bedrock-agentcore:recommendationArncontesto di crittografia. Sostituisci111122223333eus-east-1conMyRecommendationRolei tuoi valori. Per consentire l'accesso a tutti i consigli nel tuo account, usa una jolly conStringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*. -
AllowServicePrincipalAccess- Concede il principale AgentCore servizio e le
kms:Decryptautorizzazioni per crittografarekms:GenerateDataKeye decrittografare i dati delle raccomandazioni durante il flusso di lavoro asincrono. Elaborato in base all'account di origine e all'ARN di origineaws:SourceArn() per evitare confusi attacchi secondari. Sostituiscius-east-1e111122223333con la tua regione e l'ID dell'account.
Definizione dell'accesso alla chiave KMS gestita dal cliente
È possibile utilizzare il contesto di crittografia per limitare l'accesso alla chiave gestita dal cliente. AgentCore le ottimizzazioni includono il seguente contesto di crittografia in tutte le operazioni KMS:
{ "aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/recommendation-id" }
È possibile utilizzare questo contesto di crittografia nelle condizioni politiche chiave per limitare le operazioni KMS a raccomandazioni specifiche, come illustrato nella AllowCallerCryptoOps dichiarazione contenuta nella politica chiave di esempio riportata sopra. Nota che AllowServicePrincipalAccess viene utilizzato aws:SourceArn per l'ambito piuttosto che per il contesto di crittografia.
Avvio di una raccomandazione con una chiave KMS gestita dal cliente
Specificare il kmsKeyArn parametro quando si chiamaStartRecommendation:
Esempio
Monitoraggio dell'utilizzo di KMS per suggerimenti
I seguenti nomi di CloudTrail eventi vengono visualizzati per le operazioni KMS di raccomandazione:
-
GenerateDataKey— Quando si avvia una raccomandazione (configurazione di crittografia) e quando il flusso di lavoro di raccomandazione viene completato (crittografia del risultato). IlencryptionContextcampo contiene.aws:bedrock-agentcore:recommendationArn -
Decrypt— Quando il flusso di lavoro di raccomandazione elabora la configurazione o quando recupera i risultati dei consigli. -
DescribeKey— Durante la convalida della chiave al momento della creazione del consiglio.
Comportamento quando una chiave diventa non disponibile
Se disabiliti o elimini la chiave KMS gestita dal cliente utilizzata in un consiglio:
-
StartRecommendation— Non riesce a convalidare con.
ValidationException -
GetRecommendation— Non riesce a
ValidationExceptionindicare che la chiave KMS è disabilitata o eliminata. -
ListRecommendations— Ha successo perché l'elenco restituisce solo i metadati e non richiede operazioni KMS.
-
DeleteRecommendation— Ha esito positivo perché l'eliminazione non richiede la decrittografia dei dati delle raccomandazioni.