View a markdown version of this page

Crittografa il tuo AgentCore gateway con una chiave KMS gestita dal cliente - Amazon Bedrock AgentCore

Crittografa il tuo AgentCore gateway con una chiave KMS gestita dal cliente

Per impostazione predefinita, Gateway crittografa i dati inattivi utilizzando una chiave del servizio di gestione delle AWS chiavi gestita dal servizio. Tuttavia, puoi facoltativamente fornire la tua chiave KMS gestita dal cliente per crittografare i dati inattivi quando:

  • Crea un gateway.

  • Aggiorna le configurazioni di un gateway.

L'utilizzo di una chiave gestita dal cliente offre un maggiore controllo sul processo di crittografia, inclusa la possibilità di:

  • Ruota la chiave secondo la tua pianificazione

  • Controlla l'accesso alla chiave tramite le policy IAM

  • Disattiva o elimina la chiave quando non è più necessaria

  • Verifica l'utilizzo delle chiavi tramite CloudWatch registri e AWS CloudTrail

Per ulteriori informazioni, consulta la Guida per gli sviluppatori del servizio di gestione delle AWS chiavi.

Nota

Se scegli di utilizzare una chiave gestita dal cliente, sei responsabile della gestione della chiave e delle relative autorizzazioni. Se la chiave viene disabilitata o eliminata, o se Gateway perde l'autorizzazione a utilizzare la chiave, perderai l'accesso ai dati crittografati.

Prerequisiti per la crittografia del gateway AgentCore

Prima di crittografare il gateway, assicurati di aver soddisfatto i seguenti prerequisiti:

  • Hai accesso a una chiave KMS. Per informazioni sulla creazione di una chiave KMS, consulta Creare una chiave KMS.

  • Alla chiave KMS è associata una politica chiave che consente le seguenti autorizzazioni:

    • Autorizzazioni che consentono al ruolo del servizio gateway di eseguire le seguenti azioni:

      • kms:CreateGrant

      • kms:DescribeKey

      • kms:Decrypt

      • kms:GenerateDataKey

    • (Se abiliti CloudWatch i log per il tuo gateway) Autorizzazioni che consentono al servizio CloudWatch Logs di decrittografare la chiave.

      Per ulteriori informazioni sul controllo delle autorizzazioni IAM per una chiave KMS, consulta l'accesso e le autorizzazioni delle chiavi KMS nella Key Management Service Developer Guide. AWS

Esempio di politica chiave

La seguente politica di esempio fornisce le autorizzazioni necessarie per crittografare un gateway e utilizzare un gateway crittografato. La quarta istruzione consente inoltre di registrare con CloudWatch Logs l'utilizzo delle chiavi per il gateway crittografato. La politica contiene le chiavi delle condizioni per conformarsi alle migliori pratiche di sicurezza.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServiceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] } } }, { "Sid": "AllowServiceRoleDecryptKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowServiceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowKMSDecryptionLogging", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }

La politica contiene le seguenti dichiarazioni:

  • AllowServiceRoleDescribeKKey— Consente al principale specificato di descrivere la chiave se la richiesta viene effettuata tramite il AgentCore servizio. Sostituisci i valori nei seguenti campi:

    • Principal— Sostituisci il AWS valore con l'ARN effettivo del tuo ruolo di servizio gateway.

    • Condition— Nell'kms:ViaServicearray, sostituirlo us-east-1 con la AWS regione effettiva per la quale si desidera consentire la descrizione della chiave.

  • AllowServiceRoleDecryptKey— Consente al principale specificato di decrittografare la chiave se la richiesta viene effettuata tramite il AgentCore servizio e se l'ARN del gateway a cui viene effettuata la richiesta corrisponde a quello nel campo. kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn Sostituisci i valori seguenti:

    • Principal— Sostituisci il AWS valore con l'ARN effettivo del tuo ruolo di servizio gateway.

    • Condition— Effettuare le seguenti operazioni:

      • Nell'kms:ViaServicearray, us-east-1 sostituiscilo con la AWS regione effettiva per la quale desideri consentire la decrittografia della chiave.

      • Sostituisci il kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valore con l'ARN effettivo del tuo gateway.

  • AllowServiceRoleCreateGrant— Consente al principale specificato di creare una concessione per una chiave se la richiesta viene effettuata tramite il AgentCore servizio e se l'ARN del gateway a cui viene effettuata la richiesta corrisponde a quello nel kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn campo. Sostituisci i valori seguenti:

    • Principal— Sostituisci il AWS valore con l'ARN effettivo del tuo ruolo di servizio gateway.

    • Condition— Effettuare le seguenti operazioni:

      • Nell'kms:ViaServicearray, us-east-1 sostituiscilo con la AWS regione effettiva per la quale desideri consentire la decrittografia della chiave.

      • Sostituisci il kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valore con l'ARN effettivo del gateway (se lo desideri consentire).

  • AllowKMSDecryptionLogging— Consente al principale specificato di decrittografare una chiave KMS gestita dal cliente per il controllo dell'utilizzo delle chiavi tramite Logs. CloudWatch Nel kms:EncryptionContext:SourceArn valore, sostituisci i 123456789012 valori con la regione us-east-1 e l'ID dell'account effettivi. AWS

Esempio
Console
  1. ====== Per crittografare il gateway con una chiave KMS gestita dal cliente

  2. Segui i passaggi della console nella sezione Creare un AgentCore gateway Amazon Bedrock ed espandere la chiave KMS, sezione opzionale.

  3. Scegli Personalizza le impostazioni di crittografia (avanzate).

  4. Seleziona una chiave KMS e confermalo i dettagli.

    Nota

    Se non vedi la tua chiave KMS, consulta i Prerequisiti per la crittografia del AgentCore gateway e verifica che le autorizzazioni siano configurate correttamente.

  5. Continua con i passaggi rimanenti della console.

CLI
  1. Per crittografare il gateway utilizzando la AWS CLI, includi quando kms-key-arn invii una delle seguenti richieste tramite AgentCore un client del piano di controllo. :

    • crea un gateway

    • aggiornamento-gateway

      L'esempio seguente mostra un esempio di richiesta CLI per creare un gateway con una chiave AWS KMS specificata utilizzando l'argomento: kms-key-arn

      aws bedrock-agentcore-control create-gateway \ --name "MyGateway" \ --role-arn "arn:aws:iam::123456789012:role/GatewayRole" \ --protocol-type "MCP" \ --kms-key-arn "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --authorizer-type "CUSTOM_JWT" \ --authorizer-configuration '{ "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } }'
Python (Boto3)
  1. Per crittografare il gateway utilizzando AWS Python SDK (Boto3), includi quando invii una kms-key-arn delle seguenti richieste tramite un client del piano di controllo. AgentCore :

    • crea_gateway

    • update_gateway

      L'esempio seguente mostra un esempio di richiesta Boto3 per creare un gateway con una chiave AWS KMS specificata utilizzando l'argomento: kmsKeyArn

      import boto3 # Create client agentcore_client = boto3.client('bedrock-agentcore-control') # Create gateway and specify gateway = agentcore_client.create_gateway( name="MyGateway", roleArn="arn:aws:iam::123456789012:role/GatewayRole", protocolType="MCP", kmsKeyArn="arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" authorizerType="CUSTOM_JWT", authorizerConfiguration= { "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } } )