View a markdown version of this page

Use AWS KMS permissões para MLFlow Apps - SageMaker IA 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á.

Use AWS KMS permissões para MLFlow Apps

Você pode proteger seus dados em repouso usando criptografia para MLflow aplicativos. Por padrão, MLflow os aplicativos usam criptografia do lado do servidor com uma AWS chave própria. SageMaker também oferece suporte a uma opção de criptografia do lado do servidor com uma chave KMS gerenciada pelo cliente.

nota

A chave gerenciada pelo cliente criptografa os dados que SageMaker gerenciam o MLflow aplicativo. Ele não criptografa os artefatos que você armazena em sua própria loja de artefatos do Amazon S3. Esse bucket do Amazon S3 é criado e de propriedade de você, não gerenciado por AWS, portanto, você é responsável por configurar sua criptografia. Para criptografar seus artefatos com uma chave gerenciada pelo cliente, defina a criptografia padrão em seu bucket do Amazon S3. Para obter mais informações, consulte Definir o comportamento padrão da criptografia para os buckets do Amazon S3 no Guia do usuário do Amazon Simple Storage Service.

Server-side criptografia com AWS chaves próprias

Por padrão, MLflow os aplicativos criptografam seus dados em repouso usando uma chave AWS própria.

Server-side criptografia com chaves KMS gerenciadas pelo cliente

Como opção, você pode usar uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para substituir a criptografia de AWS propriedade existente. Como você tem controle total dessa camada de criptografia, você pode realizar tarefas como:

  • Estabelecer e manter as políticas de chave

  • Estabelecer e manter subsídios e IAM policies

  • Habilitar e desabilitar políticas de chaves

  • Alternar os materiais de criptografia de chave

  • Adicionar etiquetas

  • Criar réplicas de chaves

  • Chaves de agendamento para exclusão

Para obter mais informações, consulte Chaves mestras do cliente (CMKs) no AWS Key Management Service Guia do desenvolvedor.

Como MLFlow Os aplicativos usam subsídios em AWS KMS

Para usar sua chave gerenciada pelo cliente, seu MLflow aplicativo exige uma concessão. Quando você cria um MLflow aplicativo criptografado com uma chave gerenciada pelo cliente, SageMaker cria uma concessão em seu nome enviando uma CreateGrant solicitação para AWS KMS o. AWS KMS as concessões dão aos MLflow aplicativos acesso à sua chave gerenciada pelo cliente. Quando você exclui um MLflow aplicativo, SageMaker cancela a concessão.

Você pode revogar a concessão ou remover o acesso do serviço à sua chave gerenciada pelo cliente a qualquer momento. A revogação do acesso não interrompe imediatamente um aplicativo em execuçãoMLflow. A camada de armazenamento subjacente continua usando o acesso concedido quando o aplicativo foi criado. Depois de revogar o acesso, não SageMaker poderá mais usar sua chave para operações subsequentes que a exijam, como manutenção programada. Se sua chave ficar permanentemente indisponível — por exemplo, se você desativá-la ou programá-la para exclusão — seus dados em repouso não poderão mais ser descriptografados e o MLflow aplicativo se tornará irrecuperável.

Configurando uma chave KMS gerenciada pelo cliente para um MLFlow App

Você pode criar uma chave simétrica gerenciada pelo cliente usando o Console de gerenciamento da AWS ou as AWS KMS APIs.

Você pode especificar a chave gerenciada pelo cliente para um MLflow aplicativo somente no momento da criação. Você não pode alterá-lo durante a vida útil do aplicativo. MLflow Os aplicativos não suportam a troca de um aplicativo existente entre uma chave AWS própria e uma chave gerenciada pelo cliente, nem a substituição de uma chave gerenciada pelo cliente por outra. Se você quiser usar uma chave diferente, exclua o MLflow aplicativo e crie uma nova com a configuração de criptografia desejada.

Criação de uma chave simétrica gerenciada pelo cliente

Siga as etapas para Criar chaves do KMS de criptografia simétrica no Guia do desenvolvedor do AWS Key Management Service .

Política de chave

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para obter mais informações, consulte Determinar o acesso às chaves do AWS KMS no Guia do desenvolvedor do AWS Key Management Service .

Para usar sua chave gerenciada pelo cliente com seu MLflow aplicativo, sua política de chaves deve permitir as seguintes operações de API. A entidade principal dessas operações depende de se o perfil é usado para criar ou usar o aplicativo.

