View a markdown version of this page

Crittografia a riposo per il reinforcement learning 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 il reinforcement learning a più turni

Opzioni per la crittografia a riposo

Multi-turn i lavori di reinforcement learning in Amazon SageMaker AI crittografano tutti i dati inattivi. I dati di input di addestramento, 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 lavori RL a turni multipli:

  • Server-side crittografia con chiave KMS AWS proprietaria: per impostazione predefinita, Amazon SageMaker AI crittografa tutti i dati di formazione e intermedi utilizzando una chiave KMS AWS 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 di 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 essere autorizzato a decrittografare tali dati.

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

In che modo l'RL a più turni utilizza una chiave KMS gestita dal cliente

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

  • Dati di output di addestramento, inclusi gli artefatti dei modelli addestrati (pesi degli adattatori LoRa)

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

  • Dati e tracce dell'esperimento MLFlow

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

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

    • Write grant: creato 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 memorizzati all'interno della piattaforma durante la formazione.

    • Read grant: creato 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 lavoro 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 salvi i dati di output (artefatti del modello, checkpoint) nel tuo bucket Amazon S3, SageMaker Amazon AI utilizza il ruolo di esecuzione che fornisci. Il ruolo di esecuzione deve disporre delle autorizzazioni per utilizzare la chiave KMS per la crittografia e la decrittografia tramite Amazon S3.

Durante un processo 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— Chiamato dall'identità del chiamante al momento della creazione del lavoro per verificare la configurazione e lo stato della chiave KMS.

  • kms:CreateGrant— Richiamato dall'identità del chiamante al momento della creazione del lavoro per consentire al servizio di archiviare 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 effettua chiamate operative AWS KMS in modo indipendente tramite l'integrazione del servizio Amazon S3.

Configurazione di una chiave KMS gestita dal cliente

Multi-turn I lavori 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, devi configurare le autorizzazioni sia per il ruolo di esecuzione IAM che per la policy delle chiavi 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 dati di input crittografati e 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.

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 per consentire al ruolo di esecuzione di utilizzare la chiave solo tramite Amazon S3:

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

Per consentire al chiamante di creare sovvenzioni 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 lavoro 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 la chiave ARN nel KmsKeyArn campo della OutputDataConfig richiesta. CreateJob Per ulteriori informazioni, consulta l'SageMaker AI API CreateJobReference.

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.

Definizione dell'accesso alla chiave KMS gestita dal cliente

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

sagemaker: chiave di condizione OutputKmsKeyArn

Utilizza la chiave sagemaker:OutputKmsKeyArn condition 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 lavori RL a turni multipli. Per l'elenco completo delle chiavi di condizione SageMaker AI, consulta Azioni, risorse e chiavi di condizione per Amazon SageMaker AI.

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

Utilizza i tasti aws:SourceArn o aws:SourceAccount condition presenti nella policy relativa alle chiavi del KMS per evitare di creare un problema confuso con il vicesceriffo. Ciò garantisce che solo le richieste provenienti dal tuo account o dalla tua risorsa specifica 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 turni multipli

Quando un processo RL a più turni 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 aggiuntivi (AAD) per le operazioni. AWS KMS Il contesto di crittografia è registrato 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 i lavori di formazione RL in più turni:

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

Per i lavori di valutazione RL in 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 è associato 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 lavoro 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 all'kms:CreateGrantistruzione nella tua politica delle chiavi KMS, devi consentire l'assegnazione di 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 con 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 lavoro specifico ARN nel contesto della crittografia, la formazione iterativa fallirà perché Amazon SageMaker AI crea anche una concessione di lettura con l'ARN del lavoro precedente come contesto di crittografia. Utilizza uno schema jolly per consentire sovvenzioni per qualsiasi lavoro nel tuo account.

Contesto di crittografia nell'addestramento iterativo

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

  • Write grant: 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 del checkpoint dal 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 alcuna dichiarazione politica chiave aggiuntiva per una formazione iterativa sull'utilizzo delle chiavi gestite dai clienti.

Contesto di crittografia in AWS CloudTrail

Quando si CloudTrail esaminano i log per le chiamate AWS KMS API effettuate da processi RL a turni multipli, 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 a più turni. I seguenti nomi di CloudTrail eventi sono importanti per il monitoraggio dell'utilizzo delle chiavi KMS:

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

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

  • CreateGrant— Registrato quando il chiamante crea una sovvenzione al momento della creazione di posti di 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 concessione (job.sagemaker.amazonaws.com).

Per ulteriori informazioni sulla registrazione delle chiamate AWS KMS API, consulta Logging AWS KMS API call with AWS CloudTrail nella AWS KMS Developer Guide.