IAM 認証情報の提供オプション - Amazon Redshift

IAM 認証情報の提供オプション

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

  • AWS プロファイル

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

  • IAM 認証情報

    JDBC または ODBC 設定の形式で、AccessKeyID、SecretAccessKey、および必要に応じて SessionToken の値を指定します。SessionToken は、一時的認証情報を持つ IAM ロールにのみ必要です。詳細については、 IAM 認証情報を提供するための JDBC および ODBC のオプションを参照してください。

  • アイデンティティプロバイダーフェデレーション

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

    Amazon Redshift JDBC および ODBC ドライバーには、次の SAML ベースの ID フェデレーション認証情報プロバイダーのプラグインが含まれます。

    • Microsoft Active Directory Federation Services (AD FS)

    • PingOne

    • Okta

    • Microsoft Azure Active Directory (Azure AD)

    JDBC または ODBC 設定の形式、またはプロファイルを使用して、プラグイン名前と関連する値を指定できます。詳細については、 JDBC ドライバーオプションの設定 および ODBC ドライバーオプションの設定 を参照してください。

詳細については、 IAM 認証情報を使用するように JDBC または ODBC 接続を設定するを参照してください。

設定プロファイルを使用する

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

Amazon Redshift JDBC ドライバーまたは ODBC ドライバーに含まれる SAML ベースの認証情報プロバイダプラグインの場合は、前述の 認証情報プロバイダープラグインの使用で説明した設定を使用できます。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 ユーザーガイド名前付きプロファイル を参照してください。

JDBC ドライバーのプロファイルの使用方法の詳細については、 Amazon Redshift JDBC ドライバーのインストールおよび設定ガイドを参照してください。

ODBC ドライバーのプロファイルの使用方法の詳細については、 Amazon Redshift ODBC ドライバーのインストールおよび設定ガイドを参照してください。

IAM 認証情報を提供するための JDBC および ODBC のオプション

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

オプション

説明

Iam

ODBC 接続文字列内でのみ使用できます。IAM 認証を使用するには、1 に設定します。

AccessKeyID

SecretAccessKey

SessionToken

IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー ID とシークレットアクセスキー。 SessionToken は、一時的な認証情報を持つ IAM ロールにのみ必要です。SessionToken は IAM ユーザーに対しては使用されません。詳細については、 Temporary Security Credentialsを参照してください。
plugin_name 認証情報プロバイダーを実装する完全修飾クラス名。Amazon Redshift JDBC ドライバーには SAML ベースの認証情報プロバイダープラグインが含まれます。plugin_nameを提供する場合は、他の関連オプションも提供できます。詳細については、 認証情報プロバイダープラグインの使用を参照してください。

Profile

JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。詳細については、 設定プロファイルを使用するを参照してください。

認証情報プロバイダープラグインの使用

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

SSO 認証をサポートするために、Amazon Redshift は Microsoft Azure Active Directory 用の Azure AD プラグインを提供します。このプラグインの設定方法については、 Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。

多要素認証のセットアップ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以下のセクションを参照してください。

プラグインオプションの設定

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

オプション

説明
plugin_name

JDBC の場合、認証情報プロバイダを実装するクラス名。次のいずれかを指定します。

  • Active Directory Federation Services の場合

    com.amazon.redshift.plugin.AdfsCredentialsProvider
  • Okta の場合

    com.amazon.redshift.plugin.OktaCredentialsProvider
  • PingFederate の場合

    com.amazon.redshift.plugin.PingCredentialsProvider
  • Microsoft Azure Active Directory (Azure AD) の場合

    com.amazon.redshift.plugin.AzureCredentialsProvider
  • SAML MFA の場合

    com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
  • MFA を使用した Microsoft Azure Active Directory SSO の場合

    com.amazon.redshift.plugin.BrowserAzureCredentialsProvider

ODBC の場合、次のいずれかを指定します。

  • Active Directory Federation Services の場合: adfs

  • Okta の場合: okta

  • PingFederate の場合: ping

  • Microsoft Azure Active Directory の場合: azure

  • SAML MFA の場合: browser saml

  • MFA を使用した Microsoft Azure Active Directory SSO の場合: browser azure ad

