View a markdown version of this page

Criptografia em repouso para aprendizado por reforço em vários turnos - 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á.

Criptografia em repouso para aprendizado por reforço em vários turnos

Opções de criptografia em repouso

Multi-turn trabalhos de aprendizado por reforço no Amazon SageMaker AI criptografam todos os dados em repouso. Seus dados de entrada de treinamento, dados de saída (incluindo pontos de verificação do modelo e artefatos de modelo treinados) e dados intermediários armazenados no Amazon S3 são criptografados usando criptografia do lado do servidor. Você não precisa realizar nenhuma configuração adicional para garantir que seus dados sejam criptografados em repouso.

A SageMaker IA da Amazon oferece suporte às seguintes opções de criptografia para trabalhos de RL de vários turnos:

  • Server-side criptografia com chave AWS KMS própria — Por padrão, o Amazon SageMaker AI criptografa todos os dados intermediários e de saída de treinamento usando uma chave KMS AWS própria. Não é exigida nenhuma configuração adicional.

  • Server-side criptografia com AWS KMS chaves (SSE-KMS) — Opcionalmente, você pode especificar uma chave KMS gerenciada pelo cliente para criptografar seus dados de saída de treinamento no Amazon S3. Se seus dados de entrada no Amazon S3 já estiverem criptografados com uma chave gerenciada pelo cliente, a função de execução deverá ter permissão para descriptografar esses dados.

Criptografando dados em repouso usando o gerenciamento pelo cliente AWS KMS keys

Como a RL de várias voltas usa uma chave KMS gerenciada pelo cliente

Quando você especifica uma chave KMS gerenciada pelo cliente na configuração de saída do seu trabalho de RL de várias voltas, a Amazon SageMaker AI usa essa chave para criptografar os seguintes recursos no Amazon S3:

  • Dados de saída de treinamento, incluindo artefatos de modelo treinados (pesos do adaptador LoRa)

  • Modelo intermediário input/output (pontos de verificação do modelo retomável e dados de trajetória)

  • Dados e traços do experimento MLflow

Quando você especifica uma chave KMS gerenciada pelo cliente, a Amazon SageMaker AI usa dois mecanismos para criptografar seus dados:

  • Subsídios — No momento da criação do emprego, a Amazon SageMaker AI usa as credenciais do chamador para criar uma ou duas concessões na chave KMS:

    • Subsídio de gravação — criado para cada trabalho que especifica uma chave gerenciada pelo cliente. Permite que o serviço criptografe e descriptografe o ponto de verificação do trabalho atual e os dados temporários armazenados na plataforma durante o treinamento.

    • Concessão de leitura — criada somente para trabalhos iterativos que são retomados do ponto de verificação de um trabalho anterior quando o trabalho anterior também usava uma chave gerenciada pelo cliente. Permite que o serviço decifre os dados do ponto de verificação do trabalho anterior. Essa concessão permite somente a decodificação e não permite a gravação de novos dados.

    Todas as bolsas são retiradas automaticamente quando o trabalho é concluído, garantindo que o serviço não tenha mais acesso à chave após o término do ciclo de vida do trabalho.

  • Função de execução — Ao salvar dados de saída (artefatos de modelo, pontos de verificação) em seu bucket do Amazon S3, o Amazon SageMaker AI usa a função de execução que você fornece. A função de execução deve ter permissões para usar a chave KMS para criptografia e descriptografia por meio do Amazon S3.

Durante um trabalho de treinamento, as seguintes AWS KMS operações ocorrem:

  • kms:GenerateDataKey— Chamado por meio do Amazon S3 ao gravar dados de saída criptografados (artefatos do modelo, pontos de verificação e registros).

  • kms:Decrypt— Chamado por meio do Amazon S3 ao ler dados de entrada criptografados ou dados de saída gravados anteriormente.

  • kms:DescribeKey— Chamado pela identidade do chamador no momento da criação do trabalho para verificar a configuração e o estado da chave KMS.

  • kms:CreateGrant— Chamado pela identidade do chamador no momento da criação do emprego para dar permissão ao serviço para armazenar dados temporários na plataforma durante o ciclo de vida do trabalho.

O serviço não armazena chaves de dados em cache. Cada operação de leitura ou gravação do Amazon S3 chama de AWS KMS forma independente por meio da integração de serviços do Amazon S3.

Configurando uma chave KMS gerenciada pelo cliente

