AWS KMS key Criptografia gerenciada pelo cliente para SageMaker HyperPod - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS KMS key Criptografia gerenciada pelo cliente para SageMaker HyperPod

Por padrão, o volume raiz do Amazon EBS anexado ao seu SageMaker HyperPod cluster é criptografado usando um volume de AWS KMS key propriedade de. AWS Agora você tem a opção de criptografar o volume raiz do Amazon EBS e o volume secundário com chaves do KMS gerenciadas pelo cliente. O tópico a seguir descreve como as chaves gerenciadas pelo cliente (CMKs) funcionam com volumes em HyperPod clusters.

nota

As seguintes exclusões se aplicam ao usar chaves gerenciadas pelo cliente para SageMaker HyperPod clusters:

  • A criptografia de chave gerenciada pelo cliente só é permitida em clusters usando o modo de provisionamento contínuo de nós. Não é possível usar chaves gerenciadas pelo cliente em grupos de instâncias restritas.

  • HyperPod Atualmente, os clusters não oferecem suporte à transmissão de contexto de AWS KMS criptografia em solicitações de criptografia de chave gerenciadas pelo cliente. Portanto, não restrinja o escopo de sua política de chave do KMS usando condições de contexto de criptografia, pois isso impede que o cluster use a chave.

  • No momento, não é possível a transição de chaves do KMS. Portanto, a chave do KMS especificada na sua configuração não pode ser alterada. Para usar uma chave diferente, crie outro grupo de instâncias com a chave desejada e exclua seu grupo de instâncias antigo.

  • Atualmente, não há suporte para especificar chaves gerenciadas pelo cliente para HyperPod clusters por meio do console.

Permissões

Antes de usar sua chave gerenciada pelo cliente com HyperPod, você deve preencher os seguintes pré-requisitos:

  • Certifique-se de que a função de execução AWS do IAM que você está usando para SageMaker IA tenha as seguintes permissões AWS KMS adicionadas. A kms:CreateGrant permissão permite HyperPod realizar as seguintes ações usando permissões para sua chave KMS:

    • Escalando sua contagem de instâncias (UpdateCluster operações)

    • Adicionar nós de cluster (BatchAddClusterNodes operações)

    • Software de aplicação de patches (UpdateClusterSoftware operações)

    Para ter mais informações sobre como atualizar as permissões do seu perfil do IAM, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }
  • Adicione as permissões a seguir à política de chave do KMS. Para ter mais informações, consulte Change a key policy no Guia do desenvolvedor do AWS KMS .

    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" } } } ] }

Como usar sua chave do KMS

Você pode especificar suas chaves gerenciadas pelo cliente ao criar ou atualizar um cluster usando as operações de UpdateClusterAPI CreateClustere. A estrutura InstanceStorageConfigs permite no máximo duas configurações EbsVolumeConfig, nas quais você pode configurar o volume raiz do Amazon EBS e, opcionalmente, um volume secundário. É possível usar a mesma chave do KMS ou uma chave do KMS diferente para cada volume, dependendo das suas necessidades.

Você tem as seguintes opções ao especificar uma chave gerenciada pelo cliente para volumes: nenhum volume, ambos ou um ou outro. No entanto, não é possível especificar dois volumes raiz ou dois volumes secundários.

Ao configurar o volume raiz, os seguintes requisitos se aplicam:

  • RootVolume deve ser definido como True. O valor padrão é False, que, em vez disso, configura o volume secundário.

  • O campo VolumeKmsKeyId é obrigatório e você deve especificar sua chave gerenciada pelo cliente. Isso ocorre porque o volume raiz sempre deve ser criptografado com uma AWS chave própria ou uma chave gerenciada pelo cliente (se você não especificar a sua própria, uma AWS chave própria será usada).

  • Você não pode especificar o VolumeSizeInGB campo para volumes raiz, pois HyperPod determina o tamanho do volume raiz para você.

Ao configurar o volume secundários, os seguintes requisitos se aplicam:

  • RootVolume deve ser False (o valor padrão desse campo é False).

  • O campo VolumeKmsKeyId é opcional. É possível usar a mesma chave gerenciada pelo cliente especificada para o volume raiz ou usar uma chave diferente.

  • O campo VolumeSizeInGB é obrigatório, pois você deve especificar o tamanho desejado para o volume secundário.

Importante

Ao usar chaves gerenciadas pelo cliente, sugerimos que você utilize chaves diferentes do KMS para cada grupo de instâncias do cluster. Usar a mesma chave gerenciada pelo cliente em vários grupos de instâncias pode dar lugar a permissões contínuas indesejadas, mesmo se você tentar revogar uma concessão. Por exemplo, se você revogar uma AWS KMS concessão para os volumes de um grupo de instâncias, esse grupo de instâncias ainda poderá permitir operações de escalabilidade e correção devido às concessões existentes em outros grupos de instâncias usando a mesma chave. Para evitar esse problema, atribua chaves exclusivas do KMS a cada grupo de instâncias no cluster. Se precisar restringir permissões em grupos de instâncias, você pode experimentar uma das seguintes opções:

  • Desabilite a chave do KMS.

  • Aplique políticas de negação à política de chave do KMS.

  • Revogue todas as concessões de grupos de instâncias para a chave (em vez de revogar uma única concessão).

  • Exclua o grupo de instâncias.

  • Excluir o cluster.

Os exemplos a seguir mostram como especificar chaves gerenciadas pelo cliente para volumes raiz e secundário usando o CreateCluster UpdateCluster APIs e. Esses exemplos mostram somente os campos obrigatórios para a integração de chaves gerenciadas pelo cliente. Para configurar uma chave gerenciada pelo cliente para somente um dos volumes, especifique somente uma EbsVolumeConfig.

Para ter mais informações sobre como configurar solicitações de criação e atualização de clusters, consulte Criação de um SageMaker HyperPod cluster e Atualizando a configuração do SageMaker HyperPod cluster.

CreateCluster

O exemplo a seguir mostra uma AWS CLI solicitação de criação de cluster com criptografia de chave gerenciada pelo 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

O exemplo a seguir mostra uma AWS CLI solicitação de cluster de atualização com criptografia de chave gerenciada pelo 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" } } ] }]'