AWS Lake Formation 管理のデータ共有 - Amazon Redshift

AWS Lake Formation 管理のデータ共有

AWS Lake Formation を使用すると、Amazon Redshift データ共有のデータベース、テーブル、列、行レベルのアクセス許可を一元的に定義して適用し、データ共有内のオブジェクトへのユーザーアクセスを制限できます。Lake Formation を介してデータを共有することで、Lake Formation でアクセス権を定義し、そのアクセス許可を任意のデータ共有とそのオブジェクトに適用できます。例えば、従業員情報を含んだテーブルがある場合、Lake Formation の列レベルのフィルターを使用して、人事部門に属さない従業員が社会保障番号などの個人を特定できる情報 (PII) を表示できないようにすることができます。データフィルターの詳細については、「AWS Lake Formation 開発者ガイド」の「Data Filtering and Cell-Level Security in Lake Formation」(Lake Formation におけるデータフィルタリングとセルレベルのセキュリティ) を参照してください。

Lake Formation でタグを使用して、Lake Formation のリソースに対するアクセス許可を設定することもできます。詳細については、「Lake Formation のタグベースのアクセスコントロール」を参照してください。

Amazon Redshift は現在、同じアカウント内または複数のアカウント間での共有は、Lake Formation 経由でのデータ共有をサポートしています。クロスリージョン共有は現在サポートされていません。

次に、Lake Formation を使用してデータ共有の許可を制御する方法の大まかな概要を示します。

  1. Amazon Redshift では、プロデューサークラスターまたはワークグループの管理者は、プロデューサークラスターまたはワークグループ上にデータ共有を作成し、Lake Formation アカウントに対する使用許可の付与を行います。

  2. プロデューサークラスターまたはワークグループの管理者は、Lake Formation アカウントにデータ共有にアクセスする承認を与えます。

  3. Lake Formation 管理者がデータ共有を見つけて、登録します。また、アクセスできる AWS Glue ARN を見つけて、データ共有を AWS Glue Data Catalog ARN に関連付ける必要があります。AWS CLI を使用している場合、Redshift CLI 操作 describe-data-sharesassociate-data-share-consumer でデータ共有を見つけて承認できます。データ共有を登録するには、Lake Formation CLI 操作 register-resource を使用します。

  4. Lake Formation 管理者は、AWS Glue Data Catalog にフェデレーティッドデータベースを作成し、データ共有内のオブジェクトへのユーザーアクセスを制御する Lake Formation アクセス許可を設定します。AWS Glue のフェデレーティッドデータベースの詳細については、「Amazon Redshift データ共有でのデータに対するアクセス許可の管理」を参照してください。

  5. Lake Formation 管理者は、アクセスできる AWS Glue データベースを見つけて、データ共有を AWS Glue Data Catalog ARN に関連付けます。

  6. Redshift 管理者は、アクセスできる AWS Glue データベース ARN を見つけて、AWS Glue データベース ARN を使用して Amazon Redshift コンシューマークラスターに外部データベースを作成し、IAM 認証情報で認証されたデータベースユーザーに Amazon Redshift データベースへのクエリを開始する使用権を付与します。

  7. データベースユーザーは、SVV_EXTERNAL_TABLES ビューと SVV_EXTERNAL_COLUMNS ビューを使用して、アクセス許可のある AWS Glue データベース内のすべてのテーブルや列を検索し、AWS Glue データベースのテーブルをクエリできます。

  8. プロデューサークラスターまたはワークグループの管理者がコンシューマークラスターとデータを共有しないことを決定した場合、プロデューサークラスター管理者は Redshift からデータ共有について使用を取り消し、承認を解除し、または削除できます。Lake Formation 内に関連付けられたアクセス許可とオブジェクトは自動的には削除されません。

プロデューサークラスターまたはワークグループの管理者として、AWS Lake Formation でデータ共有を行う方法の詳細については、「プロデューサーとして Lake Formation 管理のデータ共有を使用する」を参照してください。プロデューサークラスターまたはワークグループの共有データを使用するには、「コンシューマーとしての Lake Formation 管理のデータ共有を使用する」を参照してください。

Amazon Redshift で AWS Lake Formation を使用する場合の考慮事項と制限

Lake Formation を使用して Amazon Redshift のデータを共有する際の考慮事項と制限事項は次のとおりです。データ共有の考慮事項と制限事項については、「Amazon Redshift でのデータ共有に関する考慮事項」を参照してください。Lake Formation の制限事項については、「Lake Formation での Amazon Redshift データ共有の使用に関する注意事項」を参照してください。

  • リージョン間での Lake Formation へのデータ共有は、現在サポートされていません。

  • 共有リレーションでユーザーに対して列レベルのフィルターが定義されている場合、SELECT * 操作を実行すると、ユーザーがアクセスできる列のみが返されます。

  • Lake Formation のセルレベルのフィルターはサポートされていません。

  • ビューとそのテーブルを作成して Lake Formation と共有した場合、フィルターを設定してテーブルへのアクセスを管理できますが、Amazon Redshift は、コンシューマークラスターのユーザーが共有オブジェクトにアクセスするとき、Lake Formation が定義したポリシーを適用します。ユーザーが Lake Formation と共有されているビューにアクセスすると、Redshift は定義されている Lake Formation ポリシーをビューにのみ適用し、ビューに含まれるテーブルには適用しません。ただし、ユーザーがテーブルに直接アクセスすると、Redshift は定義済みの Lake Formation ポリシーをテーブルに適用します。

  • テーブルに Lake Formation フィルターが設定されている場合、共有テーブルに基づいてコンシューマーのマテリアライズドビューを作成することはできません。

  • Lake Formation 管理者は、データレイク管理者アクセス許可と、データ共有を受け入れるために必要なアクセス許可を持っている必要があります。

  • Lake Formation を介してデータ共有を行うには、プロデューサーコンシューマークラスターは、最新の Amazon Redshift クラスターバージョンまたはサーバーレスワークグループを持つ RA3 クラスターである必要があります。

  • プロデューサクラスターとコンシューマークラスターの両方が暗号化されている必要があります。

  • プロデューサークラスターまたはワークグループに実装されている Redshift の行レベルと列レベルのアクセス制御ポリシーは、データ共有が Lake Formation と行われる場合は無視されます。Lake Formation の管理者は、Lake Formation でこれらのポリシーを設定する必要があります。プロデューサークラスターまたはワークグループの管理者は、ALTER TABLE コマンドを使用して、テーブルの RLS を無効にできます。

  • Lake Formation によるデータ共有は、Redshift と Lake Formation の両方にアクセスできるユーザーのみが利用できます。