Amazon Web Services ブログ

AWS Lake Formation の LF タグ管理の分散化

昨今のデータドリブンな世界では、組織は拡大し続けるデータエコシステムから貴重な洞察を管理し、抽出する上で、前例のない課題に直面しています。データ資産とユーザーの数が増えるにつれ、データ管理とガバナンスに対する従来のアプローチではもはや間に合いません。顧客は現在、権限管理を分散化するためのより高度なアーキテクチャを構築しています。これにより、中央のガバナンスチームに律速されることなく、個々のユーザーグループが独自のデータ製品を構築して管理できるようになります。 AWS Lake Formation のコア機能の1つは、 AWS Glue Data Catalog のデータベース、テーブル、カラムなどのリソースのサブセットに対する権限をデータスチュワードに委任することです。これにより、誰がリソースにアクセスできるかを決定できるようになり、データレイクの権限管理を分散化できます。 Lake Formation にはデータスチュワードが独自の Lake Formation タグを作成してアクセス権を管理できる機能が追加されました。 Lake Formation タグベースアクセス制御 (LF-TBAC) は、属性に基づいて権限を定義する認証戦略です。 Lake Formation ではこれらの属性を LF タグと呼びます。 LF-TBAC は、データカタログリソースが多数ある場合に Lake Formation の権限を付与する方法として推奨されます。 LF-TBAC は、名前付きリソース方式よりスケーラブルで、権限管理のオーバヘッドも少なくて済みます。

この記事では、 LF タグの作成、管理、権限付与をデータスチュワードに委任するプロセスについて説明します。

Lake Formation は AWS アナリティクス全体にわたって大規模なユーザーのセキュリティ管理とガバナンスを簡素化することで、これらの高度なアーキテクチャの基盤として機能します。 Lake Formation は AWS アカウントかんの安全な共有と、権限を拡張できるタグベースのアクセス制御を提供することでこれらの課題に対処するように設計されています。特性とプロパティに基づいてデータ資産にタグを割り当てることにより、組織は特定のデータ属性に合わせたアクセス制御ポリシーを実装できます。これにより、権限のある個人またはチームのみがドメインに関連するデータにアクセスして操作できるようになります。例えば、顧客はデータ資産に「Confidential」というタグを付け、機密データにアクセスすべきユーザーにのみその LF タグへのアクセスを許可することができます。タグベースのアクセス制御は、データセキュリティとプライバシーを強化するだけでなく、効率的なコラボレーションとナレッジシェアリングを促進します。

単一アカウント、ハブアンドスポーク、中央ガバナンスによるデータメッシュなど、どのアーキテクチャを選択したとしてもデータガバナンスにおけるプロデューサーの自律性と分散型のタグ作成および委任の必要性は最も重要です。一元的なタグ作成とガバナンスのみに依存していると、ボトルネックが生じ、アジリティが妨げられ、イノベーションが阻害される可能性があります。プロデューサーとデータスチュワードに、特定のドメインに関連するタグを作成および管理する自律性を付与することで、組織はプロデューサーチーム間のオーナーシップと説明責任の意識を育むことができます。この分散型アプローチにより、変化する要件に迅速に適応して対応できます。この方法論は、組織が中央ガバナンスとプロデューサーオーナシップのバランスを取るのに役立ち、ガバナンスの向上、データ品質の向上、そしてデータ民主化につながります。

Lake Formation はこれらの課題に対処するためのタグ委任機能を発表しました。この機能により、 Lake Formation の管理者は AWS Identity and Access Management (IAM) ユーザーとロールにタグの作成、関連付け、そしてタグ表現の管理を行う権限を与えることができます。

ソリューションの概要

この記事では、複数のグループが私用している中央データレイクを持つ組織の例を検討します。このケースでは2人のペルソナがいます。1人は Lake Formation の管理者 LFAdmin で、データレイクを管理し、様々なグループにオンボーディングを行います。もう一方は組織内のセールスグループのリソースを所有し管理も行うデータスチュワード LFDataSteward-Sales です。ここでのゴールはデータスチュワードに権限を付与して、 LF タグを使用して所有するリソースに権限を付与できるようにすることです。さらに、組織には ConfidentialityDepartment と呼ばれる共通 LF タグがあり、データスチュワードはこれらを使用できます。

