Como posso solucionar problemas de permissões ao criar um grupo de recursos do SageMaker?

Última atualização: 21/11/2022

Estou tentando criar um grupo de recursos do Amazon SageMaker, mas recebo o erro “AccessDenied”.

Breve descrição

Os erros “AccessDenied” do SageMaker indicam que o perfil do AWS Identity and Access Management (IAM) não tem permissões suficientes para executar a operação Create Feature Group (Criar um grupo de recursos). Você pode receber o erro “AccessDenied” quando as permissões do perfil de execução estiverem ausentes ou configuradas incorretamente, como:

  • Política AmazonSageMakerFeatureStoreAccess e requisitos de nomenclatura de bucket do Amazon Simple Storage Service (Amazon S3) ausentes
  • Permissões do Lake Formation ausentes
  • Política do AWS Key Management Service (AWS KMS) ausente
  • Política de bucket do Amazon S3

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), confirme se você está executando a versão mais recente da AWS CLI.

Para exibir uma mensagem de erro detalhada ao criar o grupo de recursos, execute o seguinte comando no terminal e verifique a FailureReason:

$ aws sagemaker describe-feature-group --feature-group-name nameofthefeaturegroup

Política AmazonSageMakerFeatureStoreAccess e requisitos de nomenclatura de bucket do Amazon S3 ausentes

O perfil de execução que está sendo usado pode não ter a política AmazonSageMakerFeatureStore gerenciada pela Amazon. Analise as políticas vinculados ao perfil de execução. Em seguida, se estiver ausente, vincule a política AmazonSageMakerFeatureStoreAccess:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::*SageMaker*",
        "arn:aws:s3:::*Sagemaker*",
        "arn:aws:s3:::*sagemaker*"
      ]
    }
  ]
}

A criação do grupo de recursos pode falhar mesmo após a adição da política AmazonSageMakerFeatureStoreAccess. Como a política corresponde a uma política gerenciada pela Amazon que é armazenada em um bucket do S3, o bucket deve ter a palavra “sagemaker” na nomenclatura.

Permissões do Lake Formation ausentes

A criação do grupo de recursos pode falhar devido a permissões insuficientes do AWS Lake Formation. Quando um grupo de recursos é criado, um banco de dados do AWS Glue é criado automaticamente. Quaisquer grupos de recursos criados usando o SageMaker são criados como tabelas nesse banco de dados do AWS Glue.

Confirme se o perfil de execução usado tem permissão para criar um banco de dados do AWS Glue. Se o perfil de execução não tiver permissão, faça o seguinte:

Observação: o AWS Lake Formation requer que cada entidade principal (usuário ou perfil) seja autorizada a executar ações nos recursos gerenciados do Lake Formation.

  1. Abra o console do Lake Formation.
  2. Na barra lateral esquerda, escolha Permissions (Permissões) e, em seguida, Data Permissions (Permissões de dados).
  3. Escolha Grant (Conceder).
  4. Escolha o IAM execution role (Perfil de execução do IAM) no menu suspenso principals (entidades principais) e conceda as permissões necessárias.

Para obter mais informações sobre como conceder permissões de banco de dados, consulte Granting permissions on a database or table shared with your account (Como conceder permissões para um banco de dados ou tabela compartilhada com sua conta).

Política do AWS KMS ausente

A chamada da API CreateFeatureGroup pode falhar devido a políticas do AWS KMS ausentes. Para verificar, analise as políticas do IAM para o perfil de execução e confirme se ela tem as seguintes políticas vinculadas:

kms:GenerateDataKey
kms:Decrypt
kms: Encrypt

Se as políticas anteriores não estiverem visíveis após a execução do comando da CLI, vincule as políticas e tente novamente.

Política de bucket do S3

Os erros “AccessDenied” também podem ocorrer devido a uma política de bucket do Amazon S3 que impede o acesso ao bucket. Analise a política de bucket do S3 e, em seguida, verifique se o perfil de execução usado para criar o grupo de recursos tem acesso ao bucket.


Granting permissions on a database or table shared with your account (Conceder permissões para um banco de dados ou tabela compartilhada com sua conta)

Granting resource link permissions (Conceder permissões para links de recursos)

Uso de políticas de bucket

Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?