Amazon Web Services ブログ

AWS Lake Formation で Amazon QuickSight の作成者に対するきめ細かなアクセス許可の設定を実現

Amazon QuickSightAWS Lake Formation セキュリティモデルの統合をお知らせします。これにより、QuickSight の作成者に対するきめ細かなアクセス制御の設定が可能になります。データレイク管理者は、Lake Formation コンソールを使用して、 QuickSight ユーザーおよびグループに対して、Lake Formation を介して登録および管理される AWS Glue データカタログのデータベース、テーブル、および Amazon Simple Storage Service (Amazon S3) バケットへのアクセス許可を付与できるようになりました。

この新機能は、以前 QuickSight で導入されたきめ細かなアクセス制御機能を強化します。これにより、管理者は、AWS Identity and Access Management (IAM) ポリシーを使用して、Amazon S3、Amazon AthenaAmazon Relational Database Service (Amazon RDS)、および Amazon Redshift への QuickSight 作成者のアクセス権限をスコープダウンすることができます。アクセス権限のスコープダウンは、QuickSight ユーザーまたは QuickSight ポータルのグループに IAM ポリシーをアタッチすることによって有効になります。詳細については、Amazon S3 および Amazon Athena に対する Amazon QuickSight のきめ細かなアクセスコントロールの導入を参照してください。

Athena ベースのデータセットについては、QuickSight 作成者の Amazon S3 またはデータカタログのデータベースおよびテーブルへのアクセス権限をスコープダウンするために IAM ポリシーを使用する必要がなくなりました。Lake Formation コンソールでアクセス許可を直接付与できます。さらなる利点として、QuickSight のユーザーおよびグループに列レベルのアクセス許可を付与することもできます。Lake Formation は、これらすべてを一元的に処理します。

この機能は現在、次のリージョンにおいて、QuickSight Enterprise エディションで利用できます。

  • 米国東部 (オハイオ)
  • 米国東部 ( バージニア北部 )
  • 米国西部 (オレゴン)

この投稿の時点においては、Lake Formation が存在するすべてのリージョンで間もなく利用可能になるところです。詳細については、リージョン表をご参照ください。

この投稿では、Lake Formation の新しいきめ細かなアクセス許可モデルと、QuickSight の IAM ポリシーベースのアクセス制御を比較します。また、QuickSight ユーザーおよびグループのきめ細かなアクセス許可を Lake Formation に移行する方法に関するガイダンスも提供します。

QuickSight のきめ細かな権限とLake Formation のアクセス許可の対比

QuickSight では、スコープダウン IAM ポリシーをアタッチすることで、AWS リソースへのユーザーまたはグループのアクセスを制限できます。ユーザーまたは (ユーザーがメンバーである) グループにそのようなポリシーが存在しない場合、QuickSight サービスロールのアクセス許可により、AWS リソースへのアクセス権限が決定されます。次の図は、Athena データセットを作成しようとしている QuickSight ユーザーに対するアクセス許可がどのように行われるのかを示しています。

Lake Formation の統合により、アクセス許可モデルが少し変更されます。Athena データセットを作成する際の 2 つの重要な違いは、以下のとおりです。

  • ユーザーは、次のいずれかを持つデータカタログのリソース (データベースおよびテーブル) を表示できます。
    1. IAMAllowedPrincipal セキュリティグループには、Lake Formation のリソースに対する Super アクセス許可が付与されています。
    2. QuickSight ユーザーまたは (ユーザーがメンバーである) グループの ARN には、Lake Formation のリソースへのアクセス許可が明示的に付与されます。
  • データカタログのリソースの S3 ソースバケットが Lake Formation に登録されている場合、ユーザーとグループに対するスコープダウン IAM ポリシーを含め、QuickSight の Amazon S3 アクセス設定は無視されます。

次の図は、QuickSight ユーザーが Athena データセットを作成しようとしたときのアクセス許可モデルの変更を示しています。

次のセクションでは、QuickSight できめ細かなアクセス許可がどのように機能するか、および既存のアクセス許可を Lake Formation セキュリティモデルに移行する方法について詳しく説明します。

QuickSight における既存のきめ細かなアクセス制御

このユースケースでは、マーケティングチームのビジネスアナリストである lf-gs-author が、QuickSight で Athena データセットである Monthly Sales を作成しました。AWS Glue の month_b2bsalesdata テーブルと S3 バケットである b2bsalesdata のデータを使用して構築されました。

以下のスクリーンショットは、テーブルの詳細を示しています。

次のスクリーンショットは、データセットの詳細を示しています。

データセットは、QuickSight グループである analystgroup とも共有されます。グループの詳細についての次のスクリーンショットを参照してください。

きめ細かな IAM ポリシーにより、lf-qs-author および analystgroup の S3 バケットである b2bsalesdata へのアクセスが有効になります。次のコードは、Amazon S3 アクセスポリシーの例です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::"
        },
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::b2bsalesdata"
            ]
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::b2bsalesdata/"
            ]
        }
    ]
}

Lake Formation で QuickSight のアクセス許可を有効にする

QuickSight のアクセス許可を Lake Formation に移行するには、(示されている順序で) 以下の手順に従います。

1.) QuickSight ユーザーとグループの ARN をキャプチャする

まず、ビジネスアナリストユーザーとマーケティングチームグループの QuickSight ARN をキャプチャします。describe-user API および describe-group API を使用して、それぞれユーザー ARN およびグループ ARN を取得できます。例えば、QuickSight のグループである analystgroup の ARN を取得するには、AWS コマンドラインインターフェイス (AWS CLI) に次のコードを入力します。

