Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Por que meu trabalho no AWS Glue retorna o erro “403 Acesso Negado”?
Meu trabalho do AWS Glue retorna o erro “403 Acesso Negado” quando o trabalho tenta ler ou escrever em um bucket do Amazon Simple Storage Service (Amazon S3).
Breve descrição
Os exemplos a seguir são motivos comuns pelos quais você pode receber um erro de “Acesso Negado”:
- O perfil do AWS Identity and Access Management (AWS IAM) não tem as permissões necessárias para acessar o bucket.
- As políticas de bucket do Amazon S3 não aceitam as permissões necessárias para o perfil do IAM.
- O proprietário do bucket do S3 é diferente do proprietário do objeto.
- A política de endpoint da Amazon Virtual Private Cloud (Amazon VPC) não inclui as permissões necessárias para acessar o bucket do S3.
- O objeto está criptografado pelo AWS Key Management Service (AWS KMS). A política do AWS KMS não concede as permissões mínimas necessárias ao perfil do IAM para usar a chave.
- O bucket do S3 está com a opção Requester Pays ativada.
- O acesso ao bucket do S3 é restrito pelas políticas de controle de serviços do AWS Organizations.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Atualize as permissões do perfil do IAM para acessar o bucket do S3
O perfil do IAM que executa o trabalho do AWS Glue precisa de acesso ao bucket do S3. Para conceder as permissões necessárias ao perfil do IAM anexe uma política do IAM ao perfil do IAM. Também é uma prática recomendada anexar a Política Gerenciada do AWSGlueServiceRole ao perfil do IAM para confirmar que as permissões básicas de trabalho do AWS Glue foram fornecidas. Além disso, crie e anexe uma política Gerenciada pelo Cliente para obter permissões para colocar objetos do S3 durante a escrita.
Conclua as seguintes etapas para atualizar as permissões do perfil do IAM para acessar o bucket:
- Abra o console do IAM.
- Abra o perfil do IAM que está associado ao trabalho do AWS Glue e exige acesso ao bucket.
- Na guia Permissões do usuário/perfil do IAM, expanda cada política para ver seu documento de política JSON.
- Nos documentos de política JSON, procure por políticas com o nome do bucket. Em seguida, confirme se essas políticas permitem as ações corretas do S3 no bucket. Se o perfil do IAM não conceder o acesso necessário ao bucket, então adicione uma política que conceda as permissões corretas. Por exemplo, a seguinte política do IAM concede ao perfil do IAM acesso para colocar objetos (s3:PutObject) no bucket do S3 DOC-EXAMPLE-BUCKET:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": "s3:PutObject", "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
Observação: substitua DOC-EXAMPLE-BUCKET na política pelo nome do seu bucket do S3.
Atualize a política de bucket para conceder as permissões necessárias ao perfil do IAM
Analise a política de bucket para as seguintes configurações:
- Quaisquer declarações que neguem explicitamente o acesso do perfil do IAM ao bucket
- Quaisquer permissões e condições ausentes que possam restringir o acesso do perfil do IAM
Conclua as seguintes etapas para revisar e modificar a política de bucket para conceder o acesso necessário ao perfil do IAM:
- Abra o console do Amazon S3.
- No painel de navegação, escolha Buckets.
- Selecione o bucket do S3.
- Na página Permissões, em Política de bucket, revise a política de bucket para ver se há declarações que neguem o acesso do perfil ao bucket.
- Modifique a política de bucket para editar ou remover quaisquer declarações que neguem o acesso do perfil do IAM ao bucket.
Para exemplos de políticas de bucket, consulte Exemplos de políticas de bucket do Amazon S3.
Atualize o proprietário de um objeto
Por padrão, a conta da AWS que faz o upload de um objeto é proprietária do objeto S3. Essa configuração é verdadeira mesmo quando uma conta diferente é proprietária do bucket. Se outras contas puderem fazer upload de objetos no seu bucket, verifique qual conta possui os objetos que sua identidade do IAM não pode acessar. Para verificar qual conta é proprietária do objeto, execute o comando GetObjectAcl.
Se as identidades do IAM de outras contas fizerem upload de objetos para seu bucket do S3, configure a Propriedade de Objetos do S3. Em seguida, adicione uma política de bucket que exija que objetos sejam carregados com a lista de controle de acesso (ACL) bucket-owner-full-control. A adição da política de bucket altera automaticamente o proprietário do objeto para o proprietário do bucket quando o objeto é carregado com a ACL bucket-owner-full-control. Para mais informações, consulte Quando outras contas da AWS fazem upload de objetos para meu bucket do Amazon S3, como posso exigir que elas me concedam o controle total desses objetos?
Atualize a política de endpoint da Amazon VPC
Atualize a política de endpoint da VPC para incluir as permissões necessárias para acessar os buckets e objetos do S3 quando as duas condições a seguir forem verdadeiras:
- Seu trabalho do AWS Glue lê ou escreve objetos no Amazon S3.
- A conexão usa um endpoint da VPC para encaminhar para o Amazon S3.
Por exemplo, a seguinte política de endpoint da VPC permite acesso somente ao bucket DOC-EXAMPLE-BUCKET. Se o seu bucket não estiver listado como um recurso permitido na política, os usuários ou perfis não poderão acessar seu bucket por meio do endpoint da VPC:
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Observação: substitua DOC-EXAMPLE-BUCKET na política pelo nome do seu bucket do S3.
Se usuários ou perfis fizerem upload de objetos com uma ACL, você deverá atualizar a política de endpoint da VPC para conceder acesso à ação PutObjectAcl. Por exemplo:
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Atualize a política de chave do AWS KMS para permitir o acesso ao perfil do IAM
Se seu trabalho de extração, transformação e carregamento (ETL) lê ou escreve dados criptografados no Amazon S3, seu trabalho deve ter as seguintes configurações:
- A política do perfil do IAM inclui as permissões necessárias para as ações do AWS KMS.
- A política da chave do AWS KMS inclui as permissões necessárias para o perfil do IAM.
Inclua as seguintes permissões na política do perfil do IAM para permitir as ações necessárias do AWS KMS:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
Observação: substitua o nome do recurso da Amazon (ARN) na política pelo ARN de sua escolha.
Para mais informações, consulte Configurar a criptografia no AWS Glue.
Analise a política de chave do KMS para verificar se ela permite o acesso ao perfil do trabalho do AWS Glue. Para mais informações sobre as políticas de chave, consulte Políticas de chave no AWS KMS.
Analise a opção Requester Pays em seu bucket do S3
Se o bucket do S3 tiver a opção Requester Pays ativada, todas as solicitações para o bucket a partir do trabalho do AWS Glue deverão incluir o cabeçalho Requester Pays. Por padrão, as solicitações do AWS Glue para o Amazon S3 não incluem o cabeçalho Requester Pays. Sem esse cabeçalho, uma chamada de API para um bucket do Requester Pays falha com uma exceção de “Acesso Negado”. Para adicionar o cabeçalho Requester Pays a um script ETL, use hadoopConfiguration().set() para incluir fs.s3.useRequesterPaysHeader na variável GlueContext ou na variável de sessão do Apache Spark. Para mais informações, consulte Como posso acessar os buckets do Amazon S3 Requester Pays do AWS Glue, Amazon EMR ou Athena?
Verifique sua política de controle de serviços do AWS Organizations
Se você estiver usando o AWS Organizations, confira as políticas de controle de serviços para ter certeza de que a política permite o acesso ao Amazon S3. Por exemplo, a política a seguir nega explicitamente o acesso ao Amazon S3 e resulta em um erro de “Acesso Negado”:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }
Para mais informações, consulte Habilitar todos os atributos para uma organização com o AWS Organizations.
Informações relacionadas

Conteúdo relevante
- feita há um ano
- feita há um ano
AWS OFICIALAtualizada há um ano