前提条件 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

前提条件

Amazon Redshift フェデレーティッドアクセス許可設定の IAM ポリシー要件

Amazon Redshift フェデレーティッドアクセス許可を使用すると、Redshift ウェアハウスによって直接管理されるアクセス許可を使用して、分析ワークロード全体のデータアクセスを一元管理できます。

Amazon Redshift フェデレーティッドアクセス許可を有効にするには、Redshift でプロビジョニングされたクラスターとサーバーレス名前空間の作成に必要な標準のアクセス許可に加えて、特定の IAM アクセス許可が必要です。

Redshift プロビジョニングされたウェアハウスで Redshift フェデレーティッドアクセス許可を有効にするには

  • redshift:ModifyLakehouseConfiguration

  • redshift:RegisterNamespace

Redshift Serverless ウェアハウスで Redshift フェデレーティッドアクセス許可を有効にするには

  • redshift-serverless:UpdateLakehouseConfiguration

  • redshift:RegisterNamespace

AWS Glue Data Catalog 統合で、Redshift フェデレーティッドアクセス許可を持つカタログを作成するには

  • glue:CreateCatalog

  • glue:GetCatalog

Lake Formation リソースを 1 回限りの登録として登録し、フェデレーティッドアクセス許可を持つリモートウェアハウスから Redshift アクセス許可フェデレーションを有効にする場合

  • lakeformation:RegisterResource

  • lakeformation:RegisterResourceWithPrivilegedAccess

フェデレーティッドアクセス許可を持つ Redshift ウェアハウスの IAM アイデンティティセンターアプリケーション設定

Amazon Redshift は、アイデンティティセンターの ID 伝播をサポートし、Redshift インスタンスと AWS Lake Formation、AWS Glue サービス間でユーザー ID をシームレスに渡します。この機能を使用するには、専用の IdC アプリケーションを設定する必要があります。

必須の IAM アクセス許可

アイデンティティセンター ID 伝播用のアイデンティティセンターアプリケーションを作成および管理するには、IAM アクセス許可に次のアクセス許可が含まれていることを確認してください。

Amazon Redshift IdC アプリケーション管理の場合

  • redshift:CreateRedshiftIdcApplication

  • redshift:ModifyRedshiftIdcApplication

  • redshift:DescribeRedshiftIdcApplications

Lake Formation IdC アプリケーション管理の場合

  • lakeformation:CreateLakeFormationIdentityCenterConfiguration

  • lakeformation:DescribeLakeFormationIdentityCenterConfiguration

  • lakeformation:UpdateLakeFormationIdentityCenterConfiguration

対応する IdC アプリケーションと設定を作成する

分析ワークロードの ID 伝播を確立するには、Lakehouse タイプの Amazon Redshift IdC アプリケーションを作成します。明示的なユーザー割り当てを必要とせずにアクセス許可を管理します。このアプリケーションにリンクされた Redshift ウェアハウスには、IdC ユーザーが接続を認証するための CONNECT 権限が必要です。

Lakehouse タイプの Amazon Redshift IdC アプリケーションは、AWS アカウントごとに 1 つだけ作成できます。このアプリケーションは、Lake Formation および AWS Glue サービスと統合されたすべての Redshift ウェアハウスでの ID の伝播を処理します。アプリケーションは、AWS Glue Data Catalog に登録されている Redshift ウェアハウスでのみ使用できます。

Redshift が引き受け、IdC ID 伝播で使用される IAM ロールを準備する

Redshift Lakehouse IdC アプリケーションを作成するには、お使いのアカウントに特定の IAM アクセス許可のある IAM ロールが必要です。Redshift IdC アプリケーションで使用される IAM ロールには、Redshift がそれを引き受けて IdC ID 伝播のコンテキストを設定できるように、次の信頼関係が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": [ "redshift-serverless.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }

また、IdC ID の伝播をサポートする IdC IAM ロールのアクセス許可を以下に示します。

  • AmazonRedshiftFederatedAuthorization – このポリシーにより、Amazon Redshift はフェデレーションアクセス許可を使用して AWS Glue Data Catalog データベースをクエリできます。

  • AWSIDC コンテキスト設定ポリシー

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:SetContext" ], "Resource": "*" } ] }
  • AWS IAM アイデンティティセンター で Redshift を AWS マネージドアプリケーションとして設定します

  • AWSIDC アイデンティティセンター SSO IAM ポリシー:

    • sso:DescribeApplication – カタログに ID プロバイダー (IdP) エントリを作成するために必要です。

    • sso:DescribeInstance – IdP フェデレーションロールまたはユーザーを手動で作成する場合に使用します。

      { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "sso:DescribeApplication", "sso:DescribeInstance" ], "Resource": [ "arn:aws:sso:::instance/<IAM Identity Center Instance ID>", "arn:aws:sso::<AWS-account-id>:application/<IAM Identity Center Instance ID>/*" ] }

