AWS Lake Formation に登録されている Amazon Simple Storage Service(Amazon S3)ロケーションを使用して Amazon Athena にデータベース/テーブルを作成しようとすると、クエリが「
で Lake Formation の許可が不十分です」というエラーで失敗します。ただし、Athena AWS Identity and Access Management (IAM) ユーザーまたはロールには、必要な IAM 許可があります。
解決方法
このエラーは、次の条件に当てはまる場合に発生します。
- IAM ユーザーまたはロールが、Lake Formation に登録された Amazon S3 バケットでデータカタログリソース (データベースまたはテーブル) を作成または変更しようとした。
- IAM ユーザーまたはロールに、Lake Formation からの適切なデータロケーション許可がない。
このエラーを解決するには、データベースまたはテーブルの作成に使用する IAM ユーザーまたはロールに、適切なデータロケーション許可を付与する必要があります。Lake Formation で Athena を使用する場合は、IAM ユーザーまたはロールが必要とするデータアクセス許可に加えて、必要な S3 許可を Lake Formation の IAM ユーザーまたはロールに付与してください。データアクセス許可により、IAM ユーザーまたはロールは、基盤となる Amazon S3 ロケーションに対してデータの読み書きを行うことができます。ただし、Lake Formation のデータロケーション許可により、IAM ユーザーまたはロールは、登録された Amazon S3 ロケーションを指すデータカタログリソースを作成および変更できます。
エラーを解決するには、次の操作を行います。
- Athena の S3 パスが Lake Formation に正常に登録されていることを確認します。
- S3 パスにアクセスするための IAM ユーザーまたはロールに、必要なデータロケーション許可を付与します。
データレイクのロケーションが Lake Formation に登録されていることを確認する
- データレイク管理者ロールで AWS Lake Formation コンソールにサインインします。
- ナビゲーションペインの [Register and ingest] (登録および取り込み) で、[Data lake locations] (データレイクのロケーション) を選択します。
[データレイクのロケーション] リストで、データカタログリソースが指す S3 パスが Lake Formation に登録されていることを確認します。
AWS Lake Formation コンソールからデータのロケーションへのアクセス許可を付与する
- ナビゲーションペインで [データのロケーション] を選択します。
- [付与] を選択します。
- [許可の付与] ダイアログボックスで、[マイアカウント] を選択します。
- IAM ユーザーとロールの場合は、アクセス許可を付与する IAM ユーザーまたはロールを選択します。
- [ストレージのロケーション] で、エラーが発生している S3 パスを選択します。
- [Grant] (付与) を選択します。
**注意:**S3 パスが同じアカウント内にある場合にのみ、以下の手順に従ってください。S3 パスが別のアカウントにある場合は、クロスアカウントアクセスの前提条件がすべて満たされていることを確認してください。次に、「データのロケーションへのアクセス許可の付与 (外部アカウント)」に記載されている手順に従います。
関連情報
データロケーション許可の付与