次の図はソリューションを実装するためのワークフローを示しています。

大まかな手順は以下の通りです。

  1. LF タグを作成する権限を Lake Formation 管理者ではないユーザー用の IAM ロール LFDataSteward-Sales に付与します。
  2. 組織の共通の LF タグを LFDataSteward-Sales ロールに関連付ける権限を付与します。
  3. LFDataSteward-Sales ロールを使って新しい LF タグを作成します。
  4. LFDataSteward-Sales ロールを使って新しい一般的な LF タグをリソースに関連づけます。
  5. LFDataSteward-Sales ロールを使って他のユーザーに権限を付与します。

前提条件

このチュートリアルは以下のものが必要です。

  • AWS アカウント
  • Lake Formation の使い方と Lake Formation が一連のテーブルに対する権限を管理できるようにする方法に関する知識
  • Lake Formation 管理権限を有する IAM ロール。この記事では、その IAM ロールを LFAdmin とする。
  • LFAdmin によって作成された2つの LF タグ
    • Confidentiality をキーとするバリュー PIIPublic
    • Department をキーとするバリュー SalesMarketing
  • 組織のデータスチュワードである IAM ロール。この記事では、その IAM ロールを LFDataSteward-Sales とする。
  • データスチュワードは少なくとも1つのデータベースに対してスーパーユーザーのアクセス権を持っている必要があります。この記事では、データスチュワードは3つのデータベース( sales-ml-datasales-processed-datasales-raw-data )へのアクセス権を持っています。
  • データスチュワードが LF タグを使用する権限を付与するユーザーとしての役割を果たす IAM ロール。この記事では、その IAM ロールを LFAnalysts-MLScientist とします。

データスチュワードに LF タグを作成できるよう権限を付与する

以下の手順を実行して LFDataSteward-Sales に LF タグを作成する権限を付与します。

  1. LFAdmin ロールとして、 Lake Formation コンソールを開きます。
  2. ナビゲーションペインの Permissions の下の LF-Tags and permissions を選択します。

LF-Tags では、 LFAdmin としてログインしているためアカウント内で作成されたすべてのタグを確認できます。 Confidentiality の LF タグと Department の LF タグ、そしてそれぞれのタグに指定できるバリューが表示されます。

  1. LF-Tag creators タブで Add LF-Tag creators を選択します。

  1. IAM users and roles では LFDataSteward-Sales の IAM ロールを指定します。
  2. Permission では Create LF-Tag を選択します。
  3. このデータスチュワードが他のユーザーに LF タグの作成権限を付与できるようにするには Grantable permissionCreate LF-Tag を選択します。
  4. Add を選択します。

LFDataSteward-Sales の IAM ロール独自の LF タグを作成する権限が付与されるようになりました。

一般的な LF タグが使えるようデータスチュワードに権限を付与する

ここで ConfidentialityDepartment タグを使ってタグ付ける権限をデータスチュワードに付与したいと思います。以下の手順を実施します。

  1. LFAdmin ロールとして、 Lake Formation コンソールを開きます。
  2. ナビゲーションペインの Permissions の下の LF-Tags and permissions を選択します。
  3. LF-Tag permissions タブで Grant permissions を選択します。

  1. Permission type として LF-Tag key-value permission を選択します。

LF-Tag permission オプションは LF タグを変更または削除する権限を付与しますが、このユースケースでは適用されません。

  1. IAM users and roles を選択し、 LFDataSteward-Sales の IAM ロールを指定します。

  1. Confidentiality の LF タグではすべてのバリューを選択し、 Department の LF タグでは Sales のみを選択します。
  2. Permissions では DescribeAssociateGrant with LF-Tag expression を選択します。
  3. Grant permissions を選択します。

これにより、 LFDataSteward-Sales ロールは Confidentiality タグとそのすべてのバリューを使ってリソースにタグを付けることができ、 Department タグには Sales のバリューのみを使ってタグを付けることができるようになりました。

データスチュワードロールを使って新しい LF タグを作成する

