AWS Glue Data Catalog での Amazon Redshift マネージドカタログの作成 - AWS Lake Formation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Glue Data Catalog での Amazon Redshift マネージドカタログの作成

現在 Amazon Redshift プロデューサークラスターや Amazon Redshift データ共有は利用できない場合がありますが、AWS Glue Data Catalog を使用して Amazon Redshift テーブルを作成および管理する必要があります。glue:CreateCatalog API または AWS Lake Formation コンソールを使用して AWS Glue マネージドカタログを作成し、カタログタイプを Managed とし、Catalog sourceRedshift と設定することで開始できます。この手順では、以下を実行します。

  • データカタログに新しいカタログを作成する

  • カタログを Lake Formation データの場所として登録する

  • Amazon Redshift マネージドサーバーレスワークグループを作成する

  • データ共有オブジェクトを使用して Amazon Redshift Serverless ワークグループとデータカタログをリンクする

マネージドカタログを作成し、アクセス許可を設定するには (コンソール)
  1. Lake Formation コンソール (‭‬https://console.aws.amazon.com/lakeformation/‬) を開きます。

  2. ナビゲーションペインの[データカタログ] で、[カタログ] を選択します。

  3. [カタログの作成] オプションを選択します。

  4. [カタログの設定] の詳細ページで、次の情報を入力します。

    • 名前 – マネージドカタログの一意の名前。名前は変更できず、小文字にする必要があります。名前は最大 255 文字で、アカウント内で一意である必要があります。

    • タイプ – カタログタイプとして Managed catalog を選択します。

    • ストレージ – ストレージとして Redshift を選択します。

    • 説明 – データソースから作成されたカタログの説明を入力します。

  5. Amazon EC2 での Amazon EMR で実行されている Apache Spark アプリケーションを使用して、AWS Glue Data Catalog の Amazon Redshift データベースにアクセスできます。

    Apache Spark による Amazon Redshift マネージドストレージの読み取りや書き込みができるように、AWS Glue は Amazon Redshift データウェアハウスのワークロードに影響を与えずに読み取り操作や書き込み操作を実行するために必要なコンピューティングリソースとストレージリソースを備えたマネージド Amazon Redshift クラスターを作成します。Amazon S3 バケットとの間でデータを転送するために必要なアクセス許可を持つ IAM ロールも指定する必要があります。データ転送ロールに必要なアクセス許可については、「で Amazon Redshift 名前空間を管理するための前提条件 AWS Glue Data Catalog」セクションの「ステップ 5」を参照してください。

  6. デフォルトでは、Amazon Redshift クラスターのデータは、AWS マネージドキーを使用して暗号化されます。Lake Formation には、暗号化用のカスタム KMS キーを作成するオプションがあります。カスタマーマネージドキーを使用している場合は、特定のキーポリシーをキーに追加する必要があります。

  7. カスタマーマネージドキーを使用して Amazon Redshift マネージドストレージ内のデータを暗号化する場合は、[暗号化設定のカスタマイズ] を選択します。カスタムキーを使用するには、KMS キーにカスタムマネージドキーポリシーを追加する必要があります。詳細については、「で Amazon Redshift 名前空間を管理するための前提条件 AWS Glue Data Catalog」を参照してください。

  8. 暗号化オプション – カスタムキーを使用してカタログを暗号化する場合は、[暗号化設定のカスタマイズ] オプションを選択します。カスタムキーを使用するには、KMS キーにカスタムマネージドキーポリシーを追加する必要があります。

  9. [次へ] を選択して、他のプリンシパルにアクセス許可を付与します。

  10. [アクセス許可を付与] ページで、[アクセス許可を追加] を選択します。

  11. [アクセス許可を追加] 画面で、プリンシパルと、付与するアクセス許可のタイプを選択します。

    プリンシパルタイプと許可オプションを含むカタログアクセス許可ページ。
    • [Principals] (プリンシパル) セクションでプリンシパルタイプを選択してから、アクセス許可の付与先となるプリンシパルを指定します。

      • IAM ユーザーとロール – IAM ユーザーとロールのリストから、ユーザーまたはロールを 1 つ以上選択します。

      • SAML ユーザーとグループ – SAML と Amazon Quick Suite のユーザーとグループの場合は、SAML を介してフェデレーションされたユーザーまたはグループの Amazon リソースネーム (ARN) を 1 つ以上入力し、Amazon Quick Suite ユーザーまたはグループの場合は ARN を入力します。各 ARN の後で [Enter] キーを押します。

        ARN の構築方法については、「AWS CLI の許可と取り消し AWS CLI コマンド」を参照してください。

    • [Permissions] (許可) セクションで、許可と付与可能な許可を選択します。

      [カタログのアクセス許可] で、付与するアクセス許可を 1 つ以上選択します。

      カタログ内のすべてのリソースに対する無制限の管理アクセス許可を付与するには、[スーパーユーザー] を選択します。

      [付与可能なアクセス許可] で、被付与者が AWS アカウント内の他のプリンシパルに付与できるアクセス許可を選択します。このオプションは、外部アカウントから IAM プリンシパルにアクセス許可を付与する場合はサポートされません。

  12. [次へ] を選択して情報を確認し、カタログを作成します。[カタログ] リストには、新しいマネージドカタログが表示されます。

フェデレーティッドカタログを作成するには (CLI)
  • 次の例は、フェデレーティッドカタログを作成する方法を示しています。

    aws glue create-catalog --cli-input-json file://input.json { "Name": "CatalogName", "CatalogInput": { "Description": "Redshift published Catalog", "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess" : "true", "DataTransferRole" : "DTR arn", "KMSKey": "kms key arn", // Optional "CatalogType": "aws:redshift" } } } }

    Glue get-catalog レスポンス

    aws glue get-catalog \ --catalog-id account-id:catalog-name \ --region us-east-1 Response: { "Catalog": { "Name": "CatalogName", "Description": "Glue Catalog for Redshift z-etl use case", "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess": "true", "DataTransferRole": "DTR arn", "KMSKey": "kms key arn", "ManagedWorkgroupName": "MWG name", "ManagedWorkgroupStatus": "MWG status", "RedshiftDatabaseName": "RS db name", "NamespaceArn": "namespace key arn", "CatalogType": "aws:redshift" } } }