AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod - 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à.

AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod

Per impostazione predefinita, il volume root Amazon EBS collegato al SageMaker HyperPod cluster viene crittografato utilizzando un file AWS KMS key di proprietà di AWS. Ora hai la possibilità di crittografare sia il volume root Amazon EBS che il volume secondario con le chiavi KMS gestite dal cliente. L'argomento seguente descrive come funzionano le chiavi gestite dai clienti (CMKs) con i volumi nei HyperPod cluster.

Nota

Le seguenti esclusioni si applicano all'utilizzo di chiavi gestite dal cliente per i SageMaker HyperPod cluster:

  • La crittografia con chiave gestita dal cliente è supportata solo per i cluster che utilizzano la modalità di provisioning continuo dei nodi. I gruppi di istanze limitati non supportano le chiavi gestite dal cliente.

  • HyperPod i cluster attualmente non supportano il passaggio del contesto di crittografia nelle richieste di AWS KMS crittografia a chiave gestite dal cliente. Pertanto, assicurati che la policy della chiave KMS non sia limitata da condizioni basate sul contesto di crittografia, perché ciò impedirebbe al cluster di utilizzare la chiave.

  • La transizione delle chiavi KMS non è attualmente supportata, quindi non puoi modificare la chiave KMS specificata nella tua configurazione. Per utilizzare una chiave diversa, crea un nuovo gruppo di istanze con la chiave desiderata ed elimina quello precedente.

  • La specificazione delle chiavi gestite dal cliente per HyperPod i cluster tramite la console non è attualmente supportata.

Permissions

Prima di poter utilizzare la chiave gestita dal cliente con HyperPod, è necessario completare i seguenti prerequisiti:

  • Assicurati che al ruolo di esecuzione AWS IAM che stai utilizzando per l' SageMaker IA siano aggiunte le seguenti autorizzazioni. AWS KMS L' kms:CreateGrantautorizzazione consente di HyperPod eseguire le seguenti azioni utilizzando le autorizzazioni per la tua chiave KMS:

    • Ridimensionamento del numero di istanze (operazioni) UpdateCluster

    • Aggiungere nodi del cluster (BatchAddClusterNodes operazioni)

    • Software di applicazione di patch (UpdateClusterSoftware operazioni)

    Per ulteriori informazioni sull’aggiornamento delle autorizzazioni per il ruolo IAM, consulta Adding and removing IAM identity permissions nella Guida per l’utente di IAM.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }
  • Aggiungi le autorizzazioni seguenti alla tua policy della chiave KMS. Per ulteriori informazioni, consulta Change a key policy in AWS KMS Developer Guide.

    JSON
    { "Version":"2012-10-17", "Id": "hyperpod-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/<iam-role>" }, "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringEquals": { "kms:ViaService": "sagemaker.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/<iam-role>" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringEquals": { "kms:ViaService": "sagemaker.us-east-1.amazonaws.com" } } } ] }

Come utilizzare la chiave KMS

È possibile specificare le chiavi gestite dal cliente durante la creazione o l'aggiornamento di un cluster utilizzando le operazioni CreateClustere le UpdateClusterAPI. La struttura InstanceStorageConfigs consente fino a due configurazioni EbsVolumeConfig, in cui è possibile configurare il volume root Amazon EBS e, facoltativamente, un volume secondario. Puoi utilizzare la stessa chiave KMS o una chiave KMS diversa per ogni volume, a seconda delle esigenze.

Puoi scegliere di specificare una chiave gestita dal cliente per nessuno, entrambi o uno solo dei volumi. Tuttavia, non puoi specificare due volumi root o due volumi secondari.

Durante la configurazione del volume root, si applicano i seguenti requisiti:

  • RootVolume deve essere impostato su True. Il valore predefinito è False, che configura il volume secondario.

  • Il campo VolumeKmsKeyId è obbligatorio ed è necessario specificare la chiave gestita dal cliente. Questo perché il volume root deve essere sempre crittografato con una chiave AWS proprietaria o una chiave gestita dal cliente (se non si specifica la propria, viene utilizzata una chiave AWS proprietaria).

  • Non è possibile specificare il VolumeSizeInGB campo per i volumi root poiché HyperPod determina automaticamente la dimensione del volume principale.

Durante la configurazione del volume secondario, si applicano i seguenti requisiti:

  • RootVolume deve essere False (il valore predefinito di questo campo è False).

  • Il campo VolumeKmsKeyId è facoltativo. Puoi utilizzare la stessa chiave gestita dal cliente specificata per il volume root oppure una chiave diversa.

  • Il campo VolumeSizeInGB è obbligatorio perché è necessario specificare la dimensione desiderata per il volume secondario.

Importante

Quando utilizzi le chiavi gestite dal cliente, ti consigliamo vivamente di utilizzare chiavi KMS diverse per ogni gruppo di istanze del cluster. L’utilizzo della stessa chiave gestita dal cliente in più gruppi di istanze potrebbe concedere autorizzazioni continuative involontarie anche se provi a revocare una concessione. Ad esempio, se revocate una AWS KMS concessione per i volumi di un gruppo di istanze, quel gruppo di istanze potrebbe comunque consentire operazioni di ridimensionamento e applicazione di patch a causa delle concessioni esistenti su altri gruppi di istanze che utilizzano la stessa chiave. Per evitare questo problema, assicurati di assegnare chiavi KMS univoche a ciascun gruppo di istanze del cluster. Se devi limitare le autorizzazioni sui gruppi di istanze, prova una delle seguenti opzioni:

  • Disabilita la chiave KMS.

  • Applica le policy di rifiuto alla policy della chiave KMS.

  • Revoca tutte le concessioni del gruppo di istanze per la chiave (invece di revocare una sola concessione).

  • Elimina il gruppo di istanze.

  • Elimina il cluster.

Gli esempi seguenti mostrano come specificare le chiavi gestite dal cliente per i volumi root e secondari utilizzando and. CreateCluster UpdateCluster APIs Questi esempi mostrano solo i campi obbligatori per l’integrazione delle chiavi gestite dal cliente. Per configurare una chiave gestita dal cliente per un solo volume, specifica solo una EbsVolumeConfig.

Per ulteriori informazioni sulla configurazione delle richieste di creazione e aggiornamento dei cluster, consulta Creare un cluster SageMaker HyperPod e Aggiornamento SageMaker HyperPod della configurazione del cluster.

CreateCluster

L'esempio seguente mostra una AWS CLI richiesta di creazione di cluster con crittografia a chiave gestita dal cliente.

aws sagemaker create-cluster \ --cluster-name <your-hyperpod-cluster> \ --instance-groups '[{ "ExecutionRole": "arn:aws:iam::111122223333:role/<your-SageMaker-Execution-Role>", "InstanceCount": 2, "InstanceGroupName": "<your-ig-name>", "InstanceStorageConfigs": [ { "EbsVolumeConfig": { "RootVolume": True, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 100, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id" } } ], "InstanceType": "<desired-instance-type>" }]' \ --vpc-config '{ "SecurityGroupIds": ["<sg-id>"], "Subnets": ["<subnet-id>"] }'
UpdateCluster

L'esempio seguente mostra una AWS CLI richiesta di aggiornamento del cluster con crittografia a chiave gestita dal cliente.

aws sagemaker update-cluster \ --cluster-name <your-hyperpod-cluster> \ --instance-groups '[{ "InstanceGroupName": "<your-ig-name>", "InstanceStorageConfigs": [ { "EbsVolumeConfig": { "RootVolume": true, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 100, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id" } } ] }]'