Crittografia del pacchetto di configurazione
Quando si specifica un kmsKeyArn pacchetto di configurazione, il servizio crittografa le configurazioni dei componenti (istruzioni di sistema, descrizioni degli strumenti e altro contenuto di configurazione) utilizzando la crittografia a busta. Tutti gli altri metadati del pacchetto (nome, descrizione, ID di versione, timestamp) rimangono crittografati con la chiave proprietaria. AWS
Come funziona
La crittografia del pacchetto di configurazione utilizza la crittografia a busta con le credenziali del chiamante. Quando crei o aggiorni un pacchetto con akmsKeyArn, il servizio utilizza le tue credenziali (tramite Forward Access Sessions) per generare una chiave di crittografia dei dati (DEK) da KMS. Il servizio crittografa le configurazioni dei componenti localmente utilizzando tale DEK, quindi archivia il DEK crittografato AES-GCM insieme al pacchetto. Quando recuperate il pacchetto, il servizio decripta il DEK utilizzando le vostre credenziali e decripta i componenti.
Il chiamante deve averekms:GenerateDataKey,, e le autorizzazioni sulla chiave. kms:Decrypt kms:DescribeKey kms:ReEncrypt*
AgentCore le ottimizzazioni supportano solo chiavi KMS di crittografia simmetrica. La chiave KMS deve trovarsi nella stessa AWS regione del pacchetto di configurazione.
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 del pacchetto di configurazione. La policy include due dichiarazioni:
-
AllowCallerAccess— Consente all'utente o al ruolo IAM di convalidare la chiave tramite.
DescribeKey -
AllowCallerCryptoOps— Consente all'utente o al ruolo IAM di generare chiavi di dati, decrittografare e ricrittografare (per la rotazione delle chiavi), in base al contesto di crittografia.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*" } } } ] }
La policy contiene le seguenti dichiarazioni:
-
AllowCallerAccess— Concede al ruolo IAM l'
kms:DescribeKeyautorizzazione per la convalida delle chiavi al momento della creazione o dell'aggiornamento del pacchetto.111122223333Sostituiscilo con l'ID del tuo account eMyConfigBundleRolecon il ruolo o l'utente IAM che gestisce i pacchetti di configurazione. -
AllowCallerCryptoOps— Concede il ruolo
kms:GenerateDataKeye lekms:ReEncrypt*autorizzazioni IAM in base al contesto di crittografia.kms:Decryptaws:bedrock-agentcore:configurationBundleArnL'kms:ReEncrypt*autorizzazione è richiesta per la rotazione delle chiavi (modifica della chiave KMS su un pacchetto esistente). Sostituisci111122223333eus-east-1con i tuoi valori.MyConfigBundleRolePer consentire l'accesso a tutti i pacchetti di configurazione del tuo account, usa un jolly conStringLike:.arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*
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:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/bundle-id" }
È possibile utilizzare questo contesto di crittografia nelle condizioni politiche chiave per limitare le operazioni KMS a pacchetti di configurazione specifici, come illustrato nella AllowCallerCryptoOps dichiarazione contenuta nella politica chiave di esempio riportata sopra.
Creazione di un pacchetto di configurazione con una chiave KMS gestita dal cliente
Per crittografare un pacchetto di configurazione, specifica il parametro durante la kmsKeyArn chiamata. CreateConfigurationBundle
Esempio
Modifica della configurazione di crittografia su un pacchetto esistente
È possibile modificare la configurazione di crittografia su un pacchetto esistente utilizzando: UpdateConfigurationBundle
-
Aggiungi crittografia: specifica una
kmsKeyArnsu un pacchetto creato senza una crittografia. Il servizio genera un nuovo DEK e crittografa le configurazioni dei componenti. -
Tasto di rotazione: specifica un altro.
kmsKeyArnIl servizio riavvolge il DEK esistente dalla vecchia chiave alla nuova chiave utilizzando.kms:ReEncryptIl chiamante deve disporre delle autorizzazioni su entrambe le chiavi. Se la vecchia chiave non è disponibile (autorizzazioni disabilitate, eliminate o mancanti), l'aggiornamento avrà esito negativo.
Nota
Non è possibile rimuovere la crittografia a chiave gestita dal cliente da un pacchetto di configurazione una volta aggiunta.
Monitoraggio dell'utilizzo di KMS per i pacchetti di configurazione
I seguenti nomi di CloudTrail eventi vengono visualizzati per le operazioni KMS dei pacchetti di configurazione:
-
GenerateDataKey— Quando si crea un pacchetto con una chiave gestita dal cliente o si aggiunge la crittografia a un pacchetto esistente. IlencryptionContextcampo contiene.aws:bedrock-agentcore:configurationBundleArn -
Decrypt— Durante il recupero del contenuto del pacchetto (GetConfigurationBundle, GetConfigurationBundleVersion) o l'aggiornamento di un pacchetto crittografato. -
ReEncrypt— Quando si ruota la chiave KMS su un pacchetto esistente tramite. UpdateConfigurationBundle -
DescribeKey— Durante la convalida della chiave al momento della creazione o dell'aggiornamento del pacchetto.
Comportamento quando una chiave diventa non disponibile
Se disabiliti o elimini la chiave KMS gestita dal cliente utilizzata da un pacchetto di configurazione:
-
CreateConfigurationBundle— Non riesce a convalidare con.
ValidationException -
UpdateConfigurationBundle— Fallisce perché il servizio non è in grado di decrittografare il DEK esistente per crittografare nuovamente i nuovi componenti. La rotazione della chiave fallisce anche perché la vecchia chiave non è disponibile per il riavvolgimento.
-
GetConfigurationBundle / GetConfigurationBundleVersion— Fallisce perché il servizio non è in grado di decrittografare le configurazioni del DEK o dei componenti.
-
ListConfigurationBundles / ListConfigurationBundleVersions— Ha successo perché l'elenco restituisce solo i metadati e non richiede operazioni KMS.
-
DeleteConfigurationBundle— Ha successo perché l'eliminazione non richiede la decrittografia dei dati del pacchetto.
Per ripristinare l'accesso, riattiva la chiave o aggiorna la politica della chiave per concedere le autorizzazioni richieste.