Ir para o conteúdo

Como resolver erros do Amazon S3 AccessDenied em tarefas de treinamento do SageMaker AI?

4 minuto de leitura
0

Minha tarefa de treinamento do Amazon SageMaker AI falhou com um erro AccessDenied, mesmo que a política do AmazonSageMakerFullAccess esteja anexada ao perfil de execução. Quero solucionar esse problema.

Breve descrição

Erros AccessDenied pode ocorrer se sua política do AWS Identity and Access Management (AWS IAM) não permite uma ou mais das seguintes ações do Amazon Simple Storage Service (Amazon S3):

  • s3:ListBucket
  • s3:GetObject
  • s3:PutObject

Sua chamada de API do SageMaker AI determina as permissões necessárias. Por exemplo, a API CreateModel exige somente s3:GetObject, mas a API CreateTrainingJob exige s3:GetObject, s3:PutObject e s3:ListObject.

Resolução

Para resolver um erro de AccessDenied, execute as seguintes ações com base no seu cenário.

Bucket de entrada criptografado

Se você criptografou dados no bucket do S3 com o AWS Key Management Service (AWS KMS), verifique as permissões. Certifique-se de que a política do IAM anexada ao perfil de execução permita as ações kms:encrypt e kms:decrypt. Verifique se a política de chaves do AWS KMS concede acesso ao perfil de execução.

Você pode usar uma chave do AWS KMS para o volume de armazenamento de machine learning (ML) na configuração de recursos do seu trabalho. Se você usa uma chave do AWS KMS, a política do IAM deve permitir a ação kms:CreateGrant. Para obter mais informações, consulte Concessões no AWS KMS.

Observação: é uma prática recomendada criptografar o volume de armazenamento de ML.

Ao usar o SDK do Python e implementar uma abstração da classe estimator.EstimatorBase, passe os parâmetros output_kms_key e volume_kms_key por meio dos argumentos da palavra-chave kwargs. Executa essa ação independentemente da presença documentada dos parâmetros de output_kms_key e volume_kms_key na classe herdeira. Para obter mais informações, consulte Estimadores no site Amazon SageMaker Python SDK.

Limites de permissões

Se você definir limites de permissões para o perfil de execução, o SageMaker AI poderá executar somente as ações permitidas pela política do IAM e pelos limites de permissões. Certifique-se de que a política do IAM e os limites de permissões permitam as ações necessárias do Amazon S3.

Políticas do bucket

Se o bucket de entrada usar uma política de bucket, certifique-se de que a política de bucket permita que o perfil de execução execute as ações necessárias do Amazon S3.

Veja a seguir um exemplo de uma política de bucket que nega o acesso ao perfil de execução do SageMaker AI e causa um erro AccessDenied:

{  
  "Version": "2012-10-17",
  "Id": "ExamplePolicy01",
  "Statement": [
    {
      "Sid": "ExampleStatement01",
      "Effect": "Deny",
      "Principal": {
        "AWS": "arn:aws:iam::Account-ID:role/SageMakerExecutionRole"
      },
      "Action": [
        "s3:GetObject",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::awsdoc-example-bucket/*",
        "arn:aws:s3:::awsdoc-example-bucket"
      ]
    }
  ]
}

Observação: para permitir o acesso ao perfil de execução, substitua Negar por Permitir para o valor do efeito.

Acesso cruzado à conta da AWS

Se uma conta diferente da AWS possuir os dados do Amazon S3, verifique se ambas as contas têm acesso à chave do AWS KMS. Se você não especificar uma chave do AWS KMS para a tarefa de treinamento, o SageMaker AI assumirá como padrão uma chave de criptografia do lado do servidor do Amazon S3. Outra conta não pode compartilhar ou usar uma chave de criptografia padrão do lado do servidor do Amazon S3.

Certifique-se de que a política do IAM para o perfil de execução do SageMaker AI e a política de bucket do S3 tenham permissões entre contas.

Para obter mais informações, consulte Como posso implantar um modelo do Amazon SageMaker AI em uma conta diferente da AWS?

Informações relacionadas

Como soluciono erros de acesso negado 403 do Amazon S3?

Como usar os perfis de execução do SageMaker AI

AWS OFICIALAtualizada há 6 meses