A seguir estão exemplos de declarações de política que você pode adicionar aos MLflow aplicativos com base no fato de a persona ser um administrador ou um usuário. Para obter mais informações sobre como especificar permissões em uma política, consulte Permissões do AWS KMS no Guia do Desenvolvedor do AWS Key Management Service . Para obter mais informações sobre solução de problemas, consulte Solucionar problemas de acesso à chave no Guia do desenvolvedor do AWS Key Management Service .

Administrador

A política a seguir pode ser usada pelo administrador que está criando MLflow aplicativos.

{ "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— Restringe o uso da chave às solicitações originadas SageMaker em uma região específica. Com"kms:ViaService": "sagemaker.region.amazonaws.com", as kms:DescribeKey permissões kms:CreateGrant e só podem ser exercidas quando a solicitação é feita SageMaker em seu nome — não diretamente por qualquer outro diretor ou serviço. Isso garante que sua chave seja usada somente para seu MLflow aplicativo.

  • kms:GrantOperations— Restringe as operações que a concessão SageMaker cria pode conter. Quando você cria um MLflow aplicativo, SageMaker faz chamadas CreateGrant para permitir que seu plano de dados criptografe e descriptografe seus dados em repouso. A adição kms:GrantOperations à kms:CreateGrant declaração garante que só seja SageMaker possível criar uma concessão contendo exatamente as operações necessárias para essa finalidade — CreateGrant Decrypt DescribeKey EncryptGenerateDataKey,GenerateDataKeyWithoutPlaintext,ReEncryptFrom,ReEncryptTo,, RetireGrant e.

  • Contexto de criptografia — Não aplicável. MLflow Os aplicativos não definem um contexto de criptografia personalizado na concessão, portanto, você não pode usar a chave de kms:EncryptionContext condição para reduzir ainda mais o acesso.

Usuário

Acessar um MLflow aplicativo — por meio das MLflow APIs ou de um URL pré-assinado — não envolve. AWS KMS SageMaker criptografa e descriptografa seus dados em repouso para você, e nenhuma AWS KMS solicitação é feita quando você acessa o aplicativo. Como resultado, se você acessar um MLflow aplicativo, não precisará de nenhuma AWS KMS permissão. Você não precisa contabilizar o AWS KMS acesso ao definir políticas de segurança para seus usuários.

Criando um novo MLFlow Aplicativo com uma chave KMS gerenciada pelo cliente

Para criptografar seu MLflow aplicativo com uma chave gerenciada pelo cliente, especifique a chave ao criar o aplicativo usando o --kms-key-id parâmetro do create-mlflow-app AWS CLI comando. Se você omitir esse parâmetro, SageMaker usa uma chave AWS própria. A função que as chamadas create-mlflow-app devem ter kms:CreateGrant e kms:DescribeKey as permissões na chave gerenciada pelo 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

Para obter mais informações sobre como criar um MLflow aplicativo, consulteCrie o aplicativo MLflow.

Monitoramento MLFlow Interação de aplicativos com AWS KMS

Você pode usar CloudTrail para rastrear as solicitações feitas AWS KMS em seu nome quando seu MLflow aplicativo usa uma chave gerenciada pelo cliente. Para obter mais informações sobre como encontrar e interpretar AWS KMS eventos em CloudTrail, consulte Registrar chamadas de AWS KMS API com CloudTrail no Guia do AWS Key Management Service desenvolvedor.

Os seguintes AWS KMS CloudTrail eventos são registrados para um MLflow aplicativo criptografado com uma chave gerenciada pelo cliente:

  • DescribeKeye CreateGrant — Gravado quando você cria um MLflow aplicativo. SageMaker valida sua chave e cria a concessão que permite que seus dados em repouso sejam criptografados e descriptografados em seu nome.

  • GenerateDataKeyWithoutPlaintext,Encrypt, e Decrypt — Gravado enquanto o MLflow aplicativo está sendo provisionado e enquanto opera. A camada de armazenamento SageMaker subjacente usa sua chave gerenciada pelo cliente para criptografar e descriptografar seus dados em repouso. Essas solicitações são feitas por AWS serviços que atuam em seu nome por meio da concessão, portanto, o CloudTrail userIdentity elemento mostra um AWS serviço como chamador em vez de um principal do IAM da sua conta.

  • RetireGrant— Gravado quando você exclui um MLflow aplicativo. Os subsídios criados para o aplicativo são retirados para que sua chave gerenciada pelo cliente não possa mais ser usada para ele.