新しい Lakehouse タイプ Redshift IdC アプリケーションを作成する

CLI

create-redshift-idc-application リクエストで Lakehouse アプリケーションタイプを指定して Lakehouse IdC アプリケーションを作成します。これにより、IdC ユーザー認証の CONNECT 権限要件を有効にしながら、Identity Center で明示的なユーザー割り当てを行う必要がなくなります。

aws redshift create-redshift-idc-application \ --idc-instance-arn <your_idc_instance_arn> \ --idc-display-name '<name_of_idc_application_display_on_idc_console>' \ --iam-role-arn <idc_carrier_role_arn> \ --application-type Lakehouse \ --redshift-idc-application-name '<name_of_idc_display_on_redshift_console>' \ --service-integrations '[ { "LakeFormation":[ { "LakeFormationQuery":{"Authorization": "Enabled"} } ] }, { "Redshift":[ { "Connect" : { "Authorization": "Enabled" } } ] } ]'

この設定により、Redshift と Lake Formation 間の信頼できる ID の伝播が可能になり、ユーザーは追加のアクセス許可を割り当てることなく、アイデンティティセンターの認証情報を使用してサービス間でデータにアクセスできます。

Console
  1. AWS マネジメントコンソール にサインインして、https://console.aws.amazon.com/redshiftv2/ で Amazon Redshift コンソールを開きます。

  2. IAM アイデンティティセンターの接続ページに移動し、[アプリケーションを作成]を選択します。

  3. 一般的な IdC アプリケーション設定を構成します。

  4. [AWS IAM アイデンティティセンター を使用して Amazon Redshift フェデレーティッドアクセス許可を設定する (推奨)]を選択し、アプリケーションタイプを設定します。

  5. Lake Formation と Redshift の接続 ID 伝播の統合はデフォルトで有効になっています。

  6. 残りのクラスター設定を完了し、[アプリケーションを作成] を選択します。

既存の Redshift IdC アプリケーションを変更する

必要なサービス統合が有効になっていない既存の Redshift IdC アプリケーションがある場合は、サービスとクラスター/名前空間の間の ID 伝播をサポートするように更新できます。

CLI

modify-redshift-idc-application コマンドを使用して、LakeFormation:query 認可と Redshift:Connect 認可の両方を有効にします。これらの統合は、サービス間およびクラスター間の IdC ID の伝播に不可欠です。

aws redshift modify-redshift-idc-application \ --redshift-idc-application-arn '<arn_of_the_target_redshift_idc_application>' \ --service-integrations '[ { "LakeFormation":[ { "LakeFormationQuery":{"Authorization": "Enabled"} } ] }, { "Redshift":[ { "Connect" : { "Authorization": "Enabled" } } ] } ]'
Console
  1. AWS マネジメントコンソール にサインインして、https://console.aws.amazon.com/redshiftv2/ で Amazon Redshift コンソールを開きます。

  2. IAM アイデンティティセンターの接続ページに移動し、編集する既存の IdC アプリケーションを選択します。

  3. [ID 伝播統合] を選択し、他の設定を有効にして設定し、[変更を保存] を選択します。

Lake Formation アイデンティティセンター設定を作成する

Lake Formation サービスには、専用 IdC アプリケーションがまだ作成されていない場合に必要です。また、設定が正しく機能するためには、Redshift:Connect 認可を有効にする必要があります。

CLI

Redshift:Connect 認可を有効にするには、create-lake-formation-identity-center-configuration コマンドを使用します。これらの統合は、Lake Formation が IdC アイデンティティを Redshift クラスターと Redshift Serverless 名前空間に伝達するために不可欠です。

aws lakeformation create-lake-formation-identity-center-configuration \ --instance-arn <your_idc_instance_arn> \ --service-integrations '[{ "Redshift": [{ "RedshiftConnect": { "Authorization": "ENABLED" } }] }]'
Console
  1. AWS マネジメントコンソール にサインインして、Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) を開きます。

  2. 左側のナビゲーションペインで、[IAM アイデンティティセンターの統合] を選択します。

  3. IAM アイデンティティセンターの統合ページで、Amazon Redshift 接続の信頼できる ID 伝播を有効にできます。Lake Formation は、有効なアクセス許可に基づいて ID をダウンストリームに伝播するため、承認されたアプリケーションはユーザーに代わってデータにアクセスできます。