idp_host 企業アイデンティティプロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。Okta ID プロバイダーの場合、 idp_host の値は .okta.comで終わる必要があります。

idp_port

アイデンティティプロバイダーが使用するポート。デフォルトは 443 です。ポートは Okta に対して無視されます。

preferred_role

SAML アサーションの AttributeValue 属性の Role 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、 IdP の SAML アサーションを設定するを参照してください。

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 でのみ使用します。

Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定

Amazon Redshift クラスターにアクセスするためのアイデンティティプロバイダー (IdP) として Microsoft の Azure AD を使用できます。次に、この目的のために信頼関係を設定する方法を説明する手順を示します。AWS を IdP のサービスプロバイダーとして設定する方法については、 IAM ユーザーガイド証明書利用者の信頼とクレームの追加によって SAML 2.0 IdP を設定する を参照してください。

注記

JDBC で Azure AD を使用するには、Amazon Redshift JDBC ドライバーがバージョン 1.2.37.1061 以降である必要があります。ODBC で Azure AD を使用するには、Amazon Redshift ODBC ドライバーがバージョン 1.4.10.1000 以降である必要があります。

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

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

  1. Azure AD ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、 クラスターの作成を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

    名前DbUser と入力します。

    Namespacehttps://redshift.amazon.com/SAML/Attributes. と入力します。

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

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

  14. + 新しいクレームの追加 を選択して、AutoCreate のクレームを追加します。

    名前AutoCreate と入力します。

    Namespacehttps://redshift.amazon.com/SAML/Attributes. と入力します。

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

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

    ここでは、 123456789012 は AWS アカウント AzureSSO は作成した IAM ロール、 AzureADProvider は IAM プロバイダーです。

    クレーム名

    一意のユーザー識別子(名前 ID)

    user.userprincipalname

    https://aws.amazon.com/SAML/Attributes/SessionDuration

    "900"

    https://aws.amazon.com/SAML/Attributes/Role

    arn:aws:iam::123456789012:role/AzureSSO,arn:aws:iam::123456789012:saml-provider/AzureADProvider

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    user.userprincipalname

    https://redshift.amazon.com/SAML/Attributes/AutoCreate

    "true"

    https://redshift.amazon.com/SAML/Attributes/DbGroups

    user.assignedroles

    https://redshift.amazon.com/SAML/Attributes/DbUser

    user.userprincipalname

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

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

  17. IAM コンソールで、IAM SAMLアイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細なステップついては IAM ユーザーガイドIAMアイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。

  18. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、 IAM ユーザーガイドSAML 用のロールの作成 を参照してください。

  19. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールに添付できる IAM ポリシーを作成します。詳細なステップについては、 IAM ユーザーガイドIAM ポリシーの作成 (コンソール) を参照してください。

    環境に合わせて次のポリシー (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 を参照してください。

      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 を呼び出して、ユーザーが引き受けることができるロールを確認することもできます。

Microsoft Azure AD への認証用に JDBC を設定するには

  • Azure AD シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

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

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

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

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

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

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

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

    4. 接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。

      • ユーザーには、 マイクロソフトの Azure ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。

      • パスワードには、 マイクロソフトの Azure のパスワードを入力します。

      • ドライバには、Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。

      • URLには、 jdbc:redshift:iam//your-cluster-identifier:your-cluster-region/your-database-nameと入力します。

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

      Azure AD SSO 設定の場合は、次のように追加情報を追加します。

      • plugin_nameには、 com.amazon.redshift.plugin.AzureCredentialsProviderと入力します。この値は、認証方法として Azure Single Sign-On を使用するドライバーに指定します。

      • idp_tenantには、 your-idp-tenantと入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。

      • client_secretには、 your-azure-redshift-application-client-secretを入力します。Microsoft Azure AD のみに使用されます。これは、Azure Single Sign-On 設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントシークレットです。これは、ccom.amazon.redshift.plugin.AzureCredentialsProvider プラグインにのみ適用されます。

      • client_idには、 your-azure-redshift-application-client-idと入力します。Microsoft Azure AD のみに使用されます。これは、Azure Single Sign-On 設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。

      MFA 設置を使用した Azure AD SSO の場合は、次のように接続プロパティに情報を追加します。

      • plugin_nameには、 com.amazon.redshift.plugin.BrowserAzureCredentialsProviderと入力します。この値は、認証方法として MFA を使用した Azure AD SSO を使用するドライバに指定します。

      • idp_tenantには、 your-idp-tenantと入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。

      • client_idには、 your-azure-redshift-application-client-idと入力します。Microsoft Azure AD のみに使用されます。これは、MFA 設定を使用した Azure SSO 設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。

      • listen_portには、 your-listen-portと入力します。これは、ローカルサーバーがリスニングしているポートです。デフォルト値は 7890 です。

      • idp_response_timeoutには、 the-number-of-secondsを入力します。IdP サーバーが応答を返送するときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。

Microsoft Azure AD への認証用に ODBC を設定するには

  • Azure AD シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。

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

    また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。

    Windows の場合、 Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。

    • データソース名には、 your-DSNを入力します。ODBC プロファイル名として使用するデータソース名を指定します。

    • Azure AD SSO 設定の Auth type で、 Identity Provider: Azure ADを選択します。これは、ODBC ドライバが Azure シングルサインオンを使用した認証に使用する認証方法です。

    • MFA 設定を使用した Azure AD SSO の 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 クラスター上でアクセスしようとしているデータベースの名前です。

    • localeには、 en-usと入力します。これは、エラーメッセージが表示される言語です。

    • iamには、 1と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。

    • Azure AD SSO 設定の plugin_name には、 AzureADと入力します。これにより、認証方法として Azure シングルサインオンを使用するようドライバに指定します。

    • MFA 設定を使用した Azure AD SSO の plugin_name には、 BrowserAzureADと入力します。これにより、認証方法として MFA と Azure Single Sign-On を使用するようドライバに指定します。

    • uidには、 your-azure-usernameと入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、 plugin_nameAzureADである場合にのみ使用します。

    • pwdには、 your-azure-passwordと入力します。これは、 plugin_nameAzureADである場合のみに使用します。

    • idp_tenantには、 your-idp-tenantと入力します。これは、IdP (Azure) で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。

    • client_secretには、 your-azure-redshift-application-client-secretを入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントの秘密です。

    • client_idには、 your-azure-redshift-application-client-idと入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。

    • listen_portには、 your-listen-portと入力します。これは、ローカルサーバーがリスニングしているポートです。デフォルト値は 7890 です。これは、ブラウザ Azure AD プラグインに適用されます。

    • idp_response_timeoutには、 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

ブラウザ Azure AD プラグインに関する問題のトラブルシューティングを行うには

  1. ブラウザ Azure AD プラグインを使用するには、リクエストで指定される返信 URL を、アプリケーションで構成された返信 URL と一致するように設定する必要があります。

    Microsoft Azure ポータルの SAML を使用したシングルサインオンのセットアップ ページに移動します。次に、 返信 URL が http://localhost/redshift/ に設定されていることを確認します。

  2. 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 をセットアップするために最初に使用したドメイン名と一致することを確認します。

  3. リクエストで指定された返信 URL がアプリケーションに設定されている返信 URL と一致しないというエラーが表示された場合は、 リダイレクト URI が返信 URL と同じであることを確認します。

    Microsoft Azure ポータルでアプリケーションの アプリ登録 ページに移動します。次に、リダイレクト URI が返信 URL と一致することを確認します。

  4. 予期しない応答: 不正なエラーが表示された場合は、モバイルとデスクトップアプリケーション の構成が完了したことを確認します。

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

AD FS を使用した JDBC または ODBC シングルサインオン認証の設定

AD FS を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスできます。次に、この目的のために信頼関係を設定する方法を説明する手順を示します。AWS を AD FS のサービスプロバイダーとして設定する方法については、 IAM ユーザーガイド証明書利用者の信頼およびクレームの追加によって SAML 2.0 IdP を設定する を参照してください。

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

  1. AD FS ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、 クラスターの作成を参照してください。

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

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

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

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

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

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

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

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

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

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

    10. クレームルールテンプレートで、 受信クレームの変換を選択し、 ルールの編集 – NameIdページで、次の操作を行います。

      • クレームルール名NameIdを入力します。

      • 受信クレーム名で、 Windows アカウント名を選択します。

      • 発信クレーム名で、 名前 IDを選択します。

      • 発信者名 ID フォームで、 永続的識別子を選択します。

      • すべてのクレーム値を通過を選択します。

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

    12. ルールの設定 ページで、次の手順を実行します。

      • クレームルール名に、 RoleSessionNameと入力します。

      • 属性を保存するアクティブディレクトリを選択します。

      • LDAP 属性E-Mail-Addressesを選択します。

      • 送信クレームタイプhttps://aws.amazon.com/SAML/Attributes/RoleSessionNameを選択します。

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

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

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

      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);
    16. クレームルールの編集 ページで、 ルールの追加を選択します。ルールテンプレートの選択 ページの クレームルールテンプレートで、 カスタムルールによるクレーム送信を選択します。

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

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

      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 です。

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

  4. IAM コンソールで、IAM SAML ID プロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、 IAM ユーザーガイドIAM ID プロバイダー (コンソール) の作成と管理 を参照してください。

  5. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細な手順については、 IAM ユーザーガイドSAML 用のロールの作成 を参照してください。

  6. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールに添付できる IAM ポリシーを作成します。詳細な手順については、 IAM ユーザーガイドIAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、 Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。

