

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# IAM 認証情報の提供オプション
<a name="options-for-providing-iam-credentials"></a>

JDBC または ODBC 接続の IAM 認証情報を提供するには、次のいずれかの認証タイプを選択します。
+ **AWS プロファイル** 

  JDBC または ODBC 設定形式で認証情報の値を指定する代わりとして、名前付きプロファイルで値を指定できます。詳細については、[設定プロファイルを使用する](#using-configuration-profile) を参照してください。
+ **IAM 認証情報**

  JDBC または ODBC 設定の形式で、AccessKeyID、SecretAccessKey、および必要に応じて SessionToken の値を指定します。SessionToken は、一時的認証情報を持つ IAM ロールにのみ必要です。詳細については、[IAM 認証情報を提供するための JDBC および ODBC のオプション](#jdbc-options-for-providing-iam-credentials) を参照してください。
+ **アイデンティティプロバイダーフェデレーション** 

  アイデンティティプロバイダーフェデレーションを使用して、アイデンティティプロバイダーのユーザーを Amazon Redshift で認証できるようにする場合は、認証情報プロバイダープラグインの名前を指定します。詳細については、[認証情報プロバイダープラグイン](#using-credentials-provider-plugin) を参照してください。

  Amazon Redshift JDBC および ODBC ドライバーには、次の SAML ベースの ID フェデレーション認証情報プロバイダーのプラグインが含まれます。
  + Microsoft Active Directory Federation Services (AD FS)
  + PingOne
  + Okta
  + Microsoft Azure Active Directory (Azure AD)

  JDBC または ODBC 設定の形式、またはプロファイルを使用して、プラグイン名前と関連する値を指定できます。詳細については、「[JDBC ドライバーバージョン 2.x の設定オプション](jdbc20-configuration-options.md)」を参照してください。

詳細については、「[ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc)」を参照してください。

## 設定プロファイルを使用する
<a name="using-configuration-profile"></a>

`GetClusterCredentials` 設定ファイルの名前付きプロファイルで、IAM 認証情報オプションと AWS オプションを設定として指定できます。プロファイルの JDBC オプションを使用してプロファイル名を指定します。この設定は、ホームディレクトリの `config` という名前のフォルダにある `credentials` または `.aws` というファイルに保存されます。

Amazon Redshift JDBC ドライバーまたは ODBC ドライバーに含まれる SAML ベースの認証情報プロバイダプラグインの場合は、前述の [認証情報プロバイダープラグイン](#using-credentials-provider-plugin)で説明した設定を使用できます。`plugin_name` を使用しない場合、他のオプションは無視されます。

2 つのプロファイルのある \$1/.aws/credentials ファイルの例を以下に示します。

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user2]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
session_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
```

`user2` の例の認証情報を使用するには、JDBC URL で `Profile=user2` を指定します。

プロファイルの使用についての詳細は、「*AWS Command Line Interface ユーザーガイド*」の「[設定ファイルと認証情報ファイルの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

JDBC ドライバーのプロファイルを使用する方法の詳細については、「[プロファイルの指定](jdbc20-configure-authentication-ssl.md#jdbc20-aws-credentials-profiles)」を参照してください。

ODBC ドライバーのプロファイルの使用方法の詳細については、「[認証方法](odbc20-authentication-ssl.md)」を参照してください。

## IAM 認証情報を提供するための JDBC および ODBC のオプション
<a name="jdbc-options-for-providing-iam-credentials"></a>

以下の表に、IAM 認証情報を提供するための JDBC および ODBC のオプションを示します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/options-for-providing-iam-credentials.html)

## データベースユーザー認証情報を作成するための JDBC および ODBC のオプション
<a name="jdbc-and-odbc-options-for-database-credentials"></a>

Amazon Redshift JDBC または ODBC ドライバを使用してデータベースユーザー認証情報を作成するには、JDBC または ODBC オプションとしてデータベースユーザー名を指定します。オプションで、存在しない場合は新しいデータベースユーザーをドライバで作成し、ユーザーがログイン時に参加するデータベースユーザーグループのリストを指定できます。

ID プロバイダ (IdP) を使用する場合は、IdP 管理者と連携して、これらのオプションに合った正しい値を確認します。IdP 管理者は、JDBC または ODBC のオプションとして提供する必要がない場合、それらのオプションを提供するように IdP を設定できます。詳細については、「[ステップ 2: IdP の SAML アサーションを設定する](generating-iam-credentials-steps.md#configuring-saml-assertions)」を参照してください。

**注記**  
`${redshift:DbUser}`で説明されているように、IAM ポリシー変数 [GetClusterCredentials のリソースポリシー](redshift-iam-access-control-identity-based.md#redshift-policy-resources.getclustercredentials-resources) を使用する場合、`DbUser`の値は API オペレーションのリクエストコンテキストから取得した値で置き換えられます。Amazon Redshift ドライバは、SAML 属性として提供される値ではなく、接続 URL から提供される `DbUser` 変数の値を使用します。  
この接続の安全性を維持するには、IAM ポリシーの条件を使用して、`DbUser` 値を `RoleSessionName`で検証することが推奨されます。IAM ポリシーを使用して条件を設定する方法の例は、[例 8: GetClusterCredentials を使用する IAM ポリシー](redshift-iam-access-control-identity-based.md#redshift-policy-examples-getclustercredentials)で参照できます。

次の表は、データベースユーザー認証情報を作成するためのオプションを示しています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/options-for-providing-iam-credentials.html)

## 認証情報プロバイダープラグイン
<a name="using-credentials-provider-plugin"></a>

Amazon Redshift はシングルサインオン認証に認証情報プロバイダープラグインを使用します。

シングルサインオン認証をサポートするために、Amazon Redshift は Microsoft Azure Active Directory 用の Azure AD プラグインを提供します。このプラグインの設定方法については、[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)を参照してください。

### 多要素認証
<a name="setting_mfa"></a>

多要素認証 (MFA) をサポートするために、Amazon Redshift にはブラウザベースのプラグインが用意されています。Okta、PingOne、Active Directory Federation Services にはブラウザ SAML プラグインを使用し、Microsoft Azure Active Directory にはブラウザ Azure AD プラグインを使用します。

ブラウザの SAML プラグインでは、OAuth 認証は次のようになります。

![\[プラグイン、ローカルサーバー、ウェブブラウザ、エンドポイントが連携して SAML 認証でユーザーを認証する方法の OAuth ワークフロー。\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/BrowserSAML_plugin.png)


1. ユーザーがログインを試行します。

1. プラグインは、ローカルホスト上の着信接続をリッスンするローカルサーバーを起動します。

1. プラグインはウェブブラウザを起動し、指定されたシングルサインオンログイン URL フェデレーテッド ID プロバイダーのエンドポイントから HTTPS 経由で SAML 応答を要求します。

1. ウェブブラウザはリンクをたどり、ユーザーに認証情報の入力を要求します。

1. ユーザーが認証され、同意が付与されると、フェデレーテッド ID プロバイダーのエンドポイントは、`redirect_uri`に示される URI に HTTPS 経由で SAML 応答を返します。

1. ウェブブラウザは、SAML 応答を含む応答メッセージを、指定された `redirect_uri`に移動します。

1. ローカルサーバーは着信接続を受け入れ、プラグインは SAML 応答を取得して Amazon Redshift に渡します。

ブラウザ Azure AD プラグインでは、SAML 認証は次のようになります。

![\[プラグイン、ローカルサーバー、ウェブブラウザ、エンドポイントが連携して SAML 認証でユーザーを認証する方法をの Azure ワークフロー。\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/BrowserAzure_plugin.png)


1. ユーザーがログインを試行します。

1. プラグインは、ローカルホスト上の着信接続をリッスンするローカルサーバーを起動します。

1. プラグインはウェブブラウザを起動して、Azure AD `oauth2/authorize` エンドポイントから認可コードを要求します。

1. ウェブブラウザは、HTTPS 経由で生成されたリンクをたどり、ユーザーに認証情報の入力を要求します。リンクは、テナントや client\$1id などの設定プロパティを使用して生成されます。

1. ユーザーが認証され、同意が付与されると、Azure AD `oauth2/authorize` エンドポイントは HTTPS 経由で応答を返し、認可コードとともに示された `redirect_uri` に送信します。

1. ウェブブラウザは、SAML レスポンスを含む応答メッセージを、指定された `redirect_uri`に移動します。

1. ローカルサーバーは、着信接続とプラグイン要求を受け入れ、認可コードを取得し、Azure AD `oauth2/token` エンドポイントに POST リクエストを送信します。

1. Azure AD `oauth2/token` エンドポイントは、アクセストークンを含む応答を、示された `redirect_uri`に返します。

1. プラグインは SAML 応答を取得し、Amazon Redshift に渡します。

以下のセクションを参照してください。
+ Active Directory フェデレーションサービス (AD FS)

  詳細については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。
+ PingOne (Ping) 

  Ping は、フォーム認証を使用する既定の PingOne IdP Adapter でのみサポートされます。

  詳細については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。
+ Okta 

  Okta は、AWS マネジメントコンソールで使用される Okta 提供アプリケーションでのみサポートされます。

  詳細については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。
+ Microsoft Azure Active Directory (Azure AD)

  詳細については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。

### プラグインオプション
<a name="configuring_plugin_options"></a>

SAML ベースの認証情報プロバイダープラグインを使用するには、名前付きプロファイルで JDBC または ODBC オプションを使用して次のオプションを指定します。`plugin_name` が指定されていない場合、ほかのオプションは無視されます。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/options-for-providing-iam-credentials.html)

# Amazon Redshift CLI または API を使用して IAM ID のデータベース認証情報を生成する
<a name="generating-iam-credentials-cli-api"></a>

プログラムで一時的なデータベースユーザー認証情報を生成するため、Amazon Redshift では AWS Command Line Interface (AWS CLI) および [GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) API オペレーション用の [get-cluster-credentials](https://docs.aws.amazon.com/cli/latest/reference/redshift/get-cluster-credentials.html) コマンドを利用できます。または、`GetClusterCredentials` オペレーションを呼び出し、データベースユーザー認証情報を取得して、SQL クライアントと Amazon Redshift データベース間の接続を確立するプロセスを管理する、Amazon Redshift JDBC または ODBC ドライバーを使用して SQL クライアントを設定できます。詳細については、[データベースユーザー認証情報を作成するための JDBC および ODBC のオプション](options-for-providing-iam-credentials.md#jdbc-and-odbc-options-for-database-credentials) を参照してください。

**注記**  
Amazon Redshift JDBC または ODBC ドライバを使用して、データベースユーザー認証情報を生成することをお勧めします。

このセクションでは、プログラムで `GetClusterCredentials` オペレーションまたは get-cluster-credentials コマンドを呼び出し、データベースのユーザー認証情報を取得して、データベースに接続する手順を示します。

**一時的データベース認証情報を生成して使用するには**

1. 必要なアクセス許可を使用してユーザーまたはロールを作成または変更します。IAM 許可の詳細については、「[ステップ 3: GetClusterCredentialsWithIAM または GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールを作成する](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions)」を参照してください。

1. 前のステップで認可したユーザーまたはロールとして、get-cluster-credentials CLI コマンドを実行するか、`GetClusterCredentials` API オペレーションを呼び出して以下の値を指定します。
   + **クラスター識別子** – データベースを含むクラスターの名前。
   + **データベースユーザー名** – 既存の、または新しいデータベースユーザーの名前。
     + ユーザーがデータベースに存在せず、AutoCreate が true の場合、PASSWORD を無効にして新しいユーザーが作成されます。
     +  ユーザーが存在せず、AutoCreate が false の場合、要求は失敗します。
     + この例では、データベースユーザー名は `temp_creds_user`です。
   +  **Autocreate** – (オプション) データベースユーザー名が存在しない場合は新しいユーザーを作成します。
   +  **データベース名** – (オプション) ユーザーがログオンする権限が付与されているデータベースの名前。データベース名を指定しない場合、ユーザーは任意のクラスターデータベースにログインできます。
   +  **データベースグループ** – (オプション) 既存のデータベースユーザーグループのリスト。正常にログインすると、データベースユーザーが、指定されたユーザーグループに追加されます。グループを指定しない場合、ユーザーは PUBLIC 許可のみを持ちます。ユーザーグループ名は、ユーザーまたはロールにアタッチされた IAM ポリシーに指定されている dbgroup リソース ARN と一致する必要があります。
   +  **有効期限** – (任意) 一時的認証情報が期限切れになるまでの時間 (秒単位)。900 秒 (15 分) と 3600 秒 (60 分間) の間の値を指定できます。デフォルト値は 900 秒です。

1. Amazon Redshift は、指定したリソースで `GetClusterCredentials` オペレーションを呼び出すアクセス許可をユーザーが持っていることを確認します。

1. Amazon Redshift は一時パスワードとデータベースユーザー名を返します。

   次の例は、Amazon Redshift CLI を使用して、`temp_creds_user`という既存のユーザー用に一時的データベース認証情報を生成します。

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600
   ```

   結果は次のようになります。

   ```
   {
     "DbUser": "IAM:temp_creds_user", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

   次の例では、Amazon Redshift CLI と autocreate を使用して、新しいユーザー用の一時的データベース認証情報を生成し、そのユーザーをグループ `example_group`に追加します。

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --auto-create --db-name exampledb --db-groups example_group --duration-seconds 3600
   ```

   結果は次のようになります。

   ```
   {
     "DbUser": "IAMA:temp_creds_user:example_group", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

1. Amazon Redshift クラスターとの Secure Sockets Layer (SSL) 認証接続を確立し、`GetClusterCredentials`の応答からのユーザー名とパスワードとともにログイン要求を送信します。ユーザー名には `IAM:` または `IAMA:` というプレフィックスを含めます (例: `IAM:temp_creds_user` または `IAMA:temp_creds_user`)。
**重要**  
SSL を必要とするように SQL クライアントを設定します。それ以外の場合、SQL クライアントが自動的に SSL との接続を試みた場合、なんらかの失敗があると、非 SSL にフォールバックする可能性があります。その場合、最初の接続の試行は、認証情報が期限切れまたは無効なために失敗する可能性があり、2 番目の接続の試行は、接続が SSL でないために失敗します。その場合、最初のエラーメッセージは表示されない可能性があります。SSL を使用したクラスターへの接続の詳細については、[接続のセキュリティオプションを設定する](connecting-ssl-support.md)を参照してください。

1. 接続で SSL を使用しない場合、接続の試行は失敗します。

1. クラスターは `authentication` 要求を SQL クライアントに送信します。

1. 次に、SQL クライアントは一時パスワードをクラスターに送信します。

1. パスワードが有効で期限切れでない場合、クラスターは接続を完了します。

# JDBC または ODBC シングルサインオン認証の設定
<a name="setup-azure-ad-identity-provider"></a>

外部 ID プロバイダー (IdP) を利用して、Amazon Redshift クラスターにアクセスするユーザーを認証および承認することで、ユーザー管理を簡素化してセキュリティを強化できます。これにより、複数のサービスにわたって、一元化されたユーザー管理、ロールベースのアクセスコントロール、監査機能が可能になります。一般的なユースケースとして、さまざまなユーザーグループの認証の合理化、一貫したアクセスポリシーの適用、規制要件の遵守などがあります。

以下のページでは、Redshift クラスターとの IdP 統合の設定について説明します。AWS を IdP のサービスプロバイダーとして設定する方法については、*IAM ユーザーガイド*の [証明書利用者の信頼とクレームの追加によって SAML 2.0 IdP を設定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html#saml_relying-party) を参照してください。

# AD FS
<a name="setup-identity-provider-adfs"></a>

このチュートリアルでは、AD FS を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスする方法を説明します。

## ステップ 1: AD FS と AWS アカウントを相互に信頼するように設定する
<a name="setup-identity-provider-adfs-trust"></a>

 以下の手順では、信頼関係を設定する方法を説明します。

1. AD FS ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、「[クラスターの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html)」を参照してください。

1. Microsoft マネジメントコンソールで Amazon Redshift アクセスを制御するために AD FS を設定します。

   1. **ADFS 2.0**を選択し、**証明書利用者信頼の追加**を選択します。**証明書利用者信頼の追加ウィザード** ページで、**開始**を選択します。

   1. **データソースの選択** ページで、**オンラインまたはローカルネットワーク上で公開されている証明書利用者に関するデータのインポート**を選択します。

   1. **フェデレーションメタデータアドレス (ホスト名またはURL）**に **https://signin.aws.amazon.com/saml-metadata.xml**と入力します。メタデータ XML ファイルは、AWS を証明書利用者として記述する標準の SAML メタデータドキュメントです。

   1. **表示名の指定** ページで、**表示名**に値を入力します。

   1. **発行認可ルールの選択** ページで、この証明書利用者へのアクセスをすべてのユーザーに許可または拒否する発行認可ルールを選択します。

   1. **信頼の追加の準備** ページで、設定を確認します。

   1. **終了** ページで、**ウィザードが終了すると、この証明書利用者信頼のための [クレームルールの編集] ダイアログが開きます**を選択します。

   1. コンテキスト (右クリック) メニューで、**証明書利用者信頼**を選択します。

   1. 証明書利用者については、コンテキスト (右クリック) メニューを開き、**クレームルールの編集**を選択します。**[クレームルールの編集]** ページで、**[ルールを追加]** を選択します。

   1. **クレームルールテンプレート**で、**受信クレームの変換**を選択し、**ルールの編集 – NameId**ページで、次の操作を行います。
      + **クレームルール名**に **NameId**を入力します。
      + **受信クレーム名**で、**Windows アカウント名**を選択します。
      + **発信クレーム名**で、**名前 ID**を選択します。
      + **発信者名 ID フォーム**で、**永続的識別子**を選択します。
      + **すべてのクレーム値を通過**を選択します。

   1. **[クレームルールの編集]** ページで、**[ルールを追加]** を選択します。**ルールテンプレートの選択** ページの **クレームルールテンプレート**で、**LDAP 属性をクレームとして送信**を選択します。

   1. **ルールの設定** ページで、次の手順を実行します。
      + **クレームルール名**に、**RoleSessionName**と入力します。
      + **属性を保存する**で **アクティブディレクトリ**を選択します。
      + **LDAP 属性**で **E-Mail-Addresses**を選択します。
      + **送信クレームタイプ**で **https://aws.amazon.com/SAML/Attributes/RoleSessionName**を選択します。

   1. **[クレームルールの編集]** ページで、**[ルールを追加]** を選択します。**[ルールテンプレートの選択]** ページの **[クレームルールテンプレート]**で、**[カスタムルールによるクレーム送信]** を選択します。

   1. **ルールの編集 - AD グループの取得** ページで、**クレームルール名**に **AD グループの取得**と入力します。

   1. **カスタムルール**で、次のように入力します。

      ```
      c:[Type ==
                                          "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
                                          Issuer == "AD AUTHORITY"] => add(store = "Active Directory",
                                          types = ("http://temp/variable"), query = ";tokenGroups;{0}",
                                          param = c.Value);
      ```

   1. **[クレームルールの編集]** ページで、**[ルールを追加]** を選択します。**[ルールテンプレートの選択]** ページの **[クレームルールテンプレート]**で、**[カスタムルールによるクレーム送信]** を選択します。

   1. **ルールの編集 - ロール** ページの **クレームルール名**に **ロール**と入力します。

   1. **カスタムルール**で、次のように入力します。

      ```
      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-"));
      ```

      引き受ける SAML プロバイダーとロールの ARN をメモします。この例では、`arn:aws:iam:123456789012:saml-provider/ADFS`は SAML プロバイダーの ARN で、`arn:aws:iam:123456789012:role/ADFS-`はロールの ARN です。

1. `federationmetadata.xml` ファイルをダウンロードしたことを確認します。ドキュメントの内容に無効な文字が含まれていないことを確認してください。これは、AWSとの信頼関係を設定する際に使用するメタデータファイルです。

1. IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ID プロバイダーを作成および管理する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console)」を参照してください。

1. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、「IAM ユーザーガイド」**の「[SAML 用のロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)」を参照してください。

1. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」を参照してください。Azure AD の例については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。

## ステップ 2: AD FS への認証用に JDBC または ODBC を設定する
<a name="setup-identity-provider-adfs-auth"></a>

------
#### [ JDBC ]

 以下の手順では、AD FS と JDBC の関係を設定する方法を説明します。
+ AD FS シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  JDBC ドライバーを使用する任意のクライアントを使用して AD FS シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、「[Amazon Redshift での JDBC ドライバーバージョン 2.x による接続の構成](jdbc20-install.md)」を参照してください。

  たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。

  1. **接続プロファイルの選択** ページで、**プロファイルグループ**を追加します (例: **ADFS**)。

  1. **接続プロファイル**に、接続プロファイル名を入力します (例: **ADFS**)。

  1. **[ドライバの管理]** を選択し、**[Amazon Redshift]** を選択します。**[フォルダを開く]** アイコン、**[ライブラリ]** を選択し、適切な JDBC .jar ファイルを選択します。

  1. **接続プロファイルの選択**ページで、次のように接続プロファイルに情報を追加します。
     + **ユーザー**には、AD FS ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているアカウントのユーザー名です。
     + **パスワード**には、AD FS パスワードを入力します。
     + **[ドライバ]** では、**[Amazon Redshift (com.amazon.redshift.jdbc.Driver)]** を選択します。
     + **[URL]** には、**jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name*** と入力します。

  1. **拡張プロパティ**を選択します。**[plugin\$1name]** には、**com.amazon.redshift.plugin.AdfsCredentialsProvider** と入力します。この値は、認証方法として AD FS シングルサインオンを使用するドライバーに指定します。

------
#### [ ODBC ]

**AD FS への認証用に ODBC を設定するには**
+ AD FS シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。

  Windows の場合、**Amazon Redshift ODBC ドライバ DSN セットアップ** ページの **[接続設定]** で、次の情報を入力します。
  + **[データソース名]** には、***your-DSN*** と入力します。ODBC プロファイル名として使用するデータソース名を指定します。
  + **Auth type**で **アイデンティティプロバイダー: SAML**を選択します。これは、ODBC ドライバが AD FS シングルサインオンを使用した認証に使用する認証方法です。
  + **[クラスター ID]** には、***your-cluster-identifier*** と入力します。
  + **[リージョン]** には、***your-cluster-region*** と入力します。
  + **[データベース]** には、***your-database-name*** と入力します。
  + **[ユーザー]** には、***your-adfs-username*** と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している AD FS アカウントのユーザー名です。**Auth type** が **ID プロバイダー: SAML** である場合にのみ使用します。
  + **[パスワード]** には、***your-adfs-password*** と入力します。**Auth type** が **ID プロバイダー: SAML**である場合にのみ使用します。

  macOS および Linux では、次のように `odbc.ini` ファイルを編集します。
**注記**  
すべてのエントリでは、大文字と小文字は区別されません。
  + **[clusterid]** には、***your-cluster-identifier*** と入力します。これは、作成された Amazon Redshift クラスターの名前です。
  + **[リージョン]** には、***your-cluster-region*** と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。
  + **[データベース]** には、***your-database-name*** と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。
  + **[ロケール]** には、**en-us** と入力します。これは、エラーメッセージが表示される言語です。
  + **[iam]** には、**1** と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。
  + **plugin\$1name** には、次のいずれかの操作を行います。
    + MFA 設定を使用した AD FS シングルサインオンの場合は、**BrowserSAML** と入力します。これは、ODBC ドライバが AD FS への認証に使用する認証方法です。
    + AD FS シングルサインオン設定の場合は、**ADFS** と入力します。これは、ODBC ドライバが Azure AD シングルサインオンを使用した認証に使用する認証方法です。
  + **[uid]** には、***your-adfs-username*** と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、**plugin\$1name** が **ADFS** である場合にのみ使用します。
  + **[pwd]** には、***your-adfs-password*** と入力します。これは、**plugin\$1name** が **ADFS**である場合にのみ使用します。

  macOS と Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------

# Azure
<a name="setup-identity-provider-azure"></a>

Amazon Redshift クラスターにアクセスするためのアイデンティティプロバイダー (IdP) として Microsoft の Azure AD を使用できます。このチュートリアルでは、Azure を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスする方法を説明します。

Microsoft Azure AD シングルサインオンで Amazon Redshift アクセスをフェデレーションする方法については、次の動画をご覧ください。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/aXs9hEgJCss/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/aXs9hEgJCss)


## ステップ 1: Azure と AWS アカウントを相互に信頼するように設定する
<a name="setup-identity-provider-azure-trust"></a>

以下の手順では、信頼関係を設定する方法を説明します。

**相互に信頼するように Azure AD と AWS アカウントを設定するには**

1. Azure AD ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、「[クラスターの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html)」を参照してください。

1. Microsoft Azure ポータルで AWS に使用される Azure Active Directory、グループ、ユーザーを設定します。

1. AWS コンソールへのシングルサインオンおよび Amazon Redshift へのフェデレーテッドログインに使用する Microsoft Azure ポータルに、エンタープライズアプリケーションとして Amazon Redshift を追加します。**Enterprise application** を選択します。

1. **\$1New application** を選択します。[アプリケーションを追加] ページが表示されます。

1. 検索フィールドで **AWS** を検索します。

1. **Amazon Web Services (AWS)** を選択し、**追加** をクリックします。これにより、AWS アプリケーションが作成されます。

1. **管理** で、**シングルサインオン**を選択します。

1. **SAML** を選択します。[Amazon Web Services (AWS) \$1 SAML ベースのサインオン] ページが表示されます。

1. **はい** を選択して、[SAML によるシングルサインオンのセットアップ] ページに進みます。このページには、事前設定されたシングルサインオン関連属性のリストが表示されます。

1. **ベーシック SAML 設定** で、編集アイコンを選択し、**保存** を選択します。

1. 複数のアプリケーションを設定する場合は、識別子の値を指定します。たとえば、***https://signin.aws.amazon.com/saml\$12***と入力します。2 番目のアプリケーション以降では、この形式を \$1 記号とともに使用して、一意の SPN 値を指定します。

1. **ユーザー属性とクレーム** セクションで、編集アイコンを選択します。

   既定では、一意のユーザー識別子 (UID)、ロール、RoleSessionName、SessionDuration クレームは事前に設定されています。

1. **\$1 新しいクレームの追加** を選択して、データベースユーザーのクレームを追加します。

   **[名前]** に **DbUser** と入力します。

   [**Namespace**] に **https://redshift.amazon.com/SAML/Attributes** と入力します。

   **[出典]** で、**[属性]** を選択します。

   **出典属性**で、**user.userprincipalname**を選択します。次に、**[保存]** を選択します。

1. **\$1 新しいクレームの追加** を選択して、AutoCreate のクレームを追加します。

   **[名前]** に **AutoCreate** と入力します。

   [**Namespace**] に **https://redshift.amazon.com/SAML/Attributes** と入力します。

   **[出典]** で、**[属性]** を選択します。

   **出典属性**で、**true**を選択します。次に、**[保存]** を選択します。

   ここで、`123456789012` は AWS アカウント、*`AzureSSO`* はユーザーが作成した IAM ロール、*`AzureADProvider`* は IAM プロバイダーです。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/setup-identity-provider-azure.html)

1. **アプリの登録 > ***your-application-name*** > 認証**で、**モバイルとデスクトップアプリケーション**を追加します。URL を http://localhost/redshift と指定します。

1. **証明書の SAML 署名** セクションで **ダウンロード** を選択し、IAM SAMLアイデンティティプロバイダーを作成するときに使用するフェデレーションメタデータ XML ファイルをダウンロードして保存します。このファイルは、シングルサインオンアイデンティティの作成に使用されます。

1. IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細なステップついては *IAM ユーザーガイド*の [IAMアイデンティティプロバイダー (コンソール) の作成と管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console) を参照してください。

1. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、「IAM ユーザーガイド」**の「[SAML 用のロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)」を参照してください。

1. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」を参照してください。

   環境に合わせて次のポリシー (JSON 形式) を変更します。
   + クラスターの AWS リージョンを `us-west-1`に置き換えます。
   + AWS アカウントを *`123456789012`*に置き換えます。
   + クラスター識別子 (またはすべてのクラスターの `*`) を *`cluster-identifier`*に置き換えます。
   + データベース (またはすべてのクラスターの `*`) を *`dev`*に置き換えます。
   + IAM ロールの一意の識別子を *`AROAJ2UCCR6DPCEXAMPLE`*に置き換えます。
   + テナントまたは会社の E メールドメインを `example.com`に置き換えます。
   + ユーザーに割り当てる予定のデータベースグループを *`my_dbgroup`*に置き換えます。

   ```
   {
       "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:123456789012:dbuser:cluster-identifier/${redshift:DbUser}"
           },
           {
               "Effect": "Allow",
               "Action": "redshift:JoinGroup",
               "Resource": "arn:aws:redshift:us-west-1:123456789012:dbgroup:cluster-identifier/my_dbgroup"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "redshift:DescribeClusters",
                   "iam:ListRoles"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

   このポリシーは、以下のアクセス許可を付与します。
   + 最初のセクションでは、`GetClusterCredentials` API オペレーションに、指定したクラスターの一時的な認証情報を取得するアクセス許可を付与します。この例では、リソースは `cluster-identifier` で、データベースは *`dev`*、アカウントは *`123456789012`*、AWS リージョンは *`us-west-1`*です。`${redshift:DbUser}` 句を使用すると、Azure AD で指定された `DbUser` 値に一致するユーザーのみが接続できます。
   + 条件句は、特定のユーザーだけが強制的に一時認証情報を取得します。これらのユーザーは、会社の E メールドメインの E メールアドレスで識別される IAM アカウントのロール固有 ID *`AROAJ2UCCR6DPCEXAMPLE`* で指定されたロールのユーザーです。固有 ID の詳細については、*IAM ユーザーガイド*の [固有 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) を参照してください。

     IdP (この場合は Azure AD) を使用したセットアップによって、条件句の記述方法が決まります。従業員の E メールが `johndoe@example.com` の場合は、まず、`${redshift:DbUser}` を従業員のユーザー名 `johndoe`に一致するスーパーフィールドに設定します。次に、この条件を機能させるため、AWS SAML `RoleSessionName` フィールドを従業員の E メール `johndoe@example.com`に一致するスーパーフィールドに設定します。このアプローチを使用する場合は、以下の点を考慮します。
     + `${redshift:DbUser}` を従業員の E メールに設定した場合は、例の JSON の `@example.com` を削除して、`RoleSessionName`に一致させます。
     + 従業員のユーザー名だけ `RoleSessionId` に設定した場合は、例の `@example.com` を削除して`RoleSessionName`と一致させます。
     + 例の JSON では、`${redshift:DbUser}` と `RoleSessionName` の両方が従業員の E メールに設定されます。この例では、JSONで Amazon Redshift データベースのユーザー名 `@example.com` を使用して、クラスターにアクセスするためにユーザーをサインインします。
   + 2 番目のセクションでは、指定したクラスターに `dbuser` 名を作成する権限を付与します。この例の JSON では、作成を `${redshift:DbUser}` に制限しています。
   + 3 番目のセクションでは、どの `dbgroup` にユーザーが参加できるかを指定する権限を付与します。この例の JSON では、ユーザーは指定したクラスターの `my_dbgroup` グループに参加できます。
   + 4 番目のセクションでは、ユーザーがすべてのリソースに対して実行できるアクションへのアクセス許可を付与します。この例の JSON では、ユーザーは `redshift:DescribeClusters` を呼び出し、クラスターエンドポイント、AWS リージョン、ポートなどのクラスター情報を取得できます。また、ユーザーは `iam:ListRoles` を呼び出して、ユーザーが引き受けることができるロールを確認することもできます。

## ステップ 2: Azure への認証用に JDBC または ODBC を設定する
<a name="setup-identity-provider-azure-auth"></a>

------
#### [ JDBC ]

**Microsoft Azure AD への認証用に JDBC を設定するには**
+ Azure AD シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  JDBC ドライバーを使用する任意のクライアントを使用して Azure AD シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、「[Amazon Redshift での JDBC ドライバーバージョン 2.x による接続の構成](jdbc20-install.md)」を参照してください。

  たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。

  1. SQL Workbench/J を起動します。 **接続プロファイルの選択** ページで、**AzureAuth**という **プロファイルグループ** を追加します。

  1. **接続プロファイル**には、**Azure**と入力します。

  1. **[ドライバの管理]** を選択し、**[Amazon Redshift]** を選択します。**[フォルダを開く]** アイコン、**[ライブラリ]** を選択し、適切な JDBC .jar ファイルを選択します。

  1. **接続プロファイルの選択**ページで、次のように接続プロファイルに情報を追加します。
     + **ユーザー**には、マイクロソフトの Azure ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。
     + **パスワード**には、マイクロソフトの Azure のパスワードを入力します。
     + **[ドライバ]** では、**[Amazon Redshift (com.amazon.redshift.jdbc.Driver)]** を選択します。
     + **[URL]** には、**jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name*** と入力します。

  1. **拡張されたプロパティ** を選択して、次のように接続プロパティに情報を追加します。

     Azure AD シングルサインオン設定の場合は、次のように追加情報を追加します。
     + **plugin\$1name** には、**com.amazon.redshift.plugin.AzureCredentialsProvider** と入力します。この値は、認証方法として Azure Single Sign-On を使用するドライバーに指定します。
     + **[idp\$1tenant]** には、***your-idp-tenant*** と入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。
     + **[client\$1secret]** には、***your-azure-redshift-application-client-secret*** と入力します。Microsoft Azure AD のみに使用されます。これは、Azure Single Sign-On 設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントシークレットです。これは、ccom.amazon.redshift.plugin.AzureCredentialsProvider プラグインにのみ適用されます。
     + **[client\$1id]** には、***your-azure-redshift-application-client-id*** と入力します。Microsoft Azure AD のみに使用されます。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。

     MFA 設置を使用した Azure AD シングルサインオンの場合は、次のように接続プロパティに情報を追加します。
     + **[plugin\$1name]** には、**com.amazon.redshift.plugin.BrowserAzureCredentialsProvider** と入力します。この値は、認証方法として MFA と Azure シングルサインオンを使用するようドライバに指定します。
     + **[idp\$1tenant]** には、***your-idp-tenant*** と入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。
     + **[client\$1id]** には、***your-azure-redshift-application-client-id*** と入力します。Microsoft Azure AD のみに使用されます。これは、MFA 設定で Azure AD シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。
     + **[listen\$1port]** には、***your-listen-port***と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。
     + **[idp\$1response\$1timeout]** には、***the-number-of-seconds*** と入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。

------
#### [ ODBC ]

**Microsoft Azure AD への認証用に ODBC を設定するには**
+ Azure AD シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。

  Windows の場合、**Amazon Redshift ODBC ドライバ DSN セットアップ** ページの **[接続設定]** で、次の情報を入力します。
  + **[データソース名]** には、***your-DSN*** と入力します。ODBC プロファイル名として使用するデータソース名を指定します。
  + Azure AD シングルサインオン設定の **Auth type** には、**Identity Provider: Azure AD** を選択します。これは、ODBC ドライバが Azure シングルサインオンを使用した認証に使用する認証方法です。
  + MFA設定の Azure AD シングルサインオンの **Auth type** には、**Identity Provider: Browser Azure AD** を選択します。これは、ODBC ドライバが MFA と Azure シングルサインオンを使用した認証に使用する認証方法です。
  + **[クラスター ID]** には、***your-cluster-identifier*** と入力します。
  + **[リージョン]** には、***your-cluster-region*** と入力します。
  + **[データベース]** には、***your-database-name*** と入力します。
  + **[ユーザー]** には、***your-azure-username*** と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。これは、**Auth Type** が **アイデンティティプロバイダー: Azure AD** のみに使用します。
  + **[パスワード]** には、***your-azure-password*** と入力します。これは、**Auth Type** が **アイデンティティプロバイダー: Azure AD**のみに使用します。
  + **IdP Tenant**には、***your-idp-tenant***と入力します。これは、IdP (Azure) で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。
  + **Azure Client Secret**には、***your-azure-redshift-application-client-secret***と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントの秘密です。
  + **Azure Client ID**には、***your-azure-redshift-application-client-id***と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。
  + **[Listen Port]** には、***your-listen-port*** と入力します。これは、ローカルサーバーがリッスンしているデフォルトのリッスンポートです。デフォルト値は 7890 です。これは、ブラウザ Azure AD プラグインのみに適用されます。
  + **[応答タイムアウト]** には、***the-number-of-seconds*** と入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。これは、ブラウザ Azure AD プラグインのみに適用されます。

  macOS および Linux では、次のように `odbc.ini` ファイルを編集します。
**注記**  
すべてのエントリでは、大文字と小文字は区別されません。
  + **[clusterid]** には、***your-cluster-identifier*** と入力します。これは、作成された Amazon Redshift クラスターの名前です。
  + **[リージョン]** には、***your-cluster-region*** と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。
  + **[データベース]** には、***your-database-name*** と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。
  + **[ロケール]** には、**en-us** と入力します。これは、エラーメッセージが表示される言語です。
  + **[iam]** には、**1** と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。
  + Azure AD シングルサインオン設定の **plugin\$1name** には、**AzureAD** と入力します。これにより、認証方法として Azure シングルサインオンを使用するようドライバに指定します。
  + MFA 設定の Azure AD シングルサインオンの **plugin\$1name** には、**BrowserAzureAD** と入力します。これにより、認証方法として MFA と Azure Single Sign-On を使用するようドライバに指定します。
  + **[uid]** には、***your-azure-username*** と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、**plugin\$1name** が **AzureAD** である場合にのみ使用します。
  + **[pwd]** には、***your-azure-password*** と入力します。これは、**plugin\$1name** が **AzureAD**である場合のみに使用します。
  + **[idp\$1tenant]** には、***your-idp-tenant*** と入力します。これは、IdP (Azure) で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。
  + **[client\$1secret]** には、***your-azure-redshift-application-client-secret*** と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントの秘密です。
  + **[client\$1id]** には、***your-azure-redshift-application-client-id*** と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。
  + **[listen\$1port]** には、***your-listen-port***と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザ Azure AD プラグインに適用されます。
  + **[idp\$1response\$1timeout]** には、***the-number-of-seconds*** と入力します。これは、Azure からの応答を待機する秒単位の指定された期間です。これは、ブラウザ Azure AD プラグインに適用されます。

  macOS と Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------

## トラブルシューティング
<a name="setup-identity-provider-azure-auth"></a>

ブラウザ Azure AD プラグインに関する問題のトラブルシューティングを行うには、以下を検討します。
+ ブラウザ Azure AD プラグインを使用するには、リクエストで指定される返信 URL を、アプリケーションで構成された返信 URL と一致するように設定する必要があります。Microsoft Azure ポータルの **SAML を使用したシングルサインオンのセットアップ** ページに移動します。次に、**返信 URL** が http://localhost/redshift/ に設定されていることを確認します。
+ IdP テナントエラーが発生した場合は、**IdP テナント** 名が、Microsoft Azure で Active Directory をセットアップするために最初に使用したドメイン名と一致することを確認します。

  Windows の場合、**接続の設定** の セクション **Amazon Redshift ODBC DSN セットアップ**ページに移動します。次に、IdP (Azure) で構成されている会社のテナント名が、Microsoft Azure で Active Directory をセットアップするために最初に使用したドメイン名と一致することを確認します。

  macOS と Linux では、*odbc.ini* ファイルを見つけます。次に、IdP (Azure) で構成されている会社のテナント名が、Microsoft Azure で Active Directory をセットアップするために最初に使用したドメイン名と一致することを確認します。
+ リクエストで指定された返信 URL がアプリケーションに設定されている返信 URL と一致しないというエラーが表示された場合は、**リダイレクト URI** が返信 URL と同じであることを確認します。

  Microsoft Azure ポータルでアプリケーションの **アプリ登録** ページに移動します。次に、リダイレクト URI が返信 URL と一致することを確認します。
+ 予期しない応答: 不正なエラーが表示された場合は、**モバイルとデスクトップアプリケーション** の構成が完了したことを確認します。

  Microsoft Azure ポータルでアプリケーションの **アプリ登録** ページに移動します。次に、**認証** に移動し、リダイレクト URI として http://localhost/redshift/ を使用するように **モバイルとデスクトップアプリケーション** が構成されていることを確認します。

# Ping Identity
<a name="setup-identity-provider-ping"></a>

Amazon Redshift クラスターにアクセスするには、ID プロバイダー (IdP) として Ping Identity を使用できます。このチュートリアルでは、Ping Identity を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスする方法を説明します。

## ステップ 1: Ping Identity と AWS アカウントを相互に信頼するように設定する
<a name="setup-identity-provider-ping-trust"></a>

以下の手順では、PingOne ポータルを使用して信頼関係を設定する方法を説明します。

**相互に信頼するように Ping ID と AWS アカウントを設定するには**

1. Ping Identity ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、「[クラスターの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html)」を参照してください。

1. Amazon Redshift を新しい SAML アプリケーションとして PingOne ポータルに追加します。詳細な手順については、[Ping Identity のドキュメント](https://docs.pingidentity.com/)を参照してください。

   1. **マイアプリケーション**に移動します。

   1. **アプリケーションの追加**で、**新しい SAML アプリケーション**を選択します。

   1. **アプリケーション名**には **Amazon Redshift**と入力します。

   1. **プロトコルバージョン**には、**SAML v2.0**を選択します。

   1. **カテゴリ**には、***your-application-category***を選択します。

   1. **Assertion Consumer Service (ACS)**には、***your-redshift-local-host-url***と入力します。これは、SAML アサーションがリダイレクトするローカルホストとポートです。

   1. **エンティティ ID**には、`urn:amazon:webservices`と入力します。

   1. **[署名]** には、**[アサーションに署名]** を選択します。

   1. **SSO 属性マッピング** セクションで、次の表に示すように要求を作成します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/setup-identity-provider-ping.html)

1. **グループアクセス**で、必要に応じて次のグループアクセスを設定します。
   + **https://aws.amazon.com/SAML/Attributes/Role**
   + **https://aws.amazon.com/SAML/Attributes/RoleSessionName**
   + **https://redshift.amazon.com/SAML/Attributes/AutoCreate**
   + **https://redshift.amazon.com/SAML/Attributes/DbUser**

1. セットアップを確認し、必要に応じて変更を加えます。

1. ブラウザ SAML プラグインのログイン URL として **Single Sign-On (SSO) 用 URL の初期化** を使用します。

1. IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Ping Identity のセットアップ時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ID プロバイダーを作成および管理する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console)」を参照してください。

1. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、「IAM ユーザーガイド」**の「[SAML 用のロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)」を参照してください。

1. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」を参照してください。Azure AD の例については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。

## ステップ 2: Ping Identity への認証用に JDBC または ODBC を設定する
<a name="setup-identity-provider-ping-auth"></a>

------
#### [ JDBC ]

**Ping Identity への認証用に JDBC を設定するには**
+ Ping Identity シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを設定します。

  JDBC ドライバーを使用する任意のクライアントを使用して Ping Identity シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、「[Amazon Redshift での JDBC ドライバーバージョン 2.x による接続の構成](jdbc20-install.md)」を参照してください。

  たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。

  1. [**Select Connection Profile**] ページで、[**Profile Group**] を追加します (例: **Ping**)。

  1. **[接続プロファイル]** に、***your-connection-profile-name*** と入力します (例: **Ping**)。

  1. [**Manage Drivers (ドライバーの管理)]** を選択し、[**Amazon Redshift**] を選択します。**[フォルダを開く]** アイコン、**[ライブラリ]** を選択し、適切な JDBC .jar ファイルを選択します。

  1. **接続プロファイルの選択**ページで、次のように接続プロファイルに情報を追加します。
     + **ユーザー**に、PingOne ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している PingOne アカウントのユーザー名です。
     + **パスワード**に、PingOne のパスワードを入力します。
     + **[ドライバ]** では、**[Amazon Redshift (com.amazon.redshift.jdbc.Driver)]** を選択します。
     + **[URL]** には、**jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name*** と入力します。

  1. **[拡張プロパティ]** を選択し、次のいずれかの操作を行います。
     + **[login\$1url]** には、***your-ping-sso-login-url*** と入力します。この値は、ログインするための認証としてシングルサインオンを使用する URL を指定します。
     + Ping Identity の場合は、**plugin\$1name**に **com.amazon.redshift.plugin.PingCredentialsProvider**と入力します。この値は、認証方法として Ping Identity シングルサインオンを使用するドライバーに指定します。
     + シングルサインオンを使用した Ping Identity の場合は、**plugin\$1name**に **com.amazon.redshift.plugin.BrowserSamlCredentialsProvider** と入力します。この値は、シングルサインオンを使用した Ping Identity PingOneを認証方法として使用するようにドライバーに指定します。

------
#### [ ODBC ]

**Ping Identity への認証用に ODBC を設定するには**
+ Ping Identity PingOne シングルサインオンを使用して ODBC 経由でクラスターに接続するように、データベースクライアントを設定します。

  Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。

  Windows の場合、**Amazon Redshift ODBC ドライバ DSN セットアップ** ページの **[接続設定]** で、次の情報を入力します。
  + **[データソース名]** には、***your-DSN*** と入力します。ODBC プロファイル名として使用するデータソース名を指定します。
  + **Auth type**で、以下のいずれかを実行します。
    + Ping Identity の設定で、**アイデンティティプロバイダー: Ping Federate**を選択します。これは、ODBC ドライバが Ping Identity シングルサインオンを使用して認証するために使用する認証方法です。
    + MFA を使用した Ping Identity PingOne シングルサインオンの設定で、**[Identity Provider: Browser SAML]** (ID プロバイダー: ブラウザ SAML) を選択します。これは、ODBC ドライバーがシングルサインオンを使用した Ping Identity で認証するために使用する認証方法です。
  + **[クラスター ID]** には、***your-cluster-identifier*** と入力します。
  + **[リージョン]** には、***your-cluster-region*** と入力します。
  + **[データベース]** には、***your-database-name*** と入力します。
  + **[ユーザー]** には、***your-ping-username*** と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの PingOne アカウントのユーザー名です。これは、**Auth type** が **アイデンティティプロバイダー: PingFederate** である場合にのみ使用します。
  + **[パスワード]** には、***your-ping-password*** と入力します。これは、**Auth type** が **アイデンティティプロバイダー: PingFederate**である場合にのみ使用します。
  + **[Listen Port]** には、***your-listen-port*** と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。
  +  **[応答タイムアウト]** には、***the-number-of-seconds*** と入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。これは、ブラウザの SAML プラグインにのみ適用されます。
  + **ログイン URL**には、***your-login-url***と入力します。これは、ブラウザの SAML プラグインにのみ適用されます。

  macOS および Linux では、次のように `odbc.ini` ファイルを編集します。
**注記**  
すべてのエントリでは、大文字と小文字は区別されません。
  + **[clusterid]** には、***your-cluster-identifier*** と入力します。これは、作成された Amazon Redshift クラスターの名前です。
  + **[リージョン]** には、***your-cluster-region*** と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。
  + **[データベース]** には、***your-database-name*** と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。
  + **[ロケール]** には、**en-us** と入力します。これは、エラーメッセージが表示される言語です。
  + **[iam]** には、**1** と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。
  + [**plugin\$1name**] には、次のいずれかの操作を行います。
    + Ping Identity 設定の場合は、**BrowserSAML**を入力します。これは、ODBC ドライバが Ping Identity に対して認証するために使用する認証方法です。
    + シングルサインオン設定を使用した Ping Identity の場合は、**Ping** と入力します。これは、ODBC ドライバーがシングルサインオンを使用した Ping Identity で認証するために使用する認証方法です。
  + **[uid]** には、***your-ping-username*** と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、**plugin\$1name** が **Ping** である場合にのみ使用します。
  + **[pwd]** には、***your-ping-password*** と入力します。これは、**plugin\$1name** が **Ping**である場合にのみ使用します。
  + **[login\$1url]** には、***your-login-url*** と入力します。これは、SAML 応答を返すシングルサインオンの開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。
  + **[idp\$1response\$1timeout]** には、***the-number-of-seconds*** と入力します。これは、PingOne Identity からの応答を待機する秒単位の指定された期間です。これは、ブラウザの SAML プラグインにのみ適用されます。
  + **[listen\$1port]** には、***your-listen-port***と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。

  macOS および Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------

# Okta
<a name="setup-identity-provider-okta"></a>

Okta を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスできます。このチュートリアルでは、Okta を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスする方法を説明します。

## ステップ 1: Okta と AWS アカウントを相互に信頼するように設定する
<a name="setup-identity-provider-okta-trust"></a>

以下の手順では、信頼関係を設定する方法を説明します。

**相互に信頼するように Okta と AWS アカウントを設定するには**

1. Okta ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、「[クラスターの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html)」を参照してください。

1. Okta ポータルに新しいアプリケーションとして Amazon Redshift を追加します。詳細な手順については、[Okta のドキュメント](https://developer.okta.com/docs/)を参照してください。
   + **アプリケーションの追加**を選択します。
   + **アプリケーションの追加**で、**新しいアプリの作成**を選択します。
   + **新規追加のアプリケーション統合の作成** ページの **プラットフォーム**で、**ウェブ**を選択します。
   + **サインオンメソッド**で、**SAML v2.0**を選択します。
   + **一般設定** ページで、**アプリ名**に ***your-redshift-saml-sso-name***と入力します。これは、アプリケーションの名前です。
   + **SAML 設定** ページの **シングルサインオンの URL**に ***your-redshift-local-host-url***と入力します。これは、SAML アサーションがリダイレクトするローカルホストとポート (例: `http://localhost:7890/redshift/`) です。

1. **シングルサインオン URL** 値を **受取人URL** と **送信先 URL**として使用します。

1. **[署名]** には、**[アサーションに署名]** を選択します。

1. **対象 URI (SP エンティティ ID)**に、次の表に示すように、クレームに対して **urn:amazon:webservices** を入力します。

1. **[高度な設定]** セクションの **[SAML 発行者 ID]** に、**[セットアップ手順を表示]** セクションに表示されている ***your-Identity-Provider-Issuer-ID*** を入力します。

1. **属性ステートメント** セクションで、次の表に示すようにクレームを作成します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/setup-identity-provider-okta.html)

1. **App Embed Link** セクションで、ブラウザ SAML プラグインのログイン URL として使用できる URL を見つけます。

1. IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Okta の設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ID プロバイダーを作成および管理する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console)」を参照してください。

1. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、「IAM ユーザーガイド」**の「[SAML 用のロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)」を参照してください。

1. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、「IAM ユーザーガイド」**の「[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」を参照してください。Azure AD の例については、「[JDBC または ODBC シングルサインオン認証の設定](setup-azure-ad-identity-provider.md)」を参照してください。

## ステップ 2: Okta への認証用に JDBC または ODBC を設定する
<a name="setup-identity-provider-okta-auth"></a>

------
#### [ JDBC ]

**Okta への認証用に JDBC を設定するには**
+ Okta シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  JDBC ドライバーを使用する任意のクライアントを使用して Okta シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、「[Amazon Redshift での JDBC ドライバーバージョン 2.x による接続の構成](jdbc20-install.md)」を参照してください。

  たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。

  1. [**Select Connection Profile**] ページで、[**Profile Group**] を追加します (例: **Okta**)。

  1. **[接続プロファイル]** に、***your-connection-profile-name*** と入力します (例: **Okta**)。

  1. [**Manage Drivers (ドライバーの管理)]** を選択し、[**Amazon Redshift**] を選択します。**[フォルダを開く]** アイコン、**[ライブラリ]** を選択し、適切な JDBC .jar ファイルを選択します。

  1. **接続プロファイルの選択**ページで、次のように接続プロファイルに情報を追加します。
     + **ユーザー**には、Okta ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。
     + **パスワード**には、Okta パスワードを入力します。
     + **[ドライバ]** では、**[Amazon Redshift (com.amazon.redshift.jdbc.Driver)]** を選択します。
     + **[URL]** には、**jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name*** と入力します。

  1. **[拡張プロパティ]** を選択し、次のいずれかの操作を行います。
     + **[login\$1url]** には、***your-okta-sso-login-url*** と入力します。この値は、Okta にログインするための認証としてシングルサインオンを使用する URL を指定します。
     + Okta シングルサインオンの場合は、**plugin\$1name** に **com.amazon.redshift.plugin.OktaCredentialsProvider** と入力します。この値は、認証方法として Okta シングルサインオンを使用するドライバーに指定します。
     + MFA を使用した Okta シングルサインオンの場合は、**plugin\$1name**に **com.amazon.redshift.plugin.BrowserSamlCredentialsProvider**と入力します。これにより、認証方法として MFA での Okta シングルサインオンを使用するようドライバーに指定します。

------
#### [ ODBC ]

**Okta への認証用に ODBC を設定するには**
+ Okta シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

  Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。

  Windows の場合、**Amazon Redshift ODBC ドライバ DSN セットアップ** ページの **[接続設定]** で、次の情報を入力します。
  + **[データソース名]** には、***your-DSN*** と入力します。ODBC プロファイル名として使用するデータソース名を指定します。
  + **Auth type** で、以下のいずれかを実行します。
    + Okta シングルサインオン設定の場合は、**Identity Provider: Okta** を選択します。これは、ODBC ドライバーが ODBC シングルサインオンを使用した認証に使用する認証方法です。
    + MFA 設定を使用した Okta シングルサインオンの場合は、**Identity Provider: Browser SAML** を選択します。これは、ODBC ドライバーが MFA での Okta シングルサインオンを使用した認証に使用する認証方法です。
  + **クラスター ID** には、***your-cluster-identifier*** と入力します。
  + **[リージョン]** には、***your-cluster-region*** と入力します。
  + **[データベース]** には、***your-database-name*** と入力します。
  + **[ユーザー]** には、***your-okta-username*** と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Okta アカウントのユーザー名です。[**Auth type**] が **Identity Provider: Okta** である場合にのみ使用します。
  + **[パスワード]** には、***your-okta-password*** と入力します。[**Auth type**] が **Identity Provider: Okta** である場合にのみ使用します。

  macOS と Linux では、次のように `odbc.ini` ファイルを編集します。
**注記**  
すべてのエントリでは、大文字と小文字は区別されません。
  + **[clusterid]** には、***your-cluster-identifier*** と入力します。これは、作成された Amazon Redshift クラスターの名前です。
  + **[リージョン]** には、***your-cluster-region*** と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。
  + **[データベース]** には、***your-database-name*** と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。
  + **[ロケール]** には、**en-us** と入力します。これは、エラーメッセージが表示される言語です。
  + **[iam]** には、**1** と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。
  + **plugin\$1name** には、次のいずれかの操作を行います。
    + MFA 設定を使用した Okta シングルサインオンの場合は、**BrowserSAML** と入力します。これは、ODBC ドライバーが MFA での Azure シングルサインオンを使用した認証に使用する認証方法です。
    + Okta シングルサインオン設定の場合は、**Okta** と入力します。これは、ODBC ドライバーが ODBC シングルサインオンを使用した認証に使用する認証方法です。
  + **[uid]** には、***your-okta-username*** と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。これは、[**plugin\$1name**] が **Okta**である場合にのみ使用します。
  + **[pwd]** には、***your-okta-password*** と入力します。これは、[**plugin\$1name**] が **Okta**である場合にのみ使用します。
  + **[login\$1url]** には、***your-login-url*** と入力します。これは、SAML 応答を返すシングルサインオンの開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。
  + **[idp\$1response\$1timeout]** には、***the-number-of-seconds*** と入力します。これは、PingOne からの応答を待機する秒単位の指定された時間です。これは、ブラウザの SAML プラグインにのみ適用されます。
  + **[listen\$1port]** には、***your-listen-port***と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。

  macOS および Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------