---
schema_version: "1"
id: 43433efd8e34c62104f3182c81bb057efe1642475160ca5b85635013240775e0
title: Amazon Redshift IAM OAuth の設定
collection: tableau
version: next
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/next/ja-jp/server-linux/config_oauth_redshift_iam.md
canonical_url: https://help.tableau.com/v0.0/server-linux/ja-jp/config_oauth_redshift_iam.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 46439efc2e4df12c51e187de439d61c2de32ba5d9669d768aa1273477b45c10e
description: Set up Amazon Redshift IAM OAuth identity federation from an external IdP for Tableau.
---
[メイン コンテンツに進む](#main-content)

# Amazon Redshift IAM OAuth の設定

Tableau 2023.3 以降より、OAuth 2.0/OIDC を使用して、外部の ID プロバイダーから Amazon Redshift に ID をフェデレートすることができます。

これらの手順は、古い AWS IAM サービス用です。IAM IDC 統合については、「[Amazon Redshift IAM ID センター OAuth の設定](https://help.tableau.com/v0.0/server-linux/ja-jp/config_oauth_redshift_iam_idc.htm)」を参照してください。

ID プロバイダーによって、統合を設定するために必要な手順は異なります。これはおおまかな概要です。Tableau は、AWS または IDP の構成方法について詳細な手順を提供できませんが、一般的なアプローチは次のとおりです。

## ステップ 1: IDP を構成する

1. IDP に Tableau Desktop と Tableau Server または Tableau Cloud の OAuth クライアントを作成します。Desktop クライアントでは、`PKCE` を有効にし、`http://localhost` リダイレクトを使用する必要があります。
2. ロールの承認に使用するカスタム クレームを追加します。特にオリジナルの IAM を使用している場合は、`DbUser` と `DbGroups` のクレームを追加することをお勧めします。これらは後で IAM ポリシーで使用できます。
3. Tableau OAuth 構成ファイルを作成します。[GitHub](https://tableau.github.io/connector-plugin-sdk/docs/oauth "GitHub の OAuth のドキュメント") のドキュメントと、[ここでの](https://github.com/tableau/connector-plugin-sdk/tree/master/samples/components/oauth "GitHub の OAuth の例")例を参照してください。他の IDP の例も歓迎します。
    
    1. Tableau OAuth 構成 ID には必ず「`custom_`」というプレフィックスを付けてください。
        
        **注:** Oauth 構成 ID の最大文字数は 36 文字です。これより長い ID ではエラーが発生しない可能性がありますが、機能しません。
    2. IDP が動的 localhost ポートをサポートしている場合、`OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL` を無効にします。IDP がサポートしていない場合は、構成ファイルおよび IDP の許可リストにいくつかの localhost コールバック URL を追加してください。
4. デスクトップ ホスト (Tableau Desktop、Tableau Prep Builder、Tableau Bridge) 上、および OAuth を使用する各 Tableau Server と Tableau Cloud サイト上の各アプリケーションに関連付けられた `OAuthConfigs` フォルダーに新しい Tableau OAuth 構成ファイルをインストールします。

## AWS で IDP を構成する

1.AWS 上で IDP モデルを作成します。Amazon ドキュメントの「[ウェブ ID フェデレーションについて](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers_oidc.html "ウェブ ID フェデレーションに関する AWS ドキュメント")」と「[OpenID Connect (OIDC) ID プロバイダーの作成](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers_create_oidc.html "OIDC ID プロバイダーの作成に関する AWS ドキュメント")」を参照してください。

2.IDP 専用のロールとポリシーを作成します。AWS ドキュメントの「[ウェブ ID または OpenID Connect フェデレーション用のロールの作成 (コンソール)](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html "OIDC のロールの作成に関する AWS ドキュメント")」参照してください。

## Redshift ユーザーのロールを構成する

Redshift に必要なポリシーをアタッチします。トークンのカスタム クレームを使用して、ロールに権限を付与できます。[AWS ドキュメント](https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/options-for-providing-iam-credentials.html "IAM 認証資格情報の提供に関する AWS ドキュメント")には SAML を使用した例がいくつかあります。これらの例は OAuth に簡単に適応させることができます。OAuth の場合、クレームは単に「`DbUser`」や「`DbGroups`」などです。

AWS ドキュメントのポリシー例は次のとおりです。

{  
"Version": "2012-10-17",  
"Statement": \[  
    {  
        "Effect": "Allow",  
        "Action": "redshift:GetClusterCredentials",  
        "Resource": \[  
            "arn:aws:redshift:us-west-1:123456789012:dbname:cluster-identifier/dev",  
            "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}",  
            "arn:aws:redshift:us-west-1:123456789012:cluster:cluster-identifier"  
        \],  
        "Condition": {  
            "StringEquals": {  
                "aws:userid": "AROAJ2UCCR6DPCEXAMPLE:${redshift:DbUser}@example.com"  
            }  
        }  
    },  
    {  
        "Effect": "Allow"  
        "Action": "redshift:CreateClusterUser",  
        "Resource": "arn:aws:redshift:us-west-1:12345:dbuser:cluster-identifier/${redshift:DbUser}"  
    },  
    {  
        "Effect": "Allow",  
        "Action": "redshift:JoinGroup",  
        "Resource": "arn:aws:redshift:us-west-1:12345:dbgroup:cluster-identifier/my\_dbgroup"  
    },  
    {  
        "Effect": "Allow",  
        "Action": \[  
            "redshift:DescribeClusters",  
            "iam:ListRoles"  
        \],  
        "Resource": "\*"  
    }  
\]  
}

## Redshift に接続する

ユーザーは、引き受けるロール ARN を指定し、前にインストールした OAuth 構成を選択する必要があります。

![](/tableau/next/ja-jp/server-linux/ja-jp/Img/redshift_oauth__iam_connect.png)

適切に構成されていると、ユーザーは IDP にリダイレクトされ、Tableau のトークンが認証および認可されます。Tableau は openid トークンとリフレッシュ トークンを受け取ります。AWS は、IDP からのトークンと署名を検証し、トークンからクレームを抽出して、IAM ロールへのクレームのマッピングを検索し、Tableau がユーザーに代わってロールを引き受けることを許可または拒否します。(例: [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/ja_jp/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html "AssumeRoleWithWebIdentity に関する AWS ドキュメント"))。

## トークン

既定では、Redshift OAuth IAM は ID トークンをドライバーに渡します。Tableau Bridge を使用しているお客様を含むオンプレミスのお客様の場合は、代わりに TDC ファイルを使用してアクセス トークンを渡すこともできます。

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP\_OAUTH\_FEDERATE\_ACCESS\_TOKEN' value='yes'/>
	</customizations>
</connection-customization>
		

.tdc ファイルの設定とインストールの詳細については、[「接続をカスタマイズして調整する」](https://help.tableau.com/current/pro/desktop/ja-jp/connect_customize.htm)および[「Tableau Server で .tdc ファイルを使用する」](https://help.salesforce.com/s/articleView?id=001458291&type=1)を参照してください。

## フェデレーションのグループ化

IAM ロールで OAuth 認証を使用する場合、フェデレーションのグループ化を使用するかどうかを選択できます。これにより、コネクタが認証 API と対話して Redshift と相互作用する方法が変更されます。

- 接続時に \[Group Federation (フェデレーションのグループ化)\] のチェック ボックス (2025.1 以降から利用可能) がオンになっている場合、Redshift ドライバーは [`getClusterCredentialsWithIAM`](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentialsWithIAM.html) API を使用して、プロビジョニングされたクラスター内の認証資格情報を取得します。
- \[Group Federation (フェデレーションのグループ化)\] のチェックボックスがオフになっている場合は、代わりに [`getClusterCredentials`](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) API が使用されます。

これら 2 つの API は、プロパティが若干異なる IAM トークンを返します。詳細については、上記のリンク先の AWS API ドキュメント、および「[ODBC ドライバーオプション](https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-configuration-options.html "AWS での ODBC 2.0 の設定に関する情報")」を参照してください。

#### 使用上の注意

- バージョン 2024.3 より前の Tableau Desktop および Tableau Prep Builder では、'group\_federation=1' を使用して、高度なドライバー構成フィールドでこれを設定できます。また、TDC ファイルを使用してカスタム接続プロパティを定義することによって構成することもできます。TDC の使用に関する詳細については、「[接続のカスタマイズと微調整](https://help.tableau.com/current/pro/desktop/ja-jp/connect_customize.htm)」を参照してください。
- バージョン 2024.3 以降では、オンプレミス (Tableau Desktop、Tableau Prep Builder、Tableau Server) の接続ダイアログに group\_federation フィールドが追加されました。このフィールドは、2025.1 以降の Tableau Cloud で利用可能です (2025 年 2 月から利用可能)。
- Tableau Server でフェデレーションのグループ化を使用するには、group\_federation を ODBC extras の許可リストに追加する必要があります。詳細については、「[ネイティブ コネクタの接続文字列をカスタマイズする](https://help.tableau.com/current/pro/desktop/ja-jp/connect_string_custom.htm)」を参照してください。

## Okta

Okta を使用する場合は、「組織認可サーバー」ではなく「カスタム認可サーバー」を使用することをお勧めします。カスタム認可サーバーはより柔軟です。既定で作成されたカスタム認可サーバーがあり、これは「既定」と呼ばれます。認可 URL は次のようになります。

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

![](/tableau/next/ja-jp/server-linux/ja-jp/Img/redshift_oauth_iam_okta_800x332.png)

## ドライバーを更新する

オリジナルの IAM サービスを使用する Redshift OAuth の場合は、次のいずれかを使用できます。

- バージョン 1.59 以降の Redshift ODBC v1 ドライバー。このドライバーは、[https://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html](https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/configure-odbc-connection.html "Amazon から Redshift ODBC V1 ドライバーをダウンロードする") からダウンロードできます。
- バージョン 2.0.1.0 以降の Redshift ODBC v2 ドライバー。このドライバーは、[https://github.com/aws/amazon-redshift-odbc-driver/tags](https://github.com/aws/amazon-redshift-odbc-driver/tags "Amazon から Redshift ODBC V2 ドライバーをダウンロードする") からダウンロードできます。OSX 用の v2 ドライバーはないことに注意してください。

## トラブルシューティング

エラーを診断する最善の方法は、問題が発生している状況から Tableau を削除することです。代わりに、ドライバー マネージャーまたは同様のツールを使用してテストすることができます。これはあくまでトラブルシューティングを目的とした作業です。この機能の通常の使用時には DSN や「その他の ODBC」コネクタを使用しないでください。有効なテストを行えるようにするためには、クラスター情報、データベース、トークン、および名前空間を除くパラメーターが以下に示すものと同じである必要があります。

**注:** テストするときは DSN の接続文字列で DbUser または DbGroups を指定しないでください。Tableau はこれらにアクセスできず、接続文字列に含めることができません。トークン要求に含めることはできます。

最初の接続時にドライバーから無効/期限切れのトークンに関するエラー メッセージが表示された場合 (エラー メッセージには \[28000\] や \[08001\] などの SQLState エラー コードが含まれます)、Tableau は OAuth フローを正常に完了していますが、ドライバーに関して失敗しています。これは、AWS 側または IDP 側のいずれかに設定ミスがあることを意味します。ドライバーからパーミッションまたは認可のエラーが返される場合もありますが、これも Tableau の制御の対象外です。

テストを開始する前に、まず、ドライバーに送信するアクセス トークン (IAM IDC の既定値) または更新トークン (カスタマイズされている場合) を取得する必要があります。

Okta を使用した例を次に示します。ほぼすべての IDP は、同様の方法で Okta を使用します。このフローを使用するには、リソース所有者のパスワード付与タイプを有効にする必要があることに注意してください。IDP URL、クライアント シークレット、クライアント ID、ユーザー名、パスワードを置き換えます。

curl -X POST "https://OKTA\_URL/v1/token" \\  
\-H 'accept: application/json' \\  
\-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \\  
\-H "Content-Type: application/x-www-form-urlencoded" \\  
\-d "grant\_type=password&username=USER&password=PASSWORD&scope=openid"

トークンを取得したら、DSN を使用してテストできます。Windows では、ODBC ドライバー マネージャーを使用できます。Mac では、iODBC ドライバー マネージャー UI を使用できます。Linux では、Tableau Server の customer-bin フォルダーに含まれている isql コマンド ライン ツールを使用できます。

固定の AWS プロファイルを使用するプラグインは、その接続のすべてのユーザーに同じプロファイルを使用したい場合を除き、機能しません。他の OAuth プラグインでは、システム ブラウザーに直接アクセスする必要がありますが、サーバー側では機能しません。

以下は、Windows での ODBC ドライバー マネージャーの使用例です。

![](/tableau/next/ja-jp/server-linux/ja-jp/Img/redshift_oauth_iam_troubleshoot.jpg)