View a markdown version of this page

Crittografia a riposo per l'apprendimento per rinforzo a più turni - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia a riposo per l'apprendimento per rinforzo a più turni

Opzioni per la crittografia a riposo

Multi-turn I lavori di reinforcement learning in Amazon SageMaker AI crittografano tutti i dati a riposo. I dati di input di training, i dati di output (inclusi i checkpoint del modello e gli artefatti del modello addestrato) e i dati intermedi archiviati in Amazon S3 sono crittografati utilizzando la crittografia lato server. Non è necessario eseguire alcuna configurazione aggiuntiva per garantire che i dati siano crittografati quando sono inattivi.

Amazon SageMaker AI supporta le seguenti opzioni di crittografia per i processi RL a più turni:

  • Server-side crittografia con chiave KMS AWS proprietaria: per impostazione predefinita, Amazon SageMaker AI crittografa tutti i dati di formazione e intermedi utilizzando una AWS chiave KMS proprietaria. e non sono necessarie ulteriori configurazioni.

  • Server-side crittografia con AWS KMS chiavi (SSE-KMS): puoi facoltativamente specificare una chiave KMS gestita dal cliente per crittografare i dati di output della formazione in Amazon S3. Se i dati di input in Amazon S3 sono già crittografati con una chiave gestita dal cliente, il ruolo di esecuzione deve disporre dell'autorizzazione per decrittografare tali dati.

Crittografia dei dati inattivi utilizzando la tecnologia gestita dal cliente AWS KMS keys

In che modo Multi-Turn RL utilizza una chiave KMS gestita dal cliente

Quando specifichi una chiave KMS gestita dal cliente nella configurazione di output del tuo job RL multigiro, Amazon SageMaker AI utilizza tale chiave per crittografare le seguenti risorse in Amazon S3:

  • Dati di output di addestramento, inclusi gli artefatti del modello addestrato (pesi degli adattatori LoRa)

  • Modello intermedio input/output (punti di controllo del modello ripristinabili e dati di traiettoria)

  • Dati e tracce degli esperimenti MLFlow

Quando specifichi una chiave KMS gestita dal cliente, Amazon SageMaker AI utilizza due meccanismi per crittografare i tuoi dati:

  • Sovvenzioni: al momento della creazione del lavoro, Amazon SageMaker AI utilizza le credenziali del chiamante per creare una o due sovvenzioni sulla chiave KMS:

    • Concessione in scrittura: creata per ogni lavoro che specifica una chiave gestita dal cliente. Consente al servizio di crittografare e decrittografare il checkpoint del lavoro corrente e i dati temporanei archiviati all'interno della piattaforma durante la formazione.

    • Concessione di lettura: creata solo per i lavori iterativi che riprendono dal checkpoint di un lavoro precedente quando il lavoro precedente utilizzava anche una chiave gestita dal cliente. Consente al servizio di decrittografare i dati del checkpoint del processo precedente. Questa concessione consente solo la decrittografia e non consente la scrittura di nuovi dati.

    Tutte le sovvenzioni vengono ritirate automaticamente al termine del lavoro, garantendo che il servizio non abbia più accesso alla chiave al termine del ciclo di vita del lavoro.

  • Ruolo di esecuzione: quando si salvano i dati di output (artefatti del modello, checkpoint) nel bucket Amazon S3, Amazon AI utilizza il ruolo di esecuzione fornito. SageMaker Il ruolo di esecuzione deve disporre delle autorizzazioni per utilizzare la chiave KMS per la crittografia e la decrittografia tramite Amazon S3.

Durante un lavoro di formazione, si verificano le seguenti operazioni: AWS KMS

  • kms:GenerateDataKey— Richiamato tramite Amazon S3 durante la scrittura di dati di output crittografati (artefatti del modello, checkpoint e log).

  • kms:Decrypt— Richiamato tramite Amazon S3 durante la lettura di dati di input crittografati o dati di output scritti in precedenza.

  • kms:DescribeKey— Richiamato dall'identità del chiamante al momento della creazione del lavoro per verificare la configurazione e lo stato della chiave KMS.

  • kms:CreateGrant— Chiamato dall'identità del chiamante al momento della creazione del lavoro per autorizzare il servizio a memorizzare dati temporanei all'interno della piattaforma per l'intero ciclo di vita del lavoro.

Il servizio non memorizza nella cache le chiavi di dati. Ogni operazione di lettura o scrittura di Amazon S3 chiama AWS KMS in modo indipendente tramite l'integrazione del servizio Amazon S3.

Configurazione di una chiave KMS gestita dal cliente

Multi-turn I job RL supportano solo chiavi simmetriche AWS KMS . Multi-region le chiavi non sono supportate.

