認証と SSL の設定
不正なアクセスからデータを保護するために、Amazon Redshift データストアでは、すべての接続をユーザー認証情報を使用して認証する必要があります。一部のデータストアでは、一方向認証の有無にかかわらず、Secure Sockets Layer (SSL) プロトコル経由で接続を確立する必要があります。
Amazon Redshift JDBC ドライバーのバージョン 2.1 では、これらの認証プロトコルが完全にサポートされています。
ドライバーがサポートする SSL バージョンは、使用している JVM のバージョンによって異なります。Java の各バージョンでサポートされている SSL バージョンの詳細については、Java プラットフォームグループの製品管理ブログから [TLS、SSL、および HTTPS の診断
接続に使用される SSL バージョンは、ドライバーとサーバーの両方でサポートされている最も高いバージョンであり、接続時に決定されます。
接続先の Amazon Redshift サーバーのセキュリティ要件に従って接続を認証するように、Redshift JDBC ドライバーバージョン 2.1 を設定します。
接続を認証するには、常に Redshift ユーザー名とパスワードを入力する必要があります。SSL が有効で、サーバー上で必要であるかどうかに応じて、SSL 経由で接続するようにドライバーを設定する必要もあります。または、クライアント (ドライバー自体) がサーバーの身元を確認するために、一方向の SSL 認証を使用する場合もあります。
接続 URL でドライバーに構成情報を提供します。接続 URL の構文の詳細については、接続 URL の構築を参照してください。
SSL は、Transport Layer Security と Secure Sockets Layer の両方の TLS/SSL を示します。このドライバーは、業界標準バージョンの TLS/SSL をサポートしています。
IAM 認証の設定
IAM 認証を使用して Amazon Redshift サーバーに接続する場合は、データソース接続文字列の一部として次のプロパティを設定します。
IAM 認証の詳細については、「Amazon Redshift での Identity and Access Management」 を参照してください。
IAM 認証を使用するには、以下のいずれかの接続文字列形式を使用します。
接続文字列 | 説明 |
---|---|
|
通常の接続文字列。ドライバーは、ホストから ClusterID とリージョンを推測します。 |
|
ドライバーは、ClusterID とリージョンを指定して、ホストの情報を取得します。 |
|
デフォルトでドライバーはポート 5439 に設定され、ホストから ClusterID とリージョンを推測します。クラスターの作成、変更、または移行時に選択したポートに応じて、選択したポートへのアクセスを許可します。 |
プロファイルの指定
IAM 認証を使用している場合は、プロファイル名の下で、必須またはオプションの追加接続プロパティを指定できます。これにより、接続文字列に特定の情報を直接入力することを回避できます。プロファイルのプロパティを使用して、接続文字列でプロファイル名を指定します。
プロファイルは AWS 認証情報ファイルに追加できます。このファイルのデフォルトの場所は、~/.aws/credentials
です。
次の環境変数 AWS_CREDENTIAL_PROFILES_FILE
でパスを設定することにより、デフォルト値を変更できます。
プロファイルの詳細については、AWS SDK for Javaの「Working with AWS Credentials」を参照してください。
インスタンスプロファイルの認証情報の使用
IAM ロールに関連付けられている Amazon EC2 インスタンスでアプリケーションを実行している場合は、インスタンスプロファイルの認証情報を使用して接続することができます。
これを行うには、前のテーブルで IAM 接続文字列形式のいずれかを使用し、dbuser 接続プロパティを、接続に使用する Amazon Redshift ユーザー名に設定します。
インスタンスプロファイルの詳細については、IAM ユーザーガイドの「アクセス管理」を参照してください。
認証情報プロバイダーの使用
ドライバーは、次のサービスからの認証情報プロバイダーのプラグインもサポートします。
-
AWS IAM アイデンティティーセンター
-
Active Directory フェデレーションサービス (ADFS)
-
JSON ウェブトークン (JWT) サービス
-
Microsoft Azure アクティブディレクトリ (AD) サービスと Browser Microsoft Azure Active Directory (AD) サービス
-
Okta サービス
-
PingFederate サービス
-
Okta、Ping、ADFS などの SAML サービス用のブラウザ SAML
これらのサービスのいずれかを使用する場合は、接続 URL で次のプロパティを指定する必要があります。
-
Plugin_Name – 認証情報プロバイダーのプラグインクラスの完全修飾クラスパスです。
-
IdP_Host: – Amazon Redshift による認証に使用しているサービスのホストです。
-
IdP_Port – 認証サービスのホストがリッスンするポートです。Okta には必要ありません。
-
ユーザー – idp_host サーバーのユーザー名。
-
パスワード – idp_host ユーザー名に関連付けられたパスワード。
-
DbUser – 接続している Amazon Redshift ユーザー名。
-
SSL_Insecure – IDP サーバー証明書を検証する必要があるかどうかを示します。
-
Client_ID – Azure AD ポータルのユーザー名に関連付けられているクライアント ID。Azure AD にのみ使用されます。
-
Client_Secret – Azure AD ポータルのクライアント ID に関連付けられたクライアントシークレットです。Azure AD にのみ使用されます。
-
IdP_Tenant – Amazon Redshift アプリケーションの Azure AD テナント ID です。Azure AD にのみ使用されます。
-
App_ID – Amazon Redshift アプリケーションの Okta アプリケーション ID です。Okta にのみ使用されます。
-
App_Name – Amazon Redshift アプリケーションのオプションの Okta アプリケーション名です。Okta にのみ使用されます。
-
Partner_SPID – オプションのパートナー SPID (サービスプロバイダー ID) 値です。PingFederate にのみ使用されます。
-
Idc_Region – AWS IAM アイデンティティセンターインスタンスが配置されている AWS リージョン リージョン。AWS IAM アイデンティティセンターでのみ使用されます。
-
Issuer_Url – AWS IAM アイデンティティセンターサーバーのインスタンスエンドポイント。AWS IAM アイデンティティセンターでのみ使用されます。
これらのサービスのいずれかにブラウザプラグインを使用している場合は、接続 URL に以下を含めることもできます。
-
Login_URL – ブラウザのプラグインを介して Security Assertion Markup Language (SAML) または Azure AD サービスを使用するための、ID プロバイダーのウェブサイト上のリソース URL です。このパラメータは、ブラウザプラグインを使用している場合に必要です。
-
Listen_Port – ブラウザのプラグインを介して SAML、Azure AD サービスまたは AWS IAM アイデンティティセンターのサービスを使用する場合に、ID プロバイダーから SAML レスポンスを取得するためにドライバーが使用するポートです。
-
IdP_Response_Timeout – ブラウザのプラグインを介して SAML、Azure AD または AWS IAM アイデンティティセンターのサービスを使用する場合に、ドライバーが ID プロバイダーからの SAML レスポンスを待機する時間 (秒単位) です。
追加された接続文字列のプロパティの詳細については、JDBC ドライバーバージョン 2.1 の設定オプションを参照してください。