View a markdown version of this page

Crittografia dei dataset - Amazon Bedrock AgentCore

Crittografia dei dataset

Quando si specifica un kmsKeyArn su un set di dati, il servizio crittografa tutti gli esempi archiviati utilizzando la crittografia lato server S3 con KMS (). SSE-KMS Ciò include gli esempi nella bozza e in tutte le versioni pubblicate.

kmsKeyArnÈ immutabile dopo la creazione del set di dati: non è possibile modificarlo o rimuoverlo.

Come funziona

La crittografia del set di dati utilizza S3. SSE-KMS Quando il servizio scrive o legge il contenuto del set di dati in S3, S3 chiama KMS per conto del servizio per crittografare o decrittografare i dati. Il service principal (bedrock-agentcore.amazonaws.com) deve avere le autorizzazioni KMS nella politica chiave.

Al momento dell'API, il servizio verifica che il chiamante disponga delle autorizzazioni KMS utilizzando un controllo a secco (Forward Access Sessions). Ciò rileva immediatamente i problemi di autorizzazione anziché fallire in modo asincrono durante l'ingestione.

AgentCore Evaluations supporta solo chiavi KMS con crittografia simmetrica. La chiave KMS deve trovarsi nella stessa AWS regione del set di dati.

Politica chiave richiesta

La seguente politica chiave concede le autorizzazioni minime richieste per la crittografia dei set di dati. Include due istruzioni:

  • AllowCallerAccess— Concede all'utente o al ruolo IAM che chiama l'CreateDatasetautorizzazione a convalidare e utilizzare la chiave. Il servizio esegue un controllo a secco al momento dell'API per verificare che il chiamante disponga dell'accesso KMS. 111122223333Sostituiscilo con l'ID del tuo account e MyDatasetRole con il ruolo o l'utente IAM che gestisce i set di dati.

  • AllowAgentCoreDatasetAccess— Concede al AgentCore servizio l'autorizzazione principale per crittografare e decrittografare il contenuto del set di dati in S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Nota

Questa è la politica minima. Vedi Scoping down access per le condizioni di sicurezza consigliate.

Ambito dell'accesso

È possibile aggiungere condizioni per limitare l'utilizzo della chiave. Per i set di dati, il servizio invia il seguente contesto con le operazioni di scrittura KMS ()GenerateDataKey:

  • aws:SourceAccount— L'ID dell' AWS account proprietario del set di dati.

  • aws:SourceArn— L'ARN del set di dati da crittografare.

  • kms:EncryptionContext:aws:bedrock-agentcore:datasetArn— L'ARN del set di dati come contesto di crittografia.

La seguente politica suddivide le autorizzazioni in scrittura (condizionata) e lettura (non condizionata):

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetWrite", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*", "kms:EncryptionContext:aws:bedrock-agentcore:datasetArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*" } } }, { "Sid": "AllowAgentCoreDatasetRead", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Importante

Non aggiungere aws:SourceAccount o aws:SourceArn condizioni all'istruzione read (Decrypt,). DescribeKey I download dei set di dati utilizzano URL S3 predefiniti e il client di download non invia intestazioni di contesto di origine. L'aggiunta di queste condizioni alle operazioni di lettura causa errori di download.

111122223333Sostituiscilo con l'ID del tuo account e us-east-1 con la tua AWS regione. Per fare riferimento a un set di dati specifico, sostituisci il carattere jolly con l'ID del set di dati:. arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/my-dataset-id

Creazione di un set di dati con una chiave KMS gestita dal cliente

Specificare il kmsKeyArn parametro quando si chiama: CreateDataset

Esempio
AgentCore CLI
  1. Per creare un set di dati crittografato, passalo --kms-key-arn quando aggiungi il set di dati, quindi esegui. agentcore deploy Sostituisci la chiave KMS ARN con la tua chiave ARN.

    agentcore add dataset --name encrypted_dataset \ --schema-type AGENTCORE_EVALUATION_PREDEFINED_V1 \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" # Add your scenarios to agentcore/datasets/encrypted_dataset.jsonl, then run agentcore deploy. agentcore deploy
AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-east-1") ds = client.create_dataset_and_wait( datasetName="encrypted_dataset", schemaType="AGENTCORE_EVALUATION_PREDEFINED_V1", kmsKeyArn="arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", source={ "inlineExamples": { "examples": [ {"scenario_id": "TC-01", "turns": [{"input": "Hello"}]} ] } }, )
AWS SDK
  1. import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_dataset( datasetName='encrypted_dataset', schemaType='AGENTCORE_EVALUATION_PREDEFINED_V1', kmsKeyArn='arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab', source={ 'inlineExamples': { 'examples': [ {'scenario_id': 'TC-01', 'turns': [{'input': 'Hello'}]} ] } } )
AWS CLI
  1. aws bedrock-agentcore-control create-dataset \ --dataset-name "encrypted_dataset" \ --schema-type AGENTCORE_EVALUATION_PREDEFINED_V1 \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --source '{"inlineExamples": {"examples": [{"scenario_id": "TC-01", "turns": [{"input": "Hello"}]}]}}'

Monitoraggio dell'utilizzo di KMS per i set di dati

I seguenti nomi di CloudTrail eventi vengono visualizzati per le operazioni KMS dei set di dati:

  • GenerateDataKey— Quando si crea un set di dati, si aggiungono esempi, si aggiornano esempi o si pubblica una versione. Il encryptionContext campo contieneaws:bedrock-agentcore:datasetArn.

  • Decrypt— Durante la lettura del contenuto del set di dati (GetDataset, ListDatasetExamples) o durante il download di URL predefiniti.

  • DescribeKey— Durante la convalida della chiave al momento della creazione del set di dati.

Comportamento quando una chiave diventa non disponibile

Se disabiliti o elimini la chiave KMS gestita dal cliente utilizzata da un set di dati:

  • CreateDataset— Non riesce a convalidare con. ValidationException

  • AddDatasetExamples, UpdateDatasetExamples, CreateDatasetVersion — Fallisce ValidationException al momento dell'API.

  • GetDataset— Non riesce a ValidationException indicare che la chiave KMS è disabilitata o eliminata.

  • ListDatasetExamples— Non ValidationException indica che la chiave KMS è disabilitata o eliminata.

  • DeleteDataset— Ha successo perché l'eliminazione degli oggetti S3 non richiede la decrittografia KMS.