Configurazione delle autorizzazioni per l'utilizzo di una chiave KMS gestita dal cliente

Per utilizzare una chiave KMS gestita dal cliente con processi RL a più turni, è necessario configurare le autorizzazioni sia sul ruolo di esecuzione IAM che sulla policy chiave KMS.

Autorizzazioni del ruolo di esecuzione

Il ruolo di esecuzione IAM che passi all'CreateJobAPI deve avere le seguenti autorizzazioni. AWS KMS Queste autorizzazioni consentono al processo di formazione di crittografare i dati di output e decrittografare i dati di input tramite Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForS3Encryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } } ] }
  • kms:Decrypt— Necessario per leggere i dati di input crittografati e i dati di output scritti in precedenza da Amazon S3.

  • kms:GenerateDataKey— Necessario per crittografare i dati di output (artefatti del modello, checkpoint) scritti su Amazon S3.

La kms:ViaService condizione limita l'uso della chiave alle richieste che arrivano tramite Amazon S3, impedendo che la chiave venga utilizzata per altri scopi.

Autorizzazioni relative ai ruoli di runtime dell'agente

Il ruolo di runtime dell'agente che il tuo AgentCore agente o AWS Lambda spedizioniere di Amazon Bedrock assume deve avere le seguenti autorizzazioni. AWS KMS SageMaker L'intelligenza artificiale verifica che il chiamante disponga di queste autorizzazioni prima di utilizzare la chiave KMS durante un processo di reinforcement learning (RL) a più turni.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForMTRLRuntime", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" } } } ] }

La kms:ViaService condizione per il ruolo di runtime dell'agente specifica sagemaker.*.amazonaws.com perché il servizio di runtime SageMaker AI esegue le AWS KMS operazioni per conto del chiamante. Al contrario, il ruolo di esecuzione utilizza s3.*.amazonaws.com perché accede alla chiave tramite Amazon S3.

Policy della chiave KMS

La policy delle chiavi KMS predefinita consente già ai ruoli IAM nello stesso account di utilizzare la chiave. Facoltativamente, puoi aggiungere la seguente dichiarazione per limitare ulteriormente l'accesso solo al ruolo di esecuzione e al ruolo di runtime dell'agente:

{ "Sid": "AllowMTRLJobEncryption", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/SageMakerExecutionRole", "arn:aws:iam::account-id:role/AgentRuntimeRole" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "s3.*.amazonaws.com", "sagemaker.*.amazonaws.com" ] } } }

Per consentire al chiamante di creare concessioni e descrivere la chiave, aggiungi la seguente dichiarazione alla policy chiave:

{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "account-id" }, "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }

Creazione di un job RL a più turni con una chiave KMS gestita dal cliente

Per crittografare i dati di output con la chiave KMS gestita dal cliente, specifica l'ARN della chiave nel KmsKeyArn campo della richiesta. OutputDataConfig CreateJob Per ulteriori informazioni, consulta l'SageMaker AI API CreateJob Reference.

L'esempio seguente mostra come specificare una chiave KMS in: OutputDataConfig

{ "OutputDataConfig": { "S3OutputPath": "s3://your-bucket/output/", "KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }

Se i dati di input in Amazon S3 sono crittografati con una chiave gestita dal cliente (SSE-KMS), assicurati che il ruolo di esecuzione disponga dell'kms:Decryptautorizzazione per quella chiave. Puoi utilizzare la stessa chiave per la crittografia di input e output o chiavi diverse.

Determinazione dell'accesso alla chiave KMS gestita dal cliente

È possibile utilizzare i seguenti meccanismi per limitare l'accesso alla chiave KMS gestita dal cliente:

sagemaker: chiave condizionale OutputKmsKeyArn

Utilizza la chiave sagemaker:OutputKmsKeyArn condizionale nella policy IAM del chiamante per controllare quale chiave KMS può essere specificata per la crittografia dell'output del lavoro. Ciò consente agli amministratori di imporre che vengano utilizzate solo chiavi approvate durante la creazione di processi RL a più turni. Per l'elenco completo delle chiavi di condizione SageMaker AI, consulta Azioni, risorse e chiavi di condizione per Amazon AI. SageMaker

"Condition": { "ArnEquals": { "sagemaker:OutputKmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }
Protezione sostitutiva confusa

Usa le chiavi di aws:SourceAccount condizione aws:SourceArn o nella tua policy chiave KMS per prevenire il problema della confusione relativa ai sostituti. Ciò garantisce che solo le richieste provenienti dal tuo account o risorsa specifico possano utilizzare la chiave.

"Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:region:account-id:job/*" } }

Contesto di crittografia per lavori RL a più turni

Quando un job RL multigiro crittografa i dati utilizzando la chiave KMS gestita dal cliente, Amazon SageMaker AI include un contesto di crittografia in ogni AWS KMS richiesta effettuata tramite Amazon S3. Un contesto di crittografia è un insieme di coppie chiave-valore che forniscono dati autenticati (AAD) aggiuntivi per le operazioni. AWS KMS Il contesto di crittografia è connesso AWS CloudTrail e può essere utilizzato nelle politiche chiave KMS e concede vincoli per limitare ulteriormente l'accesso.

Amazon SageMaker AI utilizza la seguente coppia chiave-valore del contesto di crittografia per lavori di formazione RL a più turni:

{ "aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/job-name" }

Per i lavori di valutazione RL a più turni, il contesto di crittografia utilizza:

{ "aws:sagemaker:agent-rft-evaluation-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFTEvaluation/job-name" }

Il contesto di crittografia è legato al processo specifico che crea i dati crittografati. Ogni processo crittografa il proprio output con il proprio ARN nel contesto di crittografia. Ciò fornisce un legame crittografico tra i dati crittografati e il processo che li ha prodotti.

Utilizzo del contesto di crittografia nelle politiche chiave

Il contesto di crittografia viene applicato automaticamente tramite i vincoli di concessione che Amazon SageMaker AI crea al momento della creazione di posti di lavoro. Non è necessario aggiungere condizioni di contesto di crittografia alla politica delle chiavi KMS affinché la crittografia funzioni correttamente.

Se aggiungi condizioni di contesto di crittografia alla kms:CreateGrant dichiarazione nella tua policy chiave KMS, devi consentire le sovvenzioni sia per il lavoro corrente che per il lavoro precedente nelle catene di formazione iterative. L'esempio seguente consente ad Amazon SageMaker AI di creare sovvenzioni per qualsiasi lavoro di formazione ARN nel contesto della crittografia:

{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com", "kms:EncryptionContext:aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/*" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
Nota

Se ti limiti kms:CreateGrant a un singolo ARN specifico del job nel contesto della crittografia, l'addestramento iterativo fallirà perché Amazon SageMaker AI crea anche una concessione di lettura con l'ARN del lavoro precedente come contesto di crittografia. Usa uno schema con caratteri jolly per consentire le sovvenzioni per qualsiasi lavoro nel tuo account.

Contesto di crittografia nella formazione iterativa

Quando si eseguono job di training iterativi (in cui un job successivo riprende dal checkpoint di un job precedente), il contesto di crittografia per ogni job contiene l'ARN di quel job. Amazon SageMaker AI gestisce automaticamente due AWS KMS sovvenzioni per supportare la formazione iterativa:

  • Concessione in scrittura: consente al job corrente di crittografare i propri dati di checkpoint utilizzando l'ARN del job corrente come contesto di crittografia.

  • Read grant: consente al job corrente di decrittografare i dati dei checkpoint del job precedente utilizzando l'ARN del job precedente come contesto di crittografia.

Entrambe le sovvenzioni vengono automaticamente ritirate al termine del lavoro. Non è necessario aggiungere ulteriori dichiarazioni politiche chiave per la formazione iterativa sull'utilizzo delle chiavi gestite dal cliente.

Contesto di crittografia in AWS CloudTrail

Quando si esaminano CloudTrail i log delle chiamate AWS KMS API effettuate dai job RL a più turni, il contesto di crittografia viene visualizzato nel requestParameters campo della voce di registro. È possibile utilizzare queste informazioni per determinare quale processo ha eseguito una specifica operazione di crittografia o decrittografia sui dati.

Monitoraggio dell'interazione RL a più turni con AWS KMS

Puoi utilizzarlo AWS CloudTrail per monitorare le chiamate AWS KMS API effettuate per conto dei tuoi lavori RL multiturno. I seguenti nomi di CloudTrail eventi sono rilevanti per il monitoraggio dell'utilizzo delle chiavi KMS:

  • Decrypt— Registrato quando il job legge dati crittografati da Amazon S3.

  • GenerateDataKey— Registrato quando il job scrive dati crittografati su Amazon S3.

  • CreateGrant— Registrato quando il chiamante crea una sovvenzione al momento della creazione del lavoro.

  • DescribeKey— Registrato quando il lavoro descrive la chiave KMS per la convalida.

Nelle voci di CloudTrail registro relative a questi eventi, cerca i seguenti valori:

  • request Parameters.granteePrincipal: per CreateGrant gli eventi, mostra il responsabile del servizio che ha ricevuto la sovvenzione (job.sagemaker.amazonaws.com).

Per ulteriori informazioni sulla registrazione delle chiamate AWS KMS API, vedi Registrazione delle chiamate AWS KMS API with AWS CloudTrail nella AWS KMS Developer Guide.