View a markdown version of this page

Utilizzo AWS KMS autorizzazioni per MLflow App - 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à.

Utilizzo AWS KMS autorizzazioni per MLflow App

Puoi proteggere i tuoi dati inattivi utilizzando la crittografia per MLflow le app. Per impostazione predefinita, MLflow le app utilizzano la crittografia lato server con una chiave AWS proprietaria. SageMaker supporta anche un'opzione per la crittografia lato server con una chiave KMS gestita dal cliente.

Nota

La chiave gestita dal cliente crittografa i dati SageMaker gestiti per l'App. MLflow Non crittografa gli artefatti archiviati nel tuo archivio di artefatti Amazon S3. Quel bucket Amazon S3 è creato e di tua proprietà, non gestito da AWS, quindi sei responsabile della configurazione della sua crittografia. Per crittografare i tuoi artefatti con una chiave gestita dal cliente, imposta la crittografia predefinita sul tuo bucket Amazon S3. Per ulteriori informazioni, consulta Setting default server-side encryption behavior for Amazon S3 buckets nella Guida per l’utente di Amazon Simple Storage Service.

Server-side crittografia con AWS chiavi possedute

Per impostazione predefinita, MLflow le app crittografano i dati inattivi utilizzando una chiave AWS proprietaria.

Server-side crittografia con chiavi KMS gestite dal cliente

Come opzione, è possibile utilizzare una chiave simmetrica gestita dal cliente creata, proprietaria e gestita per sostituire la crittografia di proprietà esistente AWS . Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:

  • Stabilire e mantenere le policy delle chiavi

  • Stabilire e mantenere le policy e le sovvenzioni IAM

  • Abilitare e disabilitare le policy delle chiavi

  • Ruotare i materiali crittografici delle chiavi

  • Aggiungere tag

  • Creare alias delle chiavi

  • Pianificare l’eliminazione delle chiavi

Per ulteriori informazioni, consulta Customer managed keys nella Guida per sviluppatori AWS Key Management Service .

In che modo MLflow Le app utilizzano le sovvenzioni in AWS KMS

Per utilizzare la chiave gestita dal cliente, MLflow l'app richiede una concessione. Quando crei un'MLflowapp crittografata con una chiave gestita dal cliente, SageMaker crea una concessione per tuo conto inviando una CreateGrant richiesta a AWS KMS. AWS KMS le sovvenzioni consentono alle MLflow app di accedere alla chiave gestita dal cliente. Quando elimini un'MLflowapp, la concessione SageMaker viene revocata.

Puoi revocare la concessione o rimuovere l'accesso del servizio alla chiave gestita dal cliente in qualsiasi momento. La revoca dell'accesso non interrompe immediatamente un'app in esecuzione. MLflow Il livello di archiviazione sottostante continua a utilizzare l'accesso concesso al momento della creazione dell'app. Dopo la revoca dell'accesso, non è più SageMaker possibile utilizzare la chiave per le operazioni successive che lo richiedono, ad esempio la manutenzione programmata. Se la chiave diventa permanentemente non disponibile, ad esempio se la disabiliti o ne pianifichi l'eliminazione, i tuoi dati inattivi non possono più essere decrittografati e l'App diventa irrecuperabile. MLflow

Configurazione di una chiave KMS gestita dal cliente per un MLflow App

Puoi creare una chiave simmetrica gestita dal cliente utilizzando Console di gestione AWS o le AWS KMS API.

È possibile specificare la chiave gestita dal cliente per un'MLflowapp solo al momento della creazione. Non è possibile modificarla per tutta la durata dell'app. MLflow Le app non supportano il passaggio di un'app esistente da una chiave AWS di proprietà a una chiave gestita dal cliente o la sostituzione di una chiave gestita dal cliente con un'altra. Se desideri utilizzare una chiave diversa, elimina l'MLflowapp e creane una nuova con la configurazione di crittografia desiderata.

Creazione di una chiave simmetrica gestita dal cliente

Segui le fasi descritte in Creazione di chiavi KMS simmetriche di crittografia nella Guida per gli sviluppatori di AWS Key Management Service .

Policy della chiave

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, puoi specificare una policy della chiave. Per ulteriori informazioni, consulta Determining access to AWS KMS keys nella Guida per gli sviluppatori AWS Key Management Service .

Per utilizzare la chiave gestita dal cliente con la tua MLflow app, la tua policy chiave deve consentire le seguenti operazioni API. Il principale di queste operazioni varia a seconda che il ruolo venga utilizzato per creare o utilizzare l’applicazione.