AD FS への認証用に JDBC を設定するには

  • AD FS SSO を使用して JDBC 経由でクラスターに接続するように、データベースクライアントを設定します。

    JDBC ドライバーを使用する任意のクライアントを使用し AD FS SSO を使用して接続、または Java などの言語を使用しスクリプトを使用して接続することもできます。インストールと設定の詳細については、 JDBC ドライバーのバージョン 1.0 接続の構成を参照してください。

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

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

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

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

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

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

    4. 接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。

      • ユーザーには、AD FS ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているアカウントのユーザー名です。

      • パスワードには、AD FS パスワードを入力します。

      • ドライバでは、 Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。

      • URLには、jdbc:redshift:iam//your-cluster-identifier:your-cluster-region/your-database-nameと入力します。

    5. 拡張プロパティを選択します。plugin_nameには、 com.amazon.redshift.plugin.AdfsCredentialsProviderと入力します。この値は、AD FS SSO を認証方法として使用するようにドライバに指定します。

AD FS への認証用に ODBC を設定するには

  • AD FS SSO を使用して ODBC 経由でクラスターに接続するように、データベースクライアントを設定します。

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

    また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。

    Windows の場合、 Amazon Redshift ODBC ドライバー DSN セットアップ ページの 接続設定で、次の情報を入力します。

    • データソース名には、 your-DSNを入力します。ODBC プロファイル名として使用するデータソース名を指定します。

    • Auth typeアイデンティティプロバイダー: SAMLを選択します。これは、ODBC ドライバが AD FS SSO を使用した認証に使用する認証方法です。

    • クラスター IDには、 your-cluster-identifierと入力します。

    • リージョンには、 your-cluster-regionと入力します。

    • データベースには、 your-database-nameと入力します。

    • ユーザーには、 your-adfs-usernameと入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している AD FS アカウントのユーザー名です。Auth typeID プロバイダー: SAMLである場合にのみ使用します。

    • パスワードには、 your-adfs-passwordと入力します。Auth typeID プロバイダー: SAMLである場合にのみ使用します。

    macOS と Linux では、次のように odbc.ini ファイルを編集します。

    注記

    すべてのエントリでは、大文字と小文字は区別されません。

    • clusteridには、 your-cluster-identifierと入力します。これは、作成された Amazon Redshift クラスターの名前です。

    • リージョンには、 your-cluster-regionと入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。

    • データベースには、 your-database-nameと入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。

    • localeには、 en-usと入力します。これは、エラーメッセージが表示される言語です。

    • iamには、 1と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。

    • plugin_nameには、次のいずれかの操作を行います。

      • MFA 設定を使用した AD FS SSO の場合は、 BrowserSAMLを入力します。これは、ODBC ドライバが AD FS への認証に使用する認証方法です。

      • AD FS SSO 設定の場合は、 ADFSを入力します。これは、ODBC ドライバが Azure AD SSO を使用した認証に使用する認証方法です。

    • uidには、 your-adfs-usernameと入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、SSO に使用しているMicrosoft Azure アカウントのユーザー名です。これは、 plugin_nameADFSである場合にのみ使用します。

    • pwdには、 your-adfs-passwordと入力します。これは、 plugin_nameADFSである場合にのみ使用します。

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

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini

Ping Identity を使用した JDBC または ODBC シングルサインオン認証の設定

Amazon Redshift クラスターにアクセスするには、ID プロバイダー (IdP) として Ping Identity を使用できます。次に、この目的のために信頼関係を設定する方法を説明する手順を示します。AWS を Ping ID のサービスプロバイダーとして設定する方法については、 IAM ユーザーガイド証明書利用者信頼とクレームの追加によって SAML 2.0 IdP を設定する を参照してください。

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

  1. Ping Identity ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、 クラスターの作成を参照してください。

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

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

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

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

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

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

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

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

    8. 署名には、 アサーションに署名を選択します。

    9. SSO 属性マッピング セクションで、次の表に示すように要求を作成します。

      アプリケーション属性 リテラル値の ID ブリッジ属性

      https://aws.amazon.com/SAML/Attributes/Role

      arn:aws:iam::123456789012:role/Ping,arn:aws:iam::123456789012:saml-provider/PingProvider

      https://aws.amazon.com/SAML/Attributes/RoleSessionName

      email

      https://redshift.amazon.com/SAML/Attributes/AutoCreate

      "true"

      https://redshift.amazon.com/SAML/Attributes/DbUser

      email

      https://redshift.amazon.com/SAML/Attributes/DbGroups

      「DbGroups」属性のグループには、@directory プレフィックスが含まれています。これを削除するには、 ID ブリッジで、 memberOfと入力します。関数で、 ExtractByRegularExpressionを選択します。(.*)[\@](?:.*)と入力します。

  3. グループアクセスで、必要に応じて次のグループアクセスを設定します。

    • 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

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

  5. ブラウザ SAML プラグインのログイン URL として シングルサインオン (SSO) 用 URL の初期化 を使用します。

  6. IAM コンソールで、IAM SAMLアイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Ping Identity のセットアップ時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、 IAM ユーザーガイドIAMアイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。

  7. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細な手順については、 IAM ユーザーガイドSAML 用のロールの作成 を参照してください。

  8. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールに添付できる IAM ポリシーを作成します。詳細な手順については、 IAM ユーザーガイドIAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、 Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。

