Amazon Web Services ブログ
AWS Lake Formation でメタデータを見つける: パート 2
データレイクは、構造化データおよび非構造化データの両方を集計、保存、分析する方法としてますます定評が高まっています。AWS Lake Formation を使用すると、データレイクの設定、セキュリティ保護、管理が簡単になります。
このシリーズのパート 1 では、Lake Formation を使用してデータレイクを作成および探索する方法を学びました。この投稿では、コンソールにある Lake Formation のメタデータ検索機能を使ってのデータ検出、さらに列のアクセス許可が制限するメタデータ検索結果について説明します。
前提条件
この記事では、以下が必要です。
- AWS アカウント。
- Amazon S3、AWS Glue、AWS Lake Formation にアクセスできる AWS Identity and Access Management (IAM) ユーザー。
コンソールでのメタデータ検索
この投稿では、Lake Formation コンソールが提供するカタログ検索機能のデモを行います。
- 分類による検索
- キーワードによる検索
- タグによる検索: 属性
- 複数の フィルター検索
分類による検索
メタデータカタログ検索機能を使用して、データレイク内のすべてのテーブルを検索します。2 つは名前 amazon_reviews を共有しますが、シミュレートされた「prod」と「test」データベースに別々に属します。3 つ目は trip-data です。
- Lake Formation コンソールの [Data catalog] で、[Tables] をクリックします。
- 検索バーの [Resource Attributes] で、[Classification] を選択し、CSV と入力して、[Enter] キーを押します。データレイクで CSV としてフォーマットした trip_data テーブルのみが表示されます。Amazon_reviews テーブルは Parquet 形式のため、このテーブルは表示されません。
- Name 列で、trip_data をクリックします。[Table details] で、メタデータ検索フィルターが分類 CSV を正しく識別していることが分かります。
キーワードによる検索
次に、キーワードでメタデータをフィルタリングし、データレイク全体を検索します。
- テーブルのリストを更新するには、[Data catalog] で [Table ] を再度クリックします。
- 検索バーから「
star_rating
」と入力して、[Enter] キーを押します。フィルターを適用したので、amazon_reviews テーブルのみが表示されるはずです。これは、テーブルには両方とも star_rating という名前の列が含まれているためです。 - 2 つのテーブルのいずれかを選択し、Schema セクションまでスクロールダウンすると、star_rating 列が含まれていることを確認できます。
タグによる検索: 属性
次にデータレイク全体を検索し、メタデータタグとその属性値で結果をフィルタリングします。
- テーブルのリストを更新するには、[Data catalog] で [Tables] をクリックします。
- 検索バーで「
department: research
」と入力し、[Enter] キーを押します。フィルターを適用すると trip_data テーブルのみが表示されますが、これが department のテーブルプロパティに「research」の値を含む唯一のテ-ブルであるためです。 - [trip_data ] テーブルを選択します。[Table details] に、department | researech のタグ: 属性 (Table properties の下に一覧表示されている) があります。
複数の フィルター検索
最後に、一度に複数のフィルターを使用して、データレイク全体を検索してみましょう。
- テーブルのリストを更新するには、[Data catalog] で [Tables] をクリックします。
- 検索バーで [Location] をクリックし、
S3
と入力して [Enter] キーを押します。この投稿ではすべてのカタログテーブルが S3 にあるため、3 つのテーブルがすべて表示されます。 - 検索バーで [Classification] をクリックし、
parquet
と入力して [Enter] キーを押します。Amazon_reviews テーブルのみが表示されるはずです。これが Parquet 形式で S3 に保存されている唯一のテーブルのためです。 - 表示された amazon_reviews テーブルのいずれかを選択します。[Table details] で、次のことが該当することが分かります。
- 場所: S3
- 分類: parquet
列のアクセス許可が制限するメタデータ検索結果
メタデータ検索機能は、Lake Formation 内で指定されたアクセス許可に基づいて結果を返します。ユーザーまたはロールに特定のデータベース、テーブル、列へのアクセス許可がない場合、その要素はそのユーザーの検索結果に表示されません。
これをデモするには、AWS マネジメントコンソールでアクセスし、まず IAM ユーザー、次に dataResearcher を作成します。パスワードは安全な場所に保管してください。
この投稿の手順を簡素化するには、AdministratorAccess ポリシーをユーザーに添付します。このポリシーは AWS アカウントへのフルアクセスを許可しますが、これでは許容が大きすぎます。この投稿での手順を完了後にこのユーザーを削除するか、このポリシーを削除して多要素認証 (MFA) を有効にすることを推奨します。詳細については、「IAM ユーザーの作成 (コンソール)」をご参照ください。
このシリーズのパート 1 では、すべてのユーザーに AWS Glue クローラーが作成したテーブルの表示を許可しました。ここで、ny-taxi データベースのこれらのアクセス許可を取り消します。
- Lake Formation コンソールの [Permissions] で、[Data permissions] をクリックします。
- Everyone レコード (trip_data テーブルの) が表示されるまで下にスクロールするか、検索します。
- レコードを選択し、[Revoke]、[Revoke] の順でクリックします。
この状態だと、dataResearcher IAM ユーザーは ny-taxi データベースまたは trip_data テーブルを表示することができません。そこで、Lake Formation のアクセス許可を設定して、この問題を解決します。
- [Permissions] で、[Data Permission]、[Grant] の順でクリックします。
- [dataResearcher user]、ny-taxi データベース、trip_data テーブルの順でクリックします。
- [Table permissions] で、[Select] をクリックし、[Grant] を選択します。
- コンソールからログアウトし、前に作成した dataResearcher IAM ユーザーを使用してサインインします。
- Lake Formation コンソールで [Tables] をクリックし、trip_data テ-ブルを選択して、そのプロパティを確認します:
dataResearcher ユーザーは現在、これらすべての列を見ることができます。ですが、このユーザーがピックアップまたはドロップオフの場所の表示を許可するのは望ましくありません。これらはプライバシー上のリスクがある可能性があるためです。dataResearcher ユーザーのアクセス許可から、これらの列を削除します。
- dataResearcher ユーザーからログアウトし、管理者アカウントで再度ログインします。
- Lake Formation コンソールの [Permissions] で、[Data permissions] をクリックします。
- dataResearcher レコードを選択し、[Revoke] をクリックします。
- Revoke ページ ([Column] にある) の [All columns except the exclude columns] を選択し、vendor_id、passenger_count、trip_distance、total_amount 列の順にクリックします。
- [Table permissions] で、[Select] をクリックします。これらの設定は dataResearcher ユーザーのすべてのアクセス許可 (trip_data テーブルに対する) を取り消します (ウィンドウで選択したもの以外)。つまり dataResearcher ユーザーは、選択した 4 つの列を [Select] (表示) することしかできません。
- [Revoke] をクリックします。
- dataResearcher ユーザーとして再度ログインします。
- Lake Formation コンソールで、[Data catalog]、[Tables] をクリックします。
Vendor_id
を検索し、[Enter] キーを押します。次のスクリーンショットに示すように、trip_data テーブルが検索に表示されます。 - pu_location_id を検索します。次のスクリーンショットに示すように、この列のアクセス許可を取り消したため、これは結果を返しません。
まとめ
今回の投稿では、Lake Formation のメタデータ検索機能の使用方法を学びました。特定のユーザーのアクセス許可を定義することにより、Lake Formation では S3 に保存されている基となるデータだけでなく、データカタログ内のメタデータへのアクセスを許可および取り消すことができるようになりました。したがって、単一画面で AWS 環境全体のデータソースを検出できます。詳細については、「AWS Lake Formation」をご参照ください。
著者について
Julia Soscia はアマゾン ウェブ サービスのソリューションズアーキテクトで、ニューヨーク市を拠点にしています。彼女のメインテーマは、顧客が AWS クラウドプラットフォームで well-architected 環境を構築するのを支援することです。彼女は、ビッグデータと分析に焦点を当てた経験豊富なデータアナリストです。
Eric Weinberg は、AWS Envision Engineering チームのシステム開発エンジニアです。彼は、ソフトウェアアプリケーションの構築と設計で 15 年の経験があります。
Francesco Marelli は、アマゾン ウェブ サービスのシニアソリューションアーキテクトです。彼は、分析とデータ管理で 20 年以上の経験があります。
Mat Werber は、AWS コミュニティ SA チームのソリューションアーキテクトです。 彼は、サーバーレス、Redshift、DynamoDB、および RDS に焦点を当てた AWS スタック全域におよぶアーキテクチャ関連のガイダンスを提供する責任を担っています。また、IT ガバナンス、リスク、管理の監査に関するバックグラウンドも備えています。