Di seguito sono riportati alcuni esempi di dichiarazioni politiche che puoi aggiungere per MLflow le app in base al fatto che la persona sia un amministratore o un utente. Per ulteriori informazioni su come specificare le autorizzazioni in una policy, consulta AWS KMS Autorizzazioni nella AWS Key Management Service Guida per gli sviluppatori. Per informazioni sulla risoluzione dei problemi, consulta Troubleshooting key access nella AWS Key Management Service Guida per gli sviluppatori.

Amministratore

La seguente politica può essere utilizzata per l'amministratore che crea MLflow le app.

{ "Sid": "AllowMLflowAppAdministratorAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/mlflow-app-admin-role" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sagemaker.region.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "Decrypt", "DescribeKey", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] } } }
  • kms:ViaService— Limita l'uso della chiave alle richieste provenienti da una SageMaker regione specifica. Con"kms:ViaService": "sagemaker.region.amazonaws.com", le kms:DescribeKey autorizzazioni kms:CreateGrant e possono essere esercitate solo quando la richiesta viene effettuata per conto dell'utente, non direttamente da nessun altro mandante o servizio. SageMaker Ciò garantisce che la chiave venga utilizzata solo per l'appMLflow.

  • kms:GrantOperations— Limita le operazioni che la concessione SageMaker crea può contenere. Quando si crea un'MLflowapp, vengono SageMaker chiamate CreateGrant per consentire al relativo piano di dati di crittografare e decrittografare i dati inattivi. L'aggiunta kms:GrantOperations alla kms:CreateGrant dichiarazione assicura che SageMaker è possibile creare solo una sovvenzione contenente esattamente le operazioni necessarie a tale scopo:CreateGrant,,,Decrypt,DescribeKey,Encrypt,GenerateDataKey, GenerateDataKeyWithoutPlaintextReEncryptFrom, ReEncryptTo e. RetireGrant

  • Contesto di crittografia: non applicabile. MLflow Le app non impostano un contesto di crittografia personalizzato sulla concessione, quindi non è possibile utilizzare la chiave di kms:EncryptionContext condizione per limitare ulteriormente l'accesso.

Utente

L'accesso a un'MLflowapp, tramite le MLflow API o un URL prefirmato, non comporta. AWS KMS SageMaker crittografa e decrittografa i dati inattivi per te e non viene effettuata alcuna AWS KMS richiesta quando accedi all'app. Di conseguenza, se accedi a un'MLflowapp, non hai bisogno di alcuna autorizzazione. AWS KMS Non è necessario tenere conto dell' AWS KMS accesso quando si definiscono le politiche di sicurezza per gli utenti.

Creazione di una nuova MLflow App con una chiave KMS gestita dal cliente

Per crittografare la tua MLflow app con una chiave gestita dal cliente, specifica la chiave quando crei l'app utilizzando il --kms-key-id parametro del create-mlflow-app AWS CLI comando. Se ometti questo parametro, SageMaker utilizza una chiave AWS proprietaria. Il ruolo che create-mlflow-app devono avere le chiamate kms:CreateGrant e kms:DescribeKey le autorizzazioni sulla chiave gestita dal cliente.

aws sagemaker create-mlflow-app \ --name app-name \ --artifact-store-uri s3://bucket-name \ --role-arn role-arn \ --kms-key-id your-kms-key-id \ --region your-region

Per ulteriori informazioni sulla creazione di un'MLflowapp, consultaCrea l'app MLFlow.

Monitoraggio MLflow Interazione delle app con AWS KMS

Puoi utilizzarlo CloudTrail per tenere traccia delle richieste effettuate per tuo AWS KMS conto quando MLflow l'App utilizza una chiave gestita dal cliente. Per ulteriori informazioni sulla ricerca e l'interpretazione AWS KMS degli eventi in CloudTrail, consulta la sezione Registrazione delle chiamate AWS KMS API con CloudTrail nella Guida per gli AWS Key Management Service sviluppatori.

I seguenti AWS KMS CloudTrail eventi vengono registrati per un'MLflowapp crittografata con una chiave gestita dal cliente:

  • DescribeKeye CreateGrant — Registrato quando crei un'MLflowApp. SageMaker convalida la chiave e crea la concessione che consente di crittografare e decrittografare i dati inattivi per tuo conto.

  • GenerateDataKeyWithoutPlaintextEncrypt, e Decrypt — Registrato durante il provisioning e il funzionamento MLflow dell'App. Il livello di storage SageMaker sottostante utilizza la chiave gestita dal cliente per crittografare e decrittografare i dati inattivi. Queste richieste vengono effettuate dai AWS servizi che agiscono per conto dell'utente tramite la concessione, pertanto l' CloudTrail userIdentityelemento mostra un AWS servizio come chiamante anziché un responsabile IAM del tuo account.

  • RetireGrant— Registrato quando elimini un'MLflowapp. Le sovvenzioni create per l'app vengono ritirate in modo che la chiave gestita dal cliente non possa più essere utilizzata per l'app.