Ping Identity への認証用に JDBC を設定するには

  • Ping Identity SSO を使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを設定します。

    JDBC ドライバを使用する任意のクライアントを使用して Ping Identity SSO を使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールと設定の詳細については、 JDBC ドライバーのバージョン 1.0 接続の構成を参照してください。

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

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

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

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

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

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

    4. 接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。

      • ユーザーに、PingOne ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している PingOne アカウントのユーザー名です。

      • パスワードに、PingOne のパスワードを入力します。

      • ドライバには、 Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。

      • URLには、jdbc:redshift:iam//your-cluster-identifier:your-cluster-region/your-database-nameと入力します。

    5. 拡張プロパティ を選択し、次のいずれかの操作を行います。

      • login_urlには、 your-ping-sso-login-urlと入力します。この値は、ログインするための認証として SSO を使用する URL を指定します。

      • Ping Identity の場合は、 plugin_namecom.amazon.redshift.plugin.PingCredentialsProviderと入力します。この値は、Ping Identity SSO を認証方法として使用するようにドライバに指定します。

      • Ping Identity with SSO の場合は、 plugin_namecom.amazon.redshift.plugin.BrowserSamlCredentialsProviderと入力します。この値は、Ping Identity PingOne with SSO を認証方法として使用するようにドライバに指定します。

