【AWS Athena】Lambdaからクエリを実行した際のIAM由来のエラーと対策
Athenaをテストした際に遭遇したエラーを以下にまとめる。別のエラーに遭遇した場合は後日追加していく。
Unable to Verify/Create Output Bucket
Unable to Verify/Create Output Bucket
S3へのアクセス権の不足が原因。以下のポリシーがアタッチされているか確認する。
- s3:ListBucket
- s3:ListBucketMultipartUploads
- s3:GetObject
- s3:GetBucketLocation
- s3:ListMultipartUploadParts
- s3:AbortMultipartUpload
- s3:PutObject
Access Denied
Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;
S3へのアクセス権の不足。 以下のポリシーがアタッチされているか確認する。
- s3:PutObject
- s3:ListObject
Insufficient permissions to execute the query.
Insufficient permissions to execute the query. User: ROLE_NAME is not authorized to perform: glue:GetTable on resource: arn:aws:glue:ap-northeast-1:UserId:catalog
エラーコードの通り、glue:GetTable
のアクセス権が不足している。
HIVE_CANNOT_OPEN_SPLIT
Your query has the following errors:HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split s3://BUCKET_NAME/part-00000-feda4fa5-d862-48ba-88ad-3a468e234a27-c000.snappy.parquet (offset=0, length=7791): com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code:403; Error Code: 403 Forbidden; Request ID: 028A0DA47697C2D7;(以下略)
この記事の通り、glue:GetTablesのアクセス権が不足している。
特に、自分でポリシーを作成した際に忘れやすい。