aws quicksight describe-group --group-name 'analystgroup' --aws-account-id 253914981264 --namespace default

次のようなコードで、応答からグループ ARN を記録します。

{
 "Status": 200,
 "Group": {
 "Arn": "arn:aws:quicksight:us-east-1:253914981264:group/default/analystgroup",
 "GroupName": "analystgroup",
 "PrincipalId": "group/d-906706bd27/3095e3ab-e901-479b-88da-92f7629b202d"
 },
 "RequestId": "504ec460-2ceb-46ca-844b-a33a46bc7080"
}

同じ手順を繰り返して、ビジネスアナリストである lf-qs-author の ARN を取得します。

2.) データレイクでアクセス許可を付与する

salesdbmonth_b2bsalesdata テーブルにアクセス許可を付与するには、以下の手順を実行します。

  1. データレイク管理者として Lake Formation コンソールにサインインします。

データレイク管理者は、Amazon S3 のデータカタログのリソース (データベースおよびテーブル) またはデータレイクの場所に対する任意のプリンシパル (IAM、QuickSight、または Active Directory) アクセス許可を付与できます。データレイク管理者およびデータレイクセキュリティモデルの作成の詳細については、AWS Lake Formation: How It Works を参照してください。

  1. [テーブル] を選択します。
  2. [month_b2bsalesdata] を選択します。
  3. [アクション] のドロップダウンメニューから、[アクセス許可を表示] を選択します。

各リソースタイプに関連付けられたアクセス許可を持つプリンシパルのリストが表示されます。

  1. [付与] を選択します。
  2. Active Directory および Amazon QuickSight のユーザーとグループの場合は、QuickSight ユーザーの ARN を入力します。
  3. [テーブルのアクセス許可] で [選択] をクリックにします。
  4. 必要に応じて、[列のアクセス許可] で、列レベルのアクセス許可をユーザーに付与できます。これは、QuickSight ポリシーではなく Lake Formation のアクセス許可を使用する場合のメリットです。
  5. [付与] を選択します。

  1. 前の手順を繰り返し、記録してある ARN を使用して、テーブル選択についてのアクセス許可を analystgroup に付与します。
  2. [month_b2bsalesdata] を選択します。
  3. [アクション] のドロップダウンメニューから、[アクセス許可を表示] を選択します。

次のスクリーンショットは、QuickSight のユーザーおよびグループに追加されたアクセス許可を示しています。

3.) IAMAllowedPrincipal グループのアクセス許可を削除する

Lake Formation のアクセス許可を有効にするには、month_b2bsalesdata テーブルから IAMAllowedPrincipal グループを削除する必要があります。

  1. [month_b2bsalesdata] を選択します。
  2. [アクション] のドロップダウンメニューから、[アクセス許可を表示] を選択します。
  3. [IAMAllowedPrincipals] を選択します。
  4. [取り消す] をクリックします。

  1. [取り消す] をクリックします

4.) Lake Formation に S3 バケットを登録する

これで、S3 ソースバケット (b2bsalesdata) を Lake Formation に登録できます。S3 バケットを登録すると、Amazon S3 認証が QuickSight のスコープダウンポリシーから Lake Formation セキュリティに切り替わります。

  1. [データレイクのロケーション] を選択します。
  2. [ロケーションを登録] を選択します。
  3. Amazon S3 パスの場合、ソースバケットのパスを入力します(s3://b2bsalesdata)。
  4. [IAM ロール] で、そのバケットへのアクセス許可を持つロールを選択します。
  5. [ロケーションを登録] を選択します。

5.) QuickSight でスコープダウンポリシーをクリーンアップする

これで、QuickSight でユーザーとグループのスコープダウンポリシーを削除できます。これらのポリシーを見つけるには、[セキュリティとアクセス許可] で [IAMポリシーの割り当て] を選択します。

6.) QuickSight でデータセットを作成する

データセットを作成するには、以下の手順を実行します。

  1. analystgroup (lf-qs-author 以外の誰か) のメンバーであるユーザーとして QuickSight にログインします。
  2. [データの管理] を選択します。
  3. [新しいデータセット] を選択します。
  4. [Athena] を選択します。
  5. データソース名として、Marketing Data と入力します。
  6. [データソースを作成] をクリックします。
  7. データベースのリストで、salesdb を選択します。
  8. month_b2bsalesdata を選択します。
  9. [データの編集/プレビュー] をクリックします。

次のスクリーンショットは、month_b2bsalesdata テーブルの詳細を示しています。

カスタム SQL を使用してデータをクエリすることもできます。

まとめ

この投稿では、Lake Formation のセキュリティモデルを QuickSight のユーザーとグループに拡張する方法を示しています。これにより、データレイクの管理者は、1 つのコンソールからデータカタログのリソースのアクセス許可を一元的に管理できます。組織が Lake Formation を使用したデータレイクの保護を導入するに際して、QuickSight の作成者に対するきめ細かなアクセス許可を一元的に管理する機能があれば、データ消費 (ビジネスインテリジェンス) レイヤーでのデータガバナンスおよびセキュリティ管理の適用を強化できます。これらのきめ細かなアクセス許可をデータベース、テーブル、または列レベルで QuickSight ユーザーおよびグループに有効にすることができ、QuickSight の Athena データセットに反映されます。

きめ細かなアクセス許可の Lake Formation への移行を今すぐ開始しましょう。ご意見やご質問はコメント欄からお寄せください。

 


著者について

Adnan Hasan 氏は、アマゾン ウェブ サービスの Amazon QuickSight のソリューションアーキテクトです。