Amazon Athena で独自の ID プロバイダーを使用する

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

ID プロバイダーによって、統合を設定するために必要な手順は異なります。Tableau では、Tableau 製品の設定方法に関する手順のみを詳しく提供します。ID プロバイダー (Okta など) を構成する方法については、その製品のヘルプとチュートリアルを参照してください。このドキュメントでは、設定プロセスの概要を説明します。

注: Tableau および Salesforce の内容以外の手順とリンクは、更新されていないか、正確ではない可能性があります。

ID プロバイダー (IdP) の設定

  1. IDP に Tableau Desktop および Tableau Server の OAuth クライアントを作成します。Desktop クライアントは PKCE(新しいウィンドウでリンクが開く) を有効にし、http://localhost リダイレクトを使用します。

  2. ロールを承認するために必要なカスタム クレームを追加します。クレームとスコープの詳細については、「スコープとクレーム(新しいウィンドウでリンクが開く)」を参照してください。

  3. Tableau OAuth 構成ファイルを作成します。作成方法の詳細については、github の「OAuth の設定と使用方法(新しいウィンドウでリンクが開く)」(英語)、およびこちらの例を参照してください。Tableau OAuth 構成 ID には必ず「custom_」というプレフィックスを付けてください。

  4. 上記リンクの OAuth 設定トピックで説明されているように、Tableau Desktop マシン、Tableau Server、Tableau Cloud サイトに Tableau OAuth 設定ファイルをインストールします。

AWS で IDP を構成する

  1. IDP エンティティを作成します。Amazon ドキュメントの「Web ID フェデレーション」「OIDC ID プロバイダーの作成」を参照してください。
  2. IDP は、Tableau のドライバー プラグインと連携して Athena にフェデレートするように構成する必要があります。次のプロバイダー情報は、Tableau Server フローと Tableau Desktop フローの両方で使用されます。
    AwsCredentialsProviderClas=com.simba.athena.iamsupport.plugin.JwtCredentialsProvider
    role_session_name=AthenaJWT

  3. IDP 専用のロールとポリシーを作成します。AWS ドキュメントの「OIDC のロールの作成」を参照してください。

Athena のロールを設定する

Athena に必要なポリシーをアタッチします。これを行うには多くの方法があります。1 つの方法として、カスタム クレームを使用します。OpenID トークンでカスタム クレームを使用して、ロールに権限を付与できます。これらのロールには、他のリソースへのアクセス権が付与されます。詳細については以下を参照してください。

Athena に接続する

ユーザーは、引き受ける AWS ロール ARN (Amazon Resource Name) を指定し、[OAuth プロバイダー] で先ほどインストールした OAuth 構成を選択する必要があります。構成を選択するためのドロップダウン メニューは、選択できる構成が複数ある場合にのみ表示されることに注意してください。

適切に設定されていると、ユーザーは IDP にリダイレクトされ、Tableau のトークンが認証および認可されます。Tableau は openid トークンとリフレッシュ トークンを受け取ります。AWS は、IDP からのトークンと署名を検証し、トークンからクレームを抽出して、IAM ロールへのクレームのマッピングを検索し、Tableau がユーザーに代わってロールを引き受けることを許可または拒否します。

例: AssumeRoleWithWebIdentity

Athena ウィンドウにログインする

トークン

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

<connection-customization class='athena' enabled='true' version='10.0'>
    <vendor name='athena' />
    <driver name='athena' />
    <customizations>
        <customization name='CAP_OAUTH_FEDERATE_ACCCESS_TOKEN' value='yes'/>
    </customizations>
</connection-customization>

.tdc ファイルの設定とインストールの詳細については、「接続のカスタマイズと微調整(新しいウィンドウでリンクが開く)」を参照してください。

Okta の構成

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

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

Okta ダッシュボード

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!