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

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

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

  • AWS プロファイル

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

  • IAM 認証情報

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

  • ID プロバイダーフェデレーション

    ID プロバイダーフェデレーションを使用して、ID プロバイダーのユーザーを 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 という名前のファイルに保存されています。

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

2 つのプロファイルのある設定ファイルの例を以下に示します。

[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 のオプションを示します。

オプション

Description

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 に渡します。

Amazon Redshift は、次の認証情報プロバイダープラグインを提供します。

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

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

オプション

Description
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 企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。Okta ID プロバイダーの場合、idp_host の値は .okta.com で終わる必要があります。

idp_port

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

preferred_role

SAML アサーションの Role 属性の AttributeValue 要素からのロールの 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) としてマイクロソフトの 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] を選択します。[Add an application] ページが表示されます。

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

  6. [AWS] を選択し、[Add] を選択します。これにより、AWS アプリケーションが作成されます。

  7. [Manage] で、[Single sign-on] を選択します。

  8. [SAML] を選択します。[アマゾンウェブサービス (AWS) | SAML ベースのサインオン] ページが表示されます。

  9. [はい] を選択して、[Set up Single Sign-On with SAML] ページに進みます。このページには、事前設定された AWS SSO 関連属性のリストが表示されます。

  10. [Basic SAML Configuration] で、編集アイコンを選択し、[Save] を選択します。

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

  12. [User Attributes and Claims] セクションで、編集アイコンを選択します。

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

  13. [+ Add new claim] を選択して、データベースユーザーの要求を追加します。

    [Name] に DbUser と入力します。

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

    [Source] で、[Attribute] を選択します。

    [Source attribute] で、[user.userprincipalname] を選択します。次に、[Save] を選択します。

  14. [+ Add new claim] を選択して、AutoCreate のクレームを追加します。

    [Name] に AutoCreate と入力します。

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

    [Source] で、[Attribute] を選択します。

    [Source attribute] で、[true] を選択します。次に、[Save] を選択します。

    ここでは、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. [App Registration (アプリの登録)] > your-application-name > [認証] で、[Mobile And Desktop Application (モバイルとデスクトップアプリケーション)] を追加します。URL を http://localhost/redshift と指定します。

  16. [SAML Signing Certificate] セクションで、[Download] を選択し、IAM SAML ID プロバイダーを作成するときに使用するフェデレーションメタデータ XML ファイルをダウンロードして保存します。このファイルを使用して、AWS SSO フェデレーテッドアイデンティティを作成します。

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

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

  19. IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、IAM ユーザーガイドの「Creating IAM Policies (Console)」を参照してください。

    環境に合わせて次のポリシー (JSON 形式) を変更します。

    • クラスターの AWS リージョンを us-west-1 に置き換えます。

    • AWS アカウント ID を 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 オペレーションに、指定したクラスターの一時的な認証情報を取得するアクセス許可を付与します。この例では、リソースはデータベース devcluster-identifier、アカウント 123456789012、および AWS リージョン us-west-1 にあります。${redshift:DbUser} 句を使用すると、Azure AD で指定された DbUser 値に一致するユーザーのみが接続できます。

    • 条件句は、特定のユーザーだけが一時認証情報を取得するように強制します。これらのユーザーは、会社の E メールドメインの E メールアドレスで識別される IAM アカウントのロール固有 ID AROAJ2UCCR6DPCEXAMPLE で指定されたロールのユーザーです。一意の ID の詳細については、IAM ユーザーガイドの「一意の識別子」を参照してください。

      IdP (この場合は Azure AD) を使用したセットアップによって、条件句の記述方法が決まります。従業員の電子メールがの johndoe@example.com 場合は、まず、${redshift:DbUser} を従業員のユーザー名 johndoe に一致するスーパーフィールドに設定します。次に、この条件を機能させるため、AWS SAML RoleSessionName フィールドを、従業員の E メール johndoe@example.com に一致するスーパーフィールドに設定します。このアプローチを使用する場合は、以下の点を考慮します。

      • ${redshift:DbUser} を従業員の電子メールに設定した場合は、例の 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 接続の設定 を参照してください。

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

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

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

    1. SQL Workbench/J を起動します。[Select Connection Profile] ページで、AzureAuth という名前の [Profile Group] を追加します。

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

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

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

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

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

      • [Drivers] には、Amazon Redshift (com.amazon.comredshift.jdbc.Driver) を選択します。

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

    5. [Extended Properties] を選択して、次のように接続プロパティに情報を追加します。

      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 X オペレーティングシステム用の ODBC ドライバーが用意されています。ODBC ドライバーをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバーをインストールします。

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

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

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

    • Azure AD SSO configuration の [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] が ID プロバイダー: Azure ADにのみ使用します。

    • パスワードには、your-azure-password と入力します。これは、[Auth Type] が ID プロバイダー: Azure ADにのみ使用します。

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

    • Azure クライアントシークレットには、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 クラスターの名前です。

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

    • database には、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 と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。これは、[plugin_name] が AzureADである場合にのみ使用します。

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

    • 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 を IdP のサービスプロバイダーとして設定する方法の詳細については、IAM ユーザーガイド の「証明書利用者の信頼およびクレームの追加によって SAML 2.0 IdP を設定する」を参照してください。

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

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

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

    1. [ADFS 2.0] を選択し、[Add Relying Party Trust] を選択します。[Add Relying Party Trust Wizard] ページで、[Start] を選択します。

    2. [Select Data Source] ページで、[Import data about the relying party published online or on a local network] を選択します。

    3. [Federation metadata address (host name or URL)] に https://signin.aws.amazon.com/saml-metadata.xml と入力します。メタデータ XML ファイルは、AWS を証明書利用者として記述する標準の SAML メタデータドキュメントです。

    4. [Specify Display Name] ページで、[Display Name] に値を入力します。

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

    6. [Ready to Add Trust] ページで、設定を確認します。

    7. [Finish] ページで、[Open the Edit Claim Rules dialog for this relying party trust when the wizard closes] を選択します。

    8. コンテキスト (右クリック) メニューで、[Relying Party Trusts] を選択します。

    9. 証明書利用者については、コンテキスト (右クリック) メニューを開き、[Edit Claim Rules] を選択します。[Edit Claim Rules] ページで、[Add Rule] を選択します。

    10. [Claim rule template] で、[Transform an Incoming Claim] を選択し、[Edit Rule – NameId] ページで、次の操作を行います。

      • [Claim rule name] に NameId を入力します。

      • [Incoming claim name] で、[Windows Account Name] を選択します。

      • [Outgoing claim name] で、[Name ID] を選択します。

      • [Outgoing name ID form] で、[Persistent Identifier] を選択します。

      • [Pass through all claim values] を選択します。

    11. [Edit Claim Rules] ページで、[Add Rule] を選択します。[Select Rule Template] ページの [Claim rule template] で、[Send LDAP Attributes as Claims] を選択します。

    12. [Configure Rule] ページで、次の手順を実行します。

      • Claim rule name に、RoleSessionName と入力します。

      • [Attribute store] で [Active Directory] を選択します。

      • [LDAP Attribute] で [E-Mail-Addresses] を選択します。

      • [Outgoing Claim Type] で、[https://aws.amazon.com/SAML/Attributes/RoleSessionName] を選択します。

    13. [Edit Claim Rules] ページで、[Add Rule] を選択します。[Select Rule Template] ページの [Claim rule template] で、[Send Claims Using a Custom Rule] を選択します。

    14. [Edit Rule – Get AD Groups] ページで、[Claim rule name] に Get AD Groups と入力します。

    15. [Custom rule] で、次のように入力します。

      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. [Edit Claim Rules] ページで、[Add Rule] を選択します。[Select Rule Template] ページの [Claim rule template] で、[Send Claims Using a Custom Rule] を選択します。

    17. [Edit Rule – Roles] ページの [Claim rule name] に Roles と入力します。

    18. [Custom rule] で、次のように入力します。

      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 ユーザーガイド の [ Creating and Managing an IAM Identity Provider (Console) (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 接続の設定 を参照してください。

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

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

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

    1. SQL Workbench/J を起動します。[Select Connection Profile] ページで、[Profile Group] を追加します (例: ADFS)。

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

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

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

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

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

      • [Drivers] には、Amazon Redshift (com.amazon.comredshift.jdbc.Driver) を選択します。

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

    5. [Extended Properties] を選択し、次のいずれかの操作を行います。

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

      • AD FS SSO の場合は、[plugin_name] に com.amazon.redshift.plugin.AdfsCredentialsProvider と入力します。この値は、AD FS SSO を認証方法として使用するようにドライバーに指定します。

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

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

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

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

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

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

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

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

      • AD FS SSO 構成の場合は、[Identity Provider: SAML] を選択します。これは、ODBC ドライバーが AD FS SSO を使用した認証に使用する認証方法です。

      • MFA を使用した AD FS SSO 設定の場合は、[ID プロバイダー: ブラウザ SAML] を選択します。これは、MFA で AD FS SSO を使用して認証するために ODBC ドライバーが使用する認証方法です。

    • クラスター 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である場合にのみ使用します。

    • [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 クラスターの名前です。

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

    • database には、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_name] が ADFSである場合にのみ使用します。

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

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

    • [idp_response_timeout] には、the-number-of-seconds を入力します。これは、AD FS からのレスポンスを待機する秒単位の指定された時間です。これは、ブラウザの 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

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

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

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

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

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

    1. [My Applications] に移動します。

    2. [Add Application] で、[New SAML Application] を選択します。

    3. [Application Name] には Amazon Redshift と入力します。

    4. [Protocol Version] ]には、SAML v2.0 を選択します。

    5. [Category] には、your-application-category を選択します。

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

    7. [Entity ID] には、urn:amazon:webservices と入力します。

    8. [Signing] には、[Sign Assertion] を選択します。

    9. [SSO Attribute Mapping] セクションで、次の表に示すように要求を作成します。

      アプリケーション属性 リテラル値の 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

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

    • 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 として、Initiate Single Sign-On (SSO) URL を使用します。

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

  7. IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細な手順については、IAM ユーザーガイド の[ Creating a Role for SAML (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 接続の設定 を参照してください。

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

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

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

    1. SQL Workbench/J を起動します。[Select Connection Profile] ページで、[Profile Group] を追加します (例: Ping)。

    2. [Connection Profile] に、your-connection-profile-name と入力します (例: Ping)。

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

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

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

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

      • [Drivers] には、Amazon Redshift (com.amazon.comredshift.jdbc.Driver) を選択します。

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

    5. [Extended Properties] を選択し、次のいずれかの操作を行います。

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

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

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

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

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

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

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

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

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

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

      • [Ping Identity の設定] で、[Identity Provider: Ping Federate] を選択します。これは、ODBC ドライバーが Ping Identity SSO を使用して認証するために使用する認証方法です。

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

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

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

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

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

    • [パスワード] には、your-ping-password と入力します。これは、[Auth type] が Identity Provider: 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 クラスターの名前です。

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

    • database には、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_name] が Pingである場合にのみ使用します。

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

    • [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 を IdP のサービスプロバイダーとして設定する方法の詳細については、IAM ユーザーガイド の「証明書利用者の信頼およびクレームの追加によって SAML 2.0 IdP を設定する」を参照してください。

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

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

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

    • [Add Application] を選択します。

    • [Add Application] で、[Create New App] を選択します。

    • [Create a New Add Application Integration] ページの [Platform] で、[Web] を選択します。

    • [Sign on method] で、[ SAML v2.0] を選択します。

    • [全般設定] ページで、[App name] に your-redshift-saml-sso-name と入力します。これは、アプリケーションの名前を選択です。

    • [SAML Settings (SAML 設定)] ページの [Single sign on URL (シングルサインオンの URL)] に your-redshift-local-host-url と入力します。これは、SAML アサーションがリダイレクトするローカルホストとポートです。たとえば、http://localhost:7890/redshift のようにします。

    • Recipient URL および Destination URL としてシングルサインオン URL を使用します。

    • [Signing] には、[Sign Assertion] を選択します。

    • [Audience URI (SP Entity ID)] に、次の表に示すように、クレームに対して urn:amazon:webservices を入力します。

    • [Advanced Settings] セクションの [SAML Issuer ID] で、[View Setup Instructions] セクションで見つけられる your-Identity-Provider-Issuer-ID を入力します。

    • [Attribute Statements] セクションで、次の表に示すようにクレームを作成します。

      クレーム名

      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

      email

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

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

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

  6. 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 接続の設定 を参照してください。

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

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

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

    1. SQL Workbench/J を起動します。[Select Connection Profile] ページで、[Profile Group] を追加します (例: Okta)。

    2. [Connection Profile] に、your-connection-profile-name と入力します (例: Okta)。

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

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

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

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

      • [Drivers] には、Amazon Redshift (com.amazon.comredshift.jdbc.Driver) を選択します。

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

    5. [Extended Properties] を選択し、次のいずれかの操作を行います。

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

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

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

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

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

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

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

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

    • ,データソース名には、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] が Identity Provider: Okta である場合にのみ使用します。

    • [パスワード] には、your-okta-password と入力します。[Auth type] が Identity Provider: Okta である場合にのみ使用します。

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

    注記

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

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

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

    • database には、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_name] が Oktaである場合にのみ使用します。

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

    • [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