翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lake Formation のきめ細かなアクセスコントロールを使用したデータレイクの共有
このチュートリアルでは、 AWS アカウント で複数の を管理するときに Lake Formation を使用してデータセットをすばやく簡単に共有する方法 step-by-step を説明します AWS Organizations。機密データへのアクセスを制御するには、きめ細かな許可を定義します。
次の手順では、アカウント A のデータレイク管理者がアカウント B に対してきめ細かなアクセスを付与する方法と、アカウント B のユーザーがデータスチュワードとしてアカウント内の他のユーザーに対して共有テーブルへのきめ細かなアクセスを許可する方法も示します。各アカウント内のデータスチュワードは、独自のユーザーに個別にアクセスを委任し、各チームまたは事業部門 (LOB) に自律性を付与できます。
ユースケースでは、 AWS Organizations を使用して を管理していることを前提としています AWS アカウント。1 つの組織単位 (OU1) のアカウント A のユーザーは、 のアカウント B のユーザーにアクセス権を付与しますOU2。Organizations を使用していない場合 (少数のアカウントしか持っていない場合など) でも、同じアプローチを使用できます。次の図は、データレイク内でのデータセットに対するきめ細かなアクセスコントロールを示しています。データレイクは、アカウント A にあります。アカウント A のデータレイク管理者は、アカウント B に対してきめ細かなアクセス権を提供しています。この図は、アカウント B のユーザーがアカウント A のデータレイクテーブルの列レベルのアクセス権をアカウント B の別のユーザーに提供していることも示しています。
対象者
このチュートリアルは、データスチュワード、データエンジニア、データアナリストを対象としています。次の表は、このチュートリアルで使用するロールのリストです。
ロール | 説明 |
---|---|
IAM 管理者 | AWS 管理ポリシーを持つユーザー: AdministratorAccess 。 |
データレイク管理者 |
AWS マネージドポリシーを持つユーザー: ロールに |
データアナリスト | AWS マネージドポリシー: がAmazonAthenaFullAccess アタッチされているユーザー。 |
前提条件
このチュートリアルを開始する前に、正しいアクセス許可を持つ管理者ユーザーとしてサインインするために AWS アカウント 使用できる が必要です。詳細については、「初期設定 AWS タスクを完了する」を参照してください。
このチュートリアルでは、 に精通していることを前提としていますIAM。の詳細についてはIAM、IAM「 ユーザーガイド」を参照してください。
このチュートリアルでは、以下のリソースが必要です。
-
2 つの組織単位
OU1 – アカウント A を含む
OU2 – アカウント B を含む
アカウント A の Amazon S3 データレイクのロケーション (バケット)
アカウント A のデータレイク管理者ユーザー。データレイク管理者は、Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) または Lake Formation の PutDataLakeSettings
オペレーションを使用して作成できますAPI。アカウント A に設定した Lake Formation と、アカウント A の Lake Formation に登録した Amazon S3 データレイクのロケーション。
以下のIAM管理ポリシーを持つアカウント B の 2 人のユーザー:
testuser1 – AWS 管理ポリシーが
AWSLakeFormationDataAdmin
アタッチされています。testuser2 – AWS マネージドポリシーが
AmazonAthenaFullAccess
アタッチされています。
アカウント B の Lake Formation データベース内のデータベース testdb。
ステップ 1: 別のアカウントに対してきめ細かなアクセスを提供する
アカウント A のデータレイク管理者がアカウント B に対してきめ細かなアクセスを提供する方法について学習します。
別のアカウントに対してきめ細かなアクセスを許可する
データレイク管理者として、アカウント A AWS Management Console https://console.aws.amazon.com/connect/
の で にサインインします。 Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) を開き、開始する を選択します。 ナビゲーションペインで、データベース を選択します。
[Create database] (データベースを作成) を選択します。
[Database] (データベース) の詳細セクションで、[Database] (データベース) を選択します。
[Name] (名前) に名前を入力します (このチュートリアルでは
sampledb01
を使用します)。このデータベースの新しいテーブルのIAMアクセスコントロールのみを使用するが選択されていないことを確認してください。これが選択されていないと、Lake Formation からアクセスをコントロールできます。
[データベースの作成] を選択します。
[Database] (データベース) ページで、データベース
sampledb01
を選択します。[Actions] (アクション) メニューで、[Grant] (付与) を選択します。
[Grant permissions] (許可の付与) セクションで、[External account (外部アカウント) を選択します。
AWS アカウント ID または AWS 組織 ID の場合は、 にアカウント B のアカウント ID を入力しますOU2。
[Table] (テーブル) で、アカウント B にアクセスを許可するテーブルを選択します (このチュートリアルでは、テーブル
acc_a_area
を使用します)。オプションとして、テーブル内の列へのアクセスを許可することもできます (このチュートリアルでは、これを行います)。[Include columns] (列を含める) で、アカウント B にアクセスを許可する列を選択します (このチュートリアルでは、タイプ、名前、識別子への許可を付与します)。
[Columns] (列) で、[Include columns] (列を含める) を選択します。
[Table permissions] (テーブルの許可) で、[Select] (選択) を選択します。
[Grantable permissions] (付与可能な許可) で、[Select] (選択) を選択します。付与可能な許可を設定することで、アカウント B の管理者ユーザーはアカウント B の他のユーザーに許可を付与できるようになります。
[Grant] (付与) を選択します。
ナビゲーションペインで、[Tables (テーブル)] を選択します。
アクセスセクションがある AWS アカウント および AWS 組織には、アクティブな接続が 1 つ表示されます。
リソースリンクを作成する
Amazon Athena などの統合サービスは、複数のアカウントをまたいでデータベースやテーブルに直接アクセスできません。したがって、リソースリンクを作成する必要があります。Athena がアカウント内のリソースリンクを使用して、他のアカウントのデータベースやテーブルにアクセスできるようにします。テーブル (acc_a_area
) へのリソースリンクを作成し、アカウント B のユーザーが Athena を使用してデータをクエリできるようにします。
アカウント B の https://console.aws.amazon.com/connect/
で AWS コンソールに としてサインインします testuser1
。Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) のナビゲーションペインで、テーブル を選択します。アカウント A がアクセスを提供しているテーブルが表示されます。 テーブル
acc_a_area
を選択します。[Actions] (アクション) メニューで、[Create resource link] (リソースリンクを作成) を選択します。
[Resource link name] (リソースリンク名) に名前 (このチュートリアルでは
acc_a_area_rl
) を入力します。[Database] (データベース) で、データベース (
testdb
) を選択します。[Create] (作成) を選択します。
ナビゲーションペインで、[Tables] (テーブル) を選択します。
テーブル
acc_b_area_rl
を選択します。[Actions] (アクション) メニューで、[View data] (データの表示) を選択します。
Athena コンソールにリダイレクトされ、データベースとテーブルが表示されます。
これで、テーブルに対してクエリを実行し、アカウント B から testuser1 にアクセスを許可した先の列値を確認できます。
ステップ 2: 同じアカウント内のユーザーにきめ細かなアクセスを提供する
このセクションでは、アカウント B のユーザー(testuser1
) がデータスチュワードとして同じアカウント内の別のユーザー (testuser2
) に対し、共有テーブル aac_b_area_rl
内の列名へのきめ細かなアクセスを提供する方法を示します。
同じアカウント内のユーザーに対してきめ細かなアクセスを許可する
アカウント B の https://console.aws.amazon.com/connect/
で AWS コンソールに としてサインインします testuser1
。Lake Formation コンソールのナビゲーションペインで、[Tables] (テーブル) を選択します。
テーブルに対する許可は、リソースリンクを使用して付与できます。これを実行するには、[Tables] (テーブル) ページでリソースリンク
acc_b_area_rl
を選択し、[Actions] (アクション) メニューで、[Grant on target] (ターゲットに対して付与) を選択します。[Grant permissions] (許可の付与) セクションで、[My account] (マイアカウント) を選択します。
IAM ユーザーとロールの場合は、ユーザー を選択します
testuser2
。[Column] (列) で、列名を選択します。
[Table permissions] (テーブルの許可) で、[Select] (選択) を選択します。
[Grant] (付与) を選択します。
リソースリンクの作成後は、作成したユーザーのみがそのリンクを表示してアクセスできます。アカウント内の他のユーザーにリソースリンクへのアクセスを許可するには、リソースリンク自体に対する許可を付与する必要があります。DESCRIBE または アクセスDROP許可を付与する必要があります。[Tables] (テーブル) ページでテーブルを再び選択し、[Actions] (アクション) メニューで [Grant] (付与) を選択します。
[Grant permissions] (許可の付与) セクションで、[My account] (マイアカウント) を選択します。
IAM ユーザーとロール では、ユーザー を選択します
testuser2
。[Resource link permissions] (リソースリンクの許可) で、[Describe] (記述) を選択します。
[Grant] (付与) を選択します。
アカウント B の AWS コンソールに としてサインインします
testuser2
。Athena コンソール (https://console.aws.amazon.com/athena/
) には、データベースとテーブル が表示されます acc_b_area_rl
。これで、テーブルに対してクエリを実行し、testuser2
からアクセス可能となった列値を確認できます。