ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する - Amazon Redshift

ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する

Amazon Redshift JDBC または ODBC ドライバーを使用して SQL クライアントを設定できます。このドライバーは、データベースユーザーの認証情報を作成し、SQL クライアントと Amazon Redshift データベース間の接続を確立するプロセスを管理します。

認証に ID プロバイダーを使用する場合は、ID プロバイダープラグインの名前を指定します。Amazon Redshift JDBC および ODBC ドライバーには、次の SAML ベースの認証情報プロバイダーのプラグインが含まれます。

IAM 認証情報を使用するように JDBC 接続を設定するには

  1. JDBC 接続の設定」ページから最新の Amazon Redshift JDBC ドライバーをダウンロードします。

    重要

    Amazon Redshift JDBC ドライバーはバージョン 1.2.7.1003 以降である必要があります。

  2. 次のいずれかの形式で IAM 認証情報オプションを使用して JDBC URL を作成します。IAM 認証を使用するには、次の例に示すように、jdbc:redshift: に続いて Amazon Redshift JDBC URL に iam: を追加します。

    jdbc:redshift:iam://

    regionaccount-idcluster-name を AWS リージョン、アカウント、クラスターの値に置き換えます。JDBC ドライバーは IAM アカウント情報とクラスター名を使用して、クラスター ID、AWS リージョン、ポート番号を取得します。そのためには、IAM ユーザーまたはロールには、指定したクラスターで redshift:DescribeClusters オペレーションを呼び出すアクセス許可が必要です。

    jdbc:redshift:iam://cluster-name:region/dbname

    IAM ユーザーまたはロールで、redshift:DescribeClusters オペレーションを呼び出すアクセス許可がない場合は、次の例に示すように、クラスター ID、AWS リージョン、ポートを含めます。ポート番号はオプションです。デフォルトのポート番号は 5439 です。

    jdbc:redshift:iam://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev
  3. JDBC オプションを追加して IAM 認証情報を提供します。さまざまな組み合わせの JDBC オプションを使用して、IAM 認証情報を提供できます。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション」を参照してください。

    次の URL は、IAM ユーザーの AccessKeyID および SecretAccessKey を指定します。

    jdbc:redshift:iam://examplecluster:us-west-2/dev?AccessKeyID=AKIAIOSFODNN7EXAMPLE&SecretAccessKey=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

    次の例では、IAM 認証情報を含む名前付きプロファイルを指定します。

    jdbc:redshift:iam://examplecluster:us-west-2/dev?Profile=user2
  4. JDBC ドライバーを使用して GetClusterCredentials API オペレーションを呼び出す JDBC オプションを追加します。GetClusterCredentials API オペレーションをプログラムで呼び出す場合、これらのオプションは含めないでください。

    次の例では JDBC GetClusterCredentials オプションを含めています。

    jdbc:redshift:iam://examplecluster:us-west-2/dev?plugin_name=com.amazon.redshift.plugin.AzureCredentialsProvider&UID=user&PWD=password&idp_tenant=my_tenant&client_secret=my_secret&client_id=my_id

IAM 認証情報を使用するように ODBC 接続を設定するには

