Comment résoudre l'erreur « Impossible de vérifier/créer un compartiment de sortie » dans Amazon Athena ?

Lecture de 2 minute(s)
0

Lorsque j'exécute des requêtes Amazon Athena dans SQL Workbench/J, dans AWS Lambda ou avec un kit AWS SDK, j'obtiens l'erreur : « Impossible de vérifier/créer un 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) pour l'utilisateur ou le rôle qui exécute la requête ne dispose pas des autorisations Amazon S3 requises, telles que s3:GetBucketLocation.

Ré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 :

  • Confirmez que les autorisations dans l'exemple de stratégie suivant, telle que s3:GetBucketLocation, 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 : si le compartiment existe déjà, l'autorisation s3:CreateBucket n'est pas requise. 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/*"
            ]
        }
    ]
}

Informations connexes

Accès à Amazon S3

Exemples de stratégies de compartiment

Contrôle de l'accès à partir des points de terminaison d'un VPC avec des stratégies de compartiment

Exemple : opérations d'objet

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 ans