Lake Formation アイデンティティセンターの設定を更新する

必要なサービス統合が有効になっていない Lake Formation IdC アプリケーションを設定した場合は、サービスとクラスター/名前空間の間の ID 伝播をサポートするように更新できます。

CLI

Redshift:Connect 認可を有効にするには、update-lake-formation-identity-center-configuration コマンドを使用します。これらの統合は、サービス間およびクラスター間の IdC ID の伝播に不可欠です。

aws lakeformation update-lake-formation-identity-center-configuration \ --service-integrations '[{ "Redshift": [{ "RedshiftConnect": { "Authorization": "ENABLED" } }] }]'
Console
  1. AWS マネジメントコンソール にサインインして、Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) を開きます。

  2. 左側のナビゲーションペインで、[IAM アイデンティティセンターの統合] を選択します。

  3. IAM アイデンティティセンターの統合ページで、Amazon Redshift 接続の信頼できる ID 伝播を有効にできます。Lake Formation は、有効なアクセス許可に基づいて ID をダウンストリームに伝播するため、承認されたアプリケーションはユーザーに代わってデータにアクセスできます。

Lake Formation の前提条件

Amazon Redshift フェデレーティッドアクセス許可で AWS Glue Data Catalog を有効にするには、Lake Formation の CREATE_CATALOG アクセス許可が必要です。

  1. アカウントが既存の Lake Formation カスタマーに属している場合、Lake Formation 管理者は各クラスター作成者に CREATE_CATALOG アクセス許可を明示的に付与する必要があります。次の CLI コマンドの例を使用します。

    aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "<PrincipalArn>" }, "Resource": { "Catalog": {} }, "Permissions": [ "CREATE_CATALOG" ] }'
  2. アカウントが Lake Formation を使用したことがない場合は、Lake Formation コンソールの管理ロールとタスクページで、カタログ作成者が IAMAllowedPrincipals に設定されていることを確認します。設定されていない場合は、「データレイク管理者を作成する」に従ってデータレイク管理者を設定します。または、Amazon Redshift フェデレーティッドアクセス許可で AWS Glue Data Catalog のみを使用する場合は、必要最小限のポリシーでデータレイク管理者を作成できます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "lakeformation:PutDataLakeSettings", "lakeformation:GrantPermissions", "lakeformation:GetDataLakeSettings", "lakeformation:BatchGrantPermissions", "lakeformation:ListPermissions" ], "Resource": [ "*" ] } ] }
  3. データレイク管理者に、カタログを作成するためのアクセス許可を IAMAllowedPrincipals に付与してもらいます。アクセスは、[管理ロールとタスク] ページのカタログ作成者の [付与] ボタンを使用して付与できます。

Connect 権限

Amazon Redshift フェデレーティッドアクセス許可の一部として、Amazon Redshift は Amazon Redshift ワークグループまたはクラスターへの AWS IAM アイデンティティセンター フェデレーションユーザーのアクセスを管理するための CONNECT 権限を導入しました。この機能は、ワークグループまたはクラスターで Amazon Redshift フェデレーティッドアクセス許可が有効になっている場合に使用できます。

この権限により、管理者は Amazon Redshift フェデレーティッドアクセス許可が有効になっている各 Amazon Redshift ワークグループまたはクラスターのきめ細かなアクセス許可を通じてユーザーアクセスを制御できます。Amazon Redshift 管理者は、Amazon Redshift ワークグループまたはクラスターに直接接続するためのアクセス権を持つ AWS IAM アイデンティティセンター フェデレーションユーザー (複数可) またはグループ (複数可) を指定し、各ワークグループまたはクラスターでの AWS IAM アイデンティティセンター ユーザーアクセスをきめ細かく制御できます。

構文

GRANT CONNECT [ON WORKGROUP] TO [USER] <prefix>:<username> | ROLE <prefix>:<rolename> | PUBLIC;
CONNECT [ON WORKGROUP]

ワークグループに接続するアクセス許可を付与 CONNECT アクセス許可は、AWS IAM アイデンティティセンター ID (ユーザーとロール) にのみ適用されます。

TO <prefix>:<username>

アクセス許可を受け取る AWS IAM アイデンティティセンター フェデレーションユーザーを示します。

TO ROLE <prefix>:<rolename>

アクセス許可を受け取る AWS IAM アイデンティティセンター フェデレーショングループを示します。

PUBLIC

CONNECT アクセス許可を、後で作成されるユーザーを含め、すべての AWS IAM アイデンティティセンター フェデレーションユーザーに付与します。