【トラブル】【AWS】EMRのStep実行時にエラー「Insufficient Lake Formation permission(s) on default」が表示

■ はじめに

以下の以前の記事で

https://dk521123.hatenablog.com/entry/2020/10/12/152659

『エラー「message:Insufficient Lake Formation permission(s) on global_temp」が表示』
っていうのを書いたが、今回は、エラー表示は近いが、
全く別物のトラブルについて扱う。

【1】概要

以下「EMR起動コマンド例」のようにコマンド実行しEMR起動後、
Step実行を行う際に、以下「【2】エラー内容」が表示されてしまい、
実行に失敗してしまう

EMR起動コマンド例

hive --database sample_db -f /xxx/xxx/sample.hql

【2】エラー内容

Caused MetaException(message: Unable to verify existence of
default database:
com.amazonaws.services.glue.model.AccessDeniedException
Insufficient Lake Formation permission(s) on defalut
(Service: AWSGlue; Status Code 400; Error Code AccessDeniedException;
Request ID ...

【3】原因

 (どうも現状のデータカタログ仕様上)
Glueデータカタログのクライアント動作として、処理対象リソースに関わらず、
defaultデータベースの存在チェックを確認しにいくため
 => 対応するには、defaultデータベースが存在し、かつ、
  そのdefaultデータベースに対して、アクセスできる必要がある

【4】対処案

前述した原因を踏まえて、以下を2点を行う。
~~~~~~~
1)defaultデータベースの作成
2)defaultデータベースへの権限付与
~~~~~~~

1)defaultデータベースの作成

* Glueの画面から [Data Catalog]-[Databases]から「Add database」で行える

2)defaultデータベースへの権限付与

* EMRのロール「EC2インスタンスプロファイル」に対して
 Lake formationで defaultデータベースへの describe権限をGrantする

関連記事

Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
Amazon EMR に関するトラブル
https://dk521123.hatenablog.com/entry/2020/08/05/144724
AWS Glue のトラブル ~ job編 - [2] ~
https://dk521123.hatenablog.com/entry/2020/10/12/152659
AWS Lake Formation ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/10/13/094041