Ping Identity への認証用に ODBC を設定するには

  • Ping Identity PingOne SSO を使用して ODBC 経由でクラスターに接続するように、データベースクライアントを設定します。

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

    また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。

    Windows の場合、 Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。

    • データソース名には、 your-DSNを入力します。ODBC プロファイル名として使用するデータソース名を指定します。

    • Auth typeで、以下のいずれかを実行します。

      • Ping Identity の設定で、 アイデンティティプロバイダー: Ping Federateを選択します。これは、ODBC ドライバが Ping Identity SSO を使用して認証するために使用する認証方法です。

      • Ping Identity with SSO の設定で、 アイデンティティプロバイダー: ブラウザ SAMLを選択します。これは、ODBC ドライバが Ping Identity with SSO を使用して認証するために使用する認証方法です。

    • クラスター 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 クラスター上でアクセスしようとしているデータベースの名前です。

    • localeには、 en-usと入力します。これは、エラーメッセージが表示される言語です。

    • iamには、 1と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。

    • plugin_nameには、次のいずれかの操作を行います。

      • Ping Identity 設定の場合は、 BrowserSAMLを入力します。これは、ODBC ドライバが Ping Identity に対して認証するために使用する認証方法です。

      • Ping Identity with SSO 設定の場合は、 Pingを入力します。これは、ODBC ドライバが Ping Identity with SSO を使用して認証するために使用する認証方法です。

    • uidには、 your-ping-usernameと入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、 plugin_namePingである場合にのみ使用します。

    • pwdには、 your-ping-passwordと入力します。これは、 plugin_namePingである場合にのみ使用します。

    • login_urlには、 your-login-urlと入力します。これは、SAML 応答を返す SSO の開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。

    • idp_response_timeoutには、 the-number-of-secondsを入力します。これは、PingOne Identity からの応答を待機する秒単位の指定された期間です。これは、ブラウザの SAML プラグインにのみ適用されます。

    • listen_portには、 your-listen-portと入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。

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

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini

Okta を使用した JDBC または ODBC シングルサインオン認証の設定

