

 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 つのプロファイルのある \~/.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 のオプションを示します。


|  オプション  | 説明 | 
| --- | --- | 
| `Iam` | ODBC 接続文字列内でのみ使用できます。IAM 認証を使用するには、1 に設定します。 | 
| `AccessKeyID`<br />`SecretAccessKey`<br />`SessionToken` | IAM データベース認証用に設定された IAM ロールまたはユーザーのアクセスキー ID とシークレットアクセスキー。SessionToken は、一時的な認証情報を持つ IAM ロールにのみ必要です。ユーザーには SessionToken を使用しません。詳細については、[ Temporary Security Credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)を参照してください。 | 
| plugin\_name | 認証情報プロバイダーを実装する完全修飾クラス名。Amazon Redshift JDBC ドライバーには SAML ベースの認証情報プロバイダープラグインが含まれます。plugin\_nameを提供する場合は、他の関連オプションも提供できます。詳細については、「[認証情報プロバイダープラグイン](#using-credentials-provider-plugin)」を参照してください。 | 
| `Profile`  | JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。詳細については、「[設定プロファイルを使用する](#using-configuration-profile)」を参照してください。 | 

## データベースユーザー認証情報を作成するための 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)で参照できます。

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


|  オプション  | 説明 | 
| --- | --- | 
| DbUser | データベースユーザーの名前。DbUser というユーザーがデータベースに存在する場合、一時的ユーザー認証情報のアクセス許可は、既存のユーザーと同じになります。DbUser がデータベースに存在せず、AutoCreate が true の場合、DbUser という名前の新しいユーザーが作成されます。必要に応じて、既存ユーザーのパスワードを無効にします。詳細については、[ALTER\_USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html)を参照してください。 | 
| AutoCreate | DbUser に指定した名前でデータベースユーザーを作成するには (存在しない場合)、`true` を指定します。デフォルト: false。 | 
| DbGroups | データベースユーザーが現在のセッションで参加する 1 つまたは複数の既存データベースグループの名前のカンマ区切りリスト。デフォルトでは、新しいユーザーは PUBLIC のみに追加されます。 | 

## 認証情報プロバイダープラグイン
<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\_id などの設定プロパティを使用して生成されます。

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` が指定されていない場合、ほかのオプションは無視されます。


|  オプション  | 説明 | 
| --- | --- | 
| plugin\_name | JDBC の場合、認証情報プロバイダを実装するクラス名。次のいずれかを指定します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/options-for-providing-iam-credentials.html)<br />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) | 
| idp\_host  | 企業アイデンティティプロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。Okta ID プロバイダーの場合、idp\_host の値は .okta.comで終わる必要があります。 | 
| `idp_port`  | アイデンティティプロバイダーが使用するポート。デフォルトは 443 です。ポートは Okta に対して無視されます。 | 
| `preferred_role`  | SAML アサーションの AttributeValue 属性の Role 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「[ステップ 2: IdP の SAML アサーションを設定する](generating-iam-credentials-steps.md#configuring-saml-assertions)」を参照してください。 | 
| `user`  | 該当する場合はドメインを含む、社内ユーザー名。たとえば、Active Directory の場合、必要なドメイン名の形式は domain\\usernameです。 | 
| password   | 社内ユーザーのパスワード。このオプションを使用しないことをお勧めします。代わりに、SQL クライアントを使用してパスワードを指定します。 | 
| `app_id`  | Okta アプリケーションの ID。Okta でのみ使用します。app\_id の値は、Okta アプリケーションの埋め込みリンクの amazon\_aws に続きます。IdP 管理者と連携して、この値を取得します。以下に、アプリケーション埋め込みリンクの例を示します。:-https://example.okta.com/home/amazon\_aws/0oa2hylwrpM8UGehd1t7/272  | 
| `idp_tenant` | Azure AD で使用されるテナント。Azure でのみ使用します。 | 
| `client_id`  | Azure AD の Amazon Redshift エンタープライズアプリケーションのクライアント ID。Azure でのみ使用します。 | 