Comment éliminer l'erreur « Unable to Verify/Create Output Bucket » (Impossible de vérifier/créer le compartiment de sortie) dans Amazon Athena ?

Dernière mise à jour : 09/02/2021

Lorsque j'exécute des requêtes Amazon Athena dans SQL Workbench/J, dans AWS Lambda ou avec un kit AWS SDK, je reçois le message d'erreur« Unable to Verify/Create Output Bucket » (Impossible de vérifier/créer le compartiment de sortie).

Brève description

Voici quelques causes courantes de cette erreur :

  • Le compartiment Amazon Simple Storage Service (Amazon S3) que vous avez spécifié pour l'emplacement des résultats de requête n'existe pas.
  • La stratégie AWS Identity and Access Management (IAM) de l'utilisateur ou du rôle qui exécute la requête ne dispose pas des autorisations Amazon S3 requises, telles que s3:GetBucketLocation.

Solution

Si vous définissez manuellement l'emplacement des résultats de requête, vérifiez que le compartiment S3 existe. Ensuite, vérifiez la stratégie IAM de l'utilisateur ou du rôle qui exécute la requête :

  • Vérifiez que les autorisations de l'exemple de stratégie suivant sont activées.
  • Vérifiez que la stratégie IAM ne contient aucune instruction Deny qui utilise aws:SourceIp ou aws:SourceVpc pour restreindre les autorisations S3.

Remarque : l'autorisation s3:CreateBucket n'est pas nécessaire si le compartiment existe déjà. Si vous définissez manuellement l'emplacement du résultat des requêtes, n'incluez pas arn:aws:s3:::aws-athena-query-results-* dans la stratégie. Les autorisations arn:aws:s3:::query-results-custom-bucket et arn:aws:s3:::query-results-custom-bucket/* sont uniquement nécessaires si vous définissez manuellement l’emplacement des résultats des requêtes.

{
    "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/*"
            ]
        }
    ]
}