この手順では LFDataSteward-Sales のロールが独自の LF タグを作成する方法を示します。

  1. LFDataSteward-Sales のロールとして、 Lake Formation コンソールを開きます。
  2. ナビゲーションペインの Permissions の下の LF-Tags and permissions を選択します。

LF-Tags セクションには、 Confidentiality タグと、 Sales のバリューのみの Department タグが表示されます。データスチュワードとして、権限付与を簡単にするために独自の LF タグを作成したいと思います。

  1. Add LF-Tag を選択します。

  1. Key には Sales-Subgroups と入力します。
  2. Values には DataScientistsDataEngineersMachineLearningEngineers を入力します。
  3. Add LF-Tag を選択します。

LF タグの作成者として、データスチュワードは自分が作成したタグに対する全ての権限を持っています。データスチュワードがアクセスできる全てのタグを見ることができます。

データスチュワードとして LF タグをリソースに関連付ける

機械学習エンジニアが sales-ml-data のリソースにアクセスできるように、先ほど作成した LF タグにリソースを関連付けます。

  1. LFDataSteward-Sales ロールとして、 Lake Formation コンソールを開きます。
  2. ナビゲーションペインで Databases を選択します。
  3. sales-ml-data を選択し Action メニューから Edit LF-Tags を選択します。

  1. 以下の LF タグとバリューを追加します。
    1. キーは Sales-Subgroups 、バリューは MachineLearningEngineers
    2. キーは Department 、バリューは analytics
    3. キーは Confidentiality 、バリューは Public
  2. Save を選択します。

データスチュワードとして LF タグを使って権限を付与する

LF タグを使って権限を付与するためには、以下の手順を実施します。

  1. LFDataSteward-Sales のロールとして、 Lake Formation コンソールを開きます。
  2. ナビゲーションペインの Permissions の下の Data lake permissions を選択します。
  3. Grant を選択します。
  4. IAM users and roles を選択しアクセス権を付与する IAM プリンシパルを選択します(この例では Sales-MLScientist ロール)。

  1. LF-Tags or catalog resources セクションで、 Resources matched by LF-Tags を選択します。
  2. 以下のタグ設定を入力します。
    1. Department LF タグのバリューとして Sales
    2. Sales-Subgroups LF タグのバリューとして MachineLearningEngineers
    3. Confidentiality LF タグのバリューとして Public

このロールは機械学習とデータサイエンスユーザーなので、データベースの管理とテーブル作成ができるように全ての権限を付与しようと思います。

  1. Database permissionsSuper を選択し、 Table permissionsSuper を選択します。

  1. Grant を選択します。

設定された LF-Tag expressions が表示されます。

ユーザーに付与された権限を検証する

Amazon Athena を使ってアクセス権を確認するために、 Sales-MLScientist のロールとして Athena コンソールに移動します。 Sales-MLScientist のロールが sales-ml-data データベースと全てのテーブルにアクセスできるようになったことがわかります。このケースでは、テーブルは sales-report 1つのみ存在します。

クリーンアップ

リソースをクリーンアップするために、以下を削除します。

  • この記事の内容に従って作成した IAM ロール
  • 作成した LF タグ

まとめ

この記事では、分散型タグ管理のメリットと、新しい Lake Formation の機能がこれを実装するのにどのように役立つかについて説明しました。プロデューサーチームのデータスチュワードにタグ管理の権限を付与することで、組織は各自のドメイン知識を活用してデータの微妙な違いを効果的に把握できるようになります。さらに、データスチュワードに権限を付与すると、データスチュワードがタグ付けの主導権を握ることができ、正確性と関連性が確保されます。

この記事ではデータスチュワードに LF タグの作成や一般的な LF タグの使用許可を与えるなど、分散型の Lake Formation タグ管理に関連する様々な手順について説明しました。また、データスチュワードが独自の LF タグを作成し、タグをリソースに関連づけ、タグを使用して権限を付与する方法を示しました。

新しい分散型の Lake Formation タグ管理機能をぜひ試してみてください。詳細については、 Lake Formation tag-based access control をご参照ください。


本記事は、Ramkumar Nottath、Mert Hocanin によるDecentralize LF-tag management with AWS Lake Formationを翻訳したものです。 翻訳はソリューションアーキテクトのJang Soohyeongが担当しました。