Okta を ID プロバイダー (IdP) として使用して、Amazon Redshift クラスターにアクセスできます。次に、この目的のために信頼関係を設定する方法を説明する手順を示します。AWS を Okta のサービスプロバイダーとして設定する方法については、 IAM ユーザーガイド証明書利用者の信頼とクレームの追加によって SAML 2.0 IdP を設定する を参照してください。

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

  1. Okta ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、 クラスターの作成を参照してください。

  2. Okta ポータルに新しいアプリケーションとして Amazon Redshift を追加します。詳細な手順については、 Okta のドキュメントを参照してください。

    • アプリケーションの追加を選択します。

    • アプリケーションの追加で、 新しいアプリの作成を選択します。

    • 新規追加のアプリケーション統合の作成 ページの プラットフォームで、 ウェブを選択します。

    • サインオンメソッドで、 SAML v2.0を選択します。

    • 一般設定 ページで、 アプリ名your-redshift-saml-sso-nameと入力します。これは、アプリケーションの名前です。

    • SAML 設定 ページの シングルサインオンの URLyour-redshift-local-host-urlと入力します。これは、SAML アサーションがリダイレクトするローカルホストとポート (例: http://localhost:7890/redshift/) です。

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

  4. 署名には、 アサーションへの署名を選択します。

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

  6. 高度な設定 セクションには、 セットアップ手順の表示セクションに記載されている SAML Issuer IDである your-Identity-Provider-Issuer-IDを入力します。

  7. 属性ステートメント セクションで、次の表に示すようにクレームを作成します。

    クレーム名

    https://aws.amazon.com/SAML/Attributes/Role

    arn:aws:iam::123456789012:role/Okta,arn:aws:iam::123456789012:saml-provider/Okta

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    user.email

    https://redshift.amazon.com/SAML/Attributes/AutoCreate

    "true"

    https://redshift.amazon.com/SAML/Attributes/DbUser

    user.email

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

  9. IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Okta の設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、 IAM ユーザーガイドIAM アイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。

  10. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細な手順については、 IAM ユーザーガイドSAML 用のロールの作成 を参照してください。

  11. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールに添付できる IAM ポリシーを作成します。詳細な手順については、 IAM ユーザーガイドIAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、 Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。

Okta への認証用に JDBC を設定するには

  • Okta SSO を使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを設定します。

    JDBC ドライバを使用する任意のクライアントを使用して Okta SSO を使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、 JDBC ドライバーのバージョン 1.0 接続の構成を参照してください。

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

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

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

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

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

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

    4. 接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。

      • ユーザーには、Okta ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。

      • パスワードには、Okta パスワードを入力します。

      • ドライバには、 Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。

      • URLには、 jdbc:redshift:iam//your-cluster-identifier:your-cluster-region/your-database-nameと入力します。

    5. 拡張プロパティ を選択し、次のいずれかの操作を行います。

      • login_urlには、 your-okta-sso-login-urlと入力します。この値は、Okta にログインするための認証として SSO を使用する URL を指定します。

      • Okta SSO の場合は、 plugin_namecom.amazon.redshift.plugin.OktaCredentialsProviderを入力します。この値は、認証方法として Okta SSO を使用するようドライバに指定します。

      • MFA を使用した Okta SSO の場合は、 plugin_namecom.amazon.redshift.plugin.BrowserSamlCredentialsProviderと入力します。この値は、MFA を使用して Okta SSO を認証方法として使用するようにドライバに指定します。

Okta への認証用に ODBC を設定するには

  • Okta SSO を使用して ODBC 経由でクラスターに接続するように、データベースクライアントを設定します。

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

    また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。

    Windows の場合、 Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。

    • データソース名には、 your-DSNを入力します。ODBC プロファイル名として使用するデータソース名を指定します。

    • Auth typeで、以下のいずれかを実行します。

      • Okta SSO 設定の場合は、 Identity Provider: Oktaを選択します。これは、ODBC ドライバが AOkta SSO を使用した認証に使用する認証方法です。

      • MFA 設定を使用した Okta SSO の場合は、 Identity Provider: Browser SAMLを選択します。これは、ODBC ドライバが MFA と Okta SSO を使用して認証するために使用する認証方法です。

    • クラスター IDには、 your-cluster-identifierと入力します。

    • リージョンには、 your-cluster-regionと入力します。

    • データベースには、 your-database-nameと入力します。

    • ユーザーには、 your-okta-usernameと入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Okta アカウントのユーザー名です。Auth typeアイデンティティプロバイダー: Oktaである場合にのみ使用します。

    • パスワードには、 your-okta-passwordと入力します。Auth typeアイデンティティプロバイダー: Oktaである場合にのみ使用します。

    macOS と Linux では、次のように odbc.ini ファイルを編集します。

    注記

    すべてのエントリでは、大文字と小文字は区別されません。

    • clusteridには、 your-cluster-identifierと入力します。これは、作成された Amazon Redshift クラスターの名前です。

    • リージョンには、 your-cluster-regionと入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。

    • データベースには、 your-database-nameと入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。

    • localeには、 en-usと入力します。これは、エラーメッセージが表示される言語です。

    • iamには、 1と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。

    • plugin_nameには、次のいずれかの操作を行います。

      • MFA 設定の Okta SSO の場合は、 BrowserSAMLを入力します。これは、ODBC ドライバが MFA を使用して Okta SSO を認証するために使用する認証方法です。

      • Okta SSO 設定の場合は、 Oktaを入力します。これは、ODBC ドライバが AOkta SSO を使用した認証に使用する認証方法です。

    • uidには、 your-okta-usernameと入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。これは、 plugin_nameOktaである場合にのみ使用します。

    • pwdには、 your-okta-passwordと入力します。これは、 plugin_nameOktaである場合にのみ使用します。

    • login_urlには、 your-login-urlと入力します。これは、SAML 応答を返す SSO の開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。

    • idp_response_timeoutには、 the-number-of-secondsを入力します。これは、PingOne からの応答を待機する秒単位の指定された時間です。これは、ブラウザの SAML プラグインにのみ適用されます。

    • listen_portには、 your-listen-portと入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。

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

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini