Wenn ich Amazon-Athena-Abfragen in SQL Workbench/J, in AWS Lambda oder mit einem AWS SDK ausführe, erhalte ich die Fehlermeldung: „Unable to verify/create output bucket.“
Kurzbeschreibung
Hier sind einige häufige Ursachen für diesen Fehler:
- Der Amazon Simple Storage Service (Amazon S3) Bucket, den Sie als Speicherort des Abfrageergebnisses angegeben haben, ist nicht vorhanden.
- Die AWS-Richtlinie für Identity and Access Management (IAM) für den Benutzer oder die Rolle, die die Abfrage ausführt, verfügt nicht über die erforderlichen Amazon-S3-Berechtigungen, wie z. B. s3:GetBucketLocation.
Behebung
Wenn Sie den Speicherort des Abfrageergebnisses manuell festlegen, müssen Sie bestätigen, dass der S3 Bucket vorhanden ist. Überprüfen Sie dann die IAM-Richtlinie für den Benutzer oder die Rolle, die die Abfrage ausführt:
- Vergewissern Sie sich, dass die Berechtigungen in der folgenden Beispielrichtlinie, z. B. s3:GetBucketLocation, zulässig sind.
- Stellen Sie sicher, dass die IAM-Richtlinie keine Deny-Anweisung enthält, die aws:SourceIp oder aws:SourceVpc verwendet, um S3-Berechtigungen einzuschränken.
Hinweis: Wenn der Bucket bereits existiert, ist die s3:CreateBucket-Berechtigung nicht erforderlich. Wenn Sie den Speicherort des Abfrageergebnisses manuell festlegen, nehmen Sie arn:aws:s3:::aws-athena-query-results-* nicht in die Richtlinie auf. Die Richtlinie muss arn:aws:s3:::query-results-custom-bucket und arn:aws:s3:::query-results-custom-bucket/* nur enthalten, wenn Sie den Speicherort des Abfrageergebnisses manuell festlegen.
{
"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/*"
]
}
]
}
Weitere Informationen
Zugriff auf Amazon S3
Beispiele für Bucket-Richtlinien
Steuerung des Zugriffs von VPC-Endpunkten aus mit Bucket-Richtlinien
Beispiel — Objektoperationen