Lake Formationで管理するTableにQuickSightからアクセスする(LF-Tagの利用)

今回のブログでは、QuickSightからData Lake(Lake Formation管理)へLF-Tagによりアクセスする方法を検証します。
2022.01.11

データアナリティクス事業本部のnkhrです。今回のブログでは、QuickSightからData Lake(Lake Formation管理)へLF-Tagによりアクセスする方法を検証します。

Lake Formationの基本設定および、サンプルデータの準備は、以下のブログに従って準備しました。

検証イメージは以下の通りです。灰色部分は上記のブログを参考に、既に構築済みとします。

QuickSightの設定

QuickSightの起動

今回は以下の設定でQuickSightを立ち上げました。

  • Plan: Enterprise (無料期間超えるとPlan料金が課金されるので、不要な場合はアカウント解除必要)
  • Autentication Method:Use IAM federated identities & QuickSight-managed users
  • Region:Tokyo
  • IAM Role:Use QuickSight-managed role (default)
    • QuickSightはデフォルトのManaged roleとして「aws-quicksight-service-role-v0」を自動作成します
  • Allow access and autodiscovery for these resources:なし

Athena利用権限の付与

Athena経由でLake Formation管理のData Catalogにアクセスするため、Athenaの利用権限が必要です。今回は、AthenaとAthenaの出力で利用するバケットを指定します。

上記を実行することでデフォルトロール「aws-quicksight-service-role-v0」に自動で権限が追加されます。

Groupの作成

QuickSightでは、グループを作成してユーザをグループ単位で管理できます。2022/01時点ではグループはAWS CLIから作成する必要があります。

  • グループを作成する
$ aws quicksight create-group --aws-account-id=<account-id> --namespace=default --group-name="LakeGroup" --description="LakeFormation TestGroup”
$ aws quicksight list-groups --aws-account-id=<account-id> --namespace=default
  • メンバーを追加する
$ aws quicksight create-group-membership --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup --member-name=<quicksight-username>
$ aws quicksight list-group-memberships --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup

削除する場合もAWS CLI経由で実行します。

  • グループの削除する
$ aws quicksight delete-group --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup

Lake Formation設定

タグを追加する

QuickSightのグループで利用するタグをLake Formationに追加します。

  • Key: viewers
  • Value: quicksight

QuickSightのグループにタグを付与する

  • Principle: SAML users and groups
    • 作成したGroupのARNを指定する
    • AWS CLIの「aws quicksight list-groups 」コマンドから取得可能です
  • LF-Tag
    • viewers/quicksight
  • Database Permission
    • Describe
  • Table Permission
    • Select

Databaseにタグを付与する

Lake Formationでは既にDatabase: reviewsとTables:test_lakeformation_xxxが作成済みとします。

Database一覧に表示されるreviewsの詳細画面を表示し(リンククリック)、LF-Tagsの「Edit LF-tags」ボタンからviewers:quicksightを追加します。

Databaseにタグを付与した場合は、Database配下に作成されるTableにも自動でタグが継承されます。継承されたタグは、Tableから削除することはできません。

QuickSightでの可視化

データセットの追加

QuickSightのコンソールから「データセット」の項目を選択し、「新しいデータセット」のボタンからデータセットを選択します。

  • データセット:Athena
  • データソース名:reviews
  • テーブル:test_lakeformation_xxx
  • 「迅速な分析のために SPICE へインポート」を選択

可視化

フィールドリストから「product_titile」をシートにクリック&ドロップすることで、product_titleの名前および数が可視化できます。

最後に

今回は、LakeFormationで管理しているDataSetに対してAthena/QuickSightからアクセスする方法を確認しました。Lake Formationを利用することで、Data LakeへのアクセスをLake Formation側で一元的に制御できるため、QquickSightを利用する場合はLake Formationを利用する価値はあるかなと思いました。

以上、nkhrでした。