Multi-turn As tarefas RL suportam somente AWS KMS chaves simétricas. Multi-region as chaves não são suportadas.

Configurando permissões para usar uma chave KMS gerenciada pelo cliente

Para usar uma chave KMS gerenciada pelo cliente com trabalhos de RL de várias rodadas, você deve configurar as permissões na função de execução do IAM e na política de chaves do KMS.

Permissões da função de execução

A função de execução do IAM que você passa para a CreateJob API deve ter as seguintes AWS KMS permissões. Essas permissões permitem que o trabalho de treinamento criptografe os dados de saída e descriptografe os dados de entrada por meio do 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— Necessário para ler dados de entrada criptografados e dados de saída gravados anteriormente do Amazon S3.

  • kms:GenerateDataKey— Necessário para criptografar dados de saída (artefatos de modelo, pontos de verificação) gravados no Amazon S3.

A kms:ViaService condição restringe o uso da chave às solicitações que chegam por meio do Amazon S3, impedindo que a chave seja usada para outras finalidades.

Permissões da função de execução do agente

A função de tempo de execução do agente que seu AgentCore agente ou AWS Lambda encaminhador do Amazon Bedrock assume deve ter as seguintes permissões. AWS KMS SageMaker A IA verifica se o chamador tem essas permissões antes de usar a chave KMS durante um trabalho de aprendizado por reforço (RL) em vários turnos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForMTRLRuntime", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" } } } ] }

A kms:ViaService condição para a função de tempo de execução do agente especifica sagemaker.*.amazonaws.com porque o serviço de tempo de execução do SageMaker AI executa as AWS KMS operações em nome do chamador. Por outro lado, a função de execução é usada s3.*.amazonaws.com porque acessa a chave por meio do Amazon S3.

Política de chaves do KMS

A política de chave padrão do KMS já permite que as funções do IAM na mesma conta usem a chave. Opcionalmente, você pode adicionar a seguinte instrução para restringir ainda mais o acesso somente à função de execução e à função de tempo de execução do agente:

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

Para permitir que o chamador crie concessões e descreva a chave, adicione a seguinte declaração à política de chaves:

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

Criação de um trabalho de RL de vários turnos com uma chave KMS gerenciada pelo cliente

Para criptografar os dados de saída com sua chave KMS gerenciada pelo cliente, especifique o ARN da chave no KmsKeyArn campo da OutputDataConfig em sua solicitação. CreateJob Para obter mais informações, consulte CreateJob na Referência da API SageMaker AI.

O exemplo a seguir mostra como especificar uma chave KMS noOutputDataConfig:

{ "OutputDataConfig": { "S3OutputPath": "s3://your-bucket/output/", "KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }

Se seus dados de entrada no Amazon S3 estiverem criptografados com uma chave gerenciada pelo cliente (SSE-KMS), certifique-se de que a função de execução tenha kms:Decrypt permissão para essa chave. Você pode usar a mesma chave para criptografia de entrada e saída, ou chaves diferentes.

Definindo o escopo do acesso à chave KMS gerenciada pelo cliente

Você pode usar os seguintes mecanismos para restringir o acesso à sua chave KMS gerenciada pelo cliente:

sagemaker: OutputKmsKeyArn chave de condição

Use a chave de sagemaker:OutputKmsKeyArn condição na política de IAM do chamador para controlar qual chave KMS pode ser especificada para criptografia de saída de trabalho. Isso permite que os administradores imponham que somente as chaves aprovadas sejam usadas ao criar trabalhos de RL de vários turnos. Para ver a lista completa de chaves de condição de SageMaker IA, consulte Ações, recursos e chaves de condição para a SageMaker IA da Amazon.

"Condition": { "ArnEquals": { "sagemaker:OutputKmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }
Proteção contra representante confuso

Use as chaves de aws:SourceAccount condição aws:SourceArn ou em sua política de chaves do KMS para evitar o problema confuso do delegado. Isso garante que somente solicitações originadas de sua conta ou recurso específico possam usar a chave.

"Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:region:account-id:job/*" } }

Contexto de criptografia para trabalhos de RL de vários turnos

Quando um trabalho de RL de várias voltas criptografa dados usando sua chave KMS gerenciada pelo cliente, a SageMaker IA da Amazon inclui um contexto de criptografia em cada AWS KMS solicitação feita por meio do Amazon S3. Um contexto de criptografia é um conjunto de pares de valores-chave que fornecem dados autenticados adicionais (AAD) para operações. AWS KMS O contexto de criptografia está conectado AWS CloudTrail e pode ser usado nas políticas de chaves do KMS e conceder restrições para restringir ainda mais o acesso.

A Amazon SageMaker AI usa o seguinte par de valores-chave de contexto de criptografia para trabalhos de treinamento de RL de vários turnos:

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

Para trabalhos de avaliação de RL em vários turnos, o contexto de criptografia usa:

{ "aws:sagemaker:agent-rft-evaluation-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFTEvaluation/job-name" }

O contexto de criptografia está vinculado ao trabalho específico que cria os dados criptografados. Cada trabalho criptografa sua própria saída com seu próprio ARN no contexto de criptografia. Isso fornece uma ligação criptográfica entre os dados criptografados e o trabalho que os produziu.

Usando o contexto de criptografia nas principais políticas

O contexto de criptografia é aplicado automaticamente por meio das restrições de concessão que a Amazon SageMaker AI cria no momento da criação do emprego. Você não precisa adicionar condições de contexto de criptografia à sua política de chaves KMS para que a criptografia funcione corretamente.

Se você adicionar condições de contexto de criptografia à kms:CreateGrant declaração em sua política de chaves do KMS, deverá permitir subsídios tanto para o trabalho atual quanto para o trabalho anterior em cadeias de treinamento iterativo. O exemplo a seguir permite que a Amazon SageMaker AI crie subsídios com qualquer ARN de trabalho de treinamento no contexto de criptografia:

{ "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 você restringir kms:CreateGrant a um único ARN de trabalho específico no contexto de criptografia, o treinamento iterativo falhará porque o Amazon SageMaker AI também cria uma concessão de leitura com o ARN do trabalho anterior como contexto de criptografia. Use um padrão curinga para permitir subsídios para qualquer trabalho em sua conta.

Contexto de criptografia no treinamento iterativo

Quando você executa trabalhos de treinamento iterativo (em que um trabalho subsequente é retomado a partir do ponto de verificação de um trabalho anterior), o contexto de criptografia de cada trabalho contém o próprio ARN desse trabalho. O Amazon SageMaker AI gerencia automaticamente duas AWS KMS bolsas para apoiar o treinamento iterativo:

  • Concessão de gravação — Permite que a tarefa atual criptografe seus próprios dados de ponto de verificação usando o ARN da tarefa atual como contexto de criptografia.

  • Concessão de leitura — Permite que o trabalho atual descriptografe os dados do ponto de verificação do trabalho anterior usando o ARN do trabalho anterior como contexto de criptografia.

Ambos os subsídios são automaticamente retirados quando o trabalho é concluído. Você não precisa adicionar nenhuma declaração de política importante adicional para que o treinamento iterativo funcione com chaves gerenciadas pelo cliente.

Contexto de criptografia em AWS CloudTrail

Quando você revisa CloudTrail os registros de chamadas de AWS KMS API feitas por trabalhos de RL de várias rodadas, o contexto de criptografia aparece no requestParameters campo da entrada do registro. Você pode usar essas informações para determinar qual trabalho executou uma operação específica de criptografia ou descriptografia em seus dados.

Monitorando a interação de RL de várias voltas com AWS KMS

Você pode usar AWS CloudTrail para monitorar chamadas de AWS KMS API feitas em nome de seus trabalhos de RL de vários turnos. Os nomes de CloudTrail eventos a seguir são relevantes para monitorar o uso da chave KMS:

  • Decrypt— Registrado quando o trabalho lê dados criptografados do Amazon S3.

  • GenerateDataKey— Registrado quando o trabalho grava dados criptografados no Amazon S3.

  • CreateGrant— Registrado quando o chamador cria uma concessão no momento da criação do emprego.

  • DescribeKey— Registrado quando o trabalho descreve a chave KMS para validação.

Nas entradas de CloudTrail registro desses eventos, procure os seguintes valores:

  • solicitação Parameters.granteePrincipal — Para CreateGrant eventos, mostra o diretor do serviço que recebeu a concessão (job.sagemaker.amazonaws.com).

Para obter mais informações sobre como registrar chamadas de AWS KMS API, consulte Registrar chamadas de AWS KMS API com AWS CloudTrail no Guia do AWS KMS desenvolvedor.