次の手順では、IAM 認証を設定するステップのみを示します。データベースユーザー名とパスワードを使用して標準認証を使用するステップについては、「ODBC 接続の設定」を参照してください。

  1. オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバーをインストールおよび設定します。詳細については、「ODBC 接続の設定」ページを参照してください。

    重要

    Amazon Redshift ODBC ドライバーはバージョン 1.3.6.1000 以降である必要があります。

  2. 接続設定に関するオペレーティングシステムのステップに従います。

    詳細については、以下のいずれかを参照してください。

  3. Microsoft Windows オペレーティングシステムでは、Amazon Redshift ODBC ドライバーの DSN 設定ウィンドウにアクセスします。

    1. [接続設定] で以下の情報を入力します。

      • [Data Source Name (データソース名)]

      • [サーバー] (オプション)

      • [ポート] (オプション)

      • [データベース]

      IAM ユーザーまたはロールに redshift:DescribeClusters オペレーションを呼び出すアクセス許可がある場合、[Data Source Name (データソース名)] および [データベース] のみが必要です。Amazon Redshift は [ClusterId] および [リージョン] を使用し、DescribeCluster アクションを呼び出してサーバーとポートを取得します。

      IAM ユーザーまたはロールには、redshift:DescribeClusters を呼び出し、[Server (サーバー)] および [Port (ポート)] を指定するアクセス許可はありません。デフォルトのポート番号は 5439 です。

    2. [Authentication (認証)] で、[Auth Type (認証タイプ)] の値を選択します。

      認証タイプごとに、次のように値を入力します。

      AWS プロファイル

      次の情報を入力します。

      • [ClusterID]

      • [リージョン]

      • [Profile name (プロファイル名)]

        ODBC 接続オプションの値を含む AWS Config ファイルのプロファイル名を入力します。詳細については、「設定プロファイルを使用する」を参照してください。

      (オプション) GetClusterCredentials API オペレーションの呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      IAM 認証情報

      次の情報を入力します。

      • [ClusterID]

      • [リージョン]

      • [AccessKeyID] および [SecretAccessKey]

        IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー ID およびシークレットアクセスキー。

      • [SessionToken]

        [SessionToken] は、一時的認証情報を持つ IAM ロールに必要です。詳細については、「一時的セキュリティ認証情報」を参照してください。

      GetClusterCredentials API オペレーションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      Identity Provider: AD FS

      AD FS を使用した Windows 統合認証の場合、[User (ユーザー)] および [Password (パスワード)] は空白にしておきます。

      IdP の詳細を指定します。

      • [IdP Host (IdP ホスト)]

        企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。

      • [IdP Port (IdP ポート)] (オプション)

        ID プロバイダが使用するポート。デフォルトは 443 です。

      • [Preferred Role (優先ロール)]

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

      (オプション) GetClusterCredentials API オペレーションの呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      • [DbUser]

      • [User AutoCreate (ユーザー AutoCreate)]

      • [DbGroups]

      詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション」を参照してください。

      ID プロバイダー: PingFederate

      [User (ユーザー)] と [Password (パスワード)] に、IdP のユーザー名とパスワードを入力します。

      IdP の詳細を指定します。

      • [IdP Host (IdP ホスト)]

        企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。

      • [IdP Port (IdP ポート)] (オプション)

        ID プロバイダが使用するポート。デフォルトは 443 です。

      • [Preferred Role (優先ロール)]

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

      (オプション) GetClusterCredentials API オペレーションの呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      • [DbUser]

      • [User AutoCreate (ユーザー AutoCreate)]

      • [DbGroups]

      詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション」を参照してください。

      ウェブ ID プロバイダー: Okta

      [User (ユーザー)] と [Password (パスワード)] に、IdP のユーザー名とパスワードを入力します。

      IdP の詳細を指定します。

      • [IdP Host (IdP ホスト)]

        企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。

      • [IdP Port (IdP ポート)]

        この値は Okta では使用されません。

      • [Preferred Role (優先ロール)]

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

      • [Okta App ID (Okta アプリケーション ID)]

        Okta アプリケーションの ID。アプリ ID の値は、Okta アプリケーションの埋め込みリンクの「amazon_aws」に続きます。IdP 管理者と連携して、この値を取得します。

      (オプション) GetClusterCredentials API オペレーションの呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      • [DbUser]

      • [User AutoCreate (ユーザー AutoCreate)]

      • [DbGroups]

      詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション」を参照してください。

      ID プロバイダー: Azure AD

      [User (ユーザー)] と [Password (パスワード)] に、IdP のユーザー名とパスワードを入力します。

      [Cluster ID] と [Region] にクラスター ID と Amazon Redshift クラスターの AWS リージョンを入力します。

      [Database (データベース)] に、Amazon Redshift クラスター用に作成したデータベースを入力します。

      IdP の詳細を指定します。

      • IdP Tenant (IdP テナント)

        Azure AD に使用されるテナント。

      • Azure Client Secret (Azure クライアントシークレット)

        Azure の Amazon Redshift エンタープライズアプリのクライアントシークレット。

      • Azure Client ID (Azure クライアント ID)

        Azure の Amazon Redshift エンタープライズアプリケーションのクライアント ID (アプリケーション ID)。

      (オプション) GetClusterCredentials API オペレーションの呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

      • [DbUser]

      • [User AutoCreate (ユーザー AutoCreate)]

      • [DbGroups]

      詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション」を参照してください。