Quando executo consultas do Amazon Athena no SQL Workbench/J, no AWS Lambda ou com um SDK da AWS, recebo o erro: “Não é possível verificar/criar um bucket de saída.”
Breve descrição
Aqui estão algumas causas comuns desse erro:
- O bucket do Amazon Simple Storage Service (Amazon S3) que você especificou para o local do resultado da consulta não existe.
- A política do AWS Identity and Access Management (IAM) para o usuário ou função que executa a consulta não tem as permissões necessárias do Amazon S3, como s3:GetBucketLocation.
Resolução
Se você definir manualmente o local do resultado da consulta, será necessário confirmar a existência do bucket do S3. Em seguida, verifique a política do IAM para o usuário ou perfil que executa a consulta:
- Confirme se as permissões no exemplo de política a seguir, como s3:GetBucketLocation, são permitidas.
- Certifique-se de que a política do IAM não contenha uma declaração Deny que use aws:SourceIp ou aws:SourceVpc para restringir as permissões do S3.
Observação: se o bucket já existir, a permissão s3:CreateBucket não é necessária. Se você definir manualmente o local do resultado da consulta, não inclua arn:aws:s3:::aws-athena-query-results-* na política. A política deve incluir arn:aws:s3:::query-results-custom-bucket e arn:aws:s3:::query-results-custom-bucket/* somente se você definir manualmente o local do resultado da consulta.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:CreateBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::aws-athena-query-results-*",
"arn:aws:s3:::query-results-custom-bucket",
"arn:aws:s3:::query-results-custom-bucket/*"
]
}
]
}
Informações relacionadas
Acesso ao Amazon S3
Exemplos de políticas de bucket
Controle do acesso a partir de endpoints da VPC com políticas de bucket
Exemplo - operações com objetos