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 ドライバーバージョン 2.1 の設定オプション および 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 ドライバーのプロファイルを使用する方法の詳細については、「プロファイルの指定」を参照してください。
ODBC ドライバーのプロファイルの使用方法の詳細については、「認証の設定」を参照してください。
IAM 認証情報を提供するための JDBC および ODBC のオプション
以下の表に、IAM 認証情報を提供するための JDBC および ODBC のオプションを示します。
オプション |
説明 |
---|---|
|
ODBC 接続文字列内でのみ使用できます。IAM 認証を使用するには、1 に設定します。 |
|
IAM データベース認証用に設定された IAM ロールまたはユーザーのアクセスキー ID とシークレットアクセスキー。SessionToken は、一時的な認証情報を持つ IAM ロールにのみ必要です。ユーザーには SessionToken を使用しません。詳細については、 Temporary Security Credentialsを参照してください。 |
plugin_name |
認証情報プロバイダーを実装する完全修飾クラス名。Amazon Redshift JDBC ドライバーには SAML ベースの認証情報プロバイダープラグインが含まれます。plugin_name を提供する場合は、他の関連オプションも提供できます。詳細については、「認証情報プロバイダープラグインの使用」を参照してください。 |
|
JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。詳細については、「設定プロファイルを使用する」を参照してください。 |
認証情報プロバイダープラグインの使用
Amazon Redshift はシングルサインオン認証に認証情報プロバイダープラグインを使用します。
シングルサインオン認証をサポートするために、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 認証は次のようになります。
-
ユーザーがログインを試行します。
-
プラグインは、ローカルホスト上の着信接続をリッスンするローカルサーバーを起動します。
-
プラグインはウェブブラウザを起動し、指定されたシングルサインオンログイン URL フェデレーテッド ID プロバイダーのエンドポイントから HTTPS 経由で SAML 応答を要求します。
-
ウェブブラウザはリンクをたどり、ユーザーに認証情報の入力を要求します。
-
ユーザーが認証され、同意が付与されると、フェデレーテッド ID プロバイダーのエンドポイントは、
redirect_uri
に示される URI に HTTPS 経由で SAML 応答を返します。 -
ウェブブラウザは、SAML 応答を含む応答メッセージを、指定された
redirect_uri
に移動します。 -
ローカルサーバーは着信接続を受け入れ、プラグインは SAML 応答を取得して Amazon Redshift に渡します。
ブラウザ Azure AD プラグインでは、SAML 認証は次のようになります。
ユーザーがログインを試行します。
プラグインは、ローカルホスト上の着信接続をリッスンするローカルサーバーを起動します。
プラグインはウェブブラウザを起動して、Azure AD
oauth2/authorize
エンドポイントから認証コードを要求します。ウェブブラウザは、HTTPS 経由で生成されたリンクをたどり、ユーザーに認証情報の入力を要求します。リンクは、テナントや client_id などの設定プロパティを使用して生成されます。
ユーザーが認証され、同意が付与されると、Azure AD
oauth2/authorize
エンドポイントは HTTPS 経由で応答を返し、認証コードとともに示されたredirect_uri
に送信します。ウェブブラウザは、SAML レスポンスを含む応答メッセージを、指定された
redirect_uri
に移動します。ローカルサーバーは、着信接続とプラグイン要求を受け入れ、認証コードを取得し、Azure AD
oauth2/token
エンドポイントに POST リクエストを送信します。Azure AD
oauth2/token
エンドポイントは、アクセストークンを含む応答を、示されたredirect_uri
に返します。プラグインは SAML 応答を取得し、Amazon Redshift に渡します。
以下のセクションを参照してください。
-
Active Directory フェデレーションサービス (AD FS)
詳細については、「AD FS を使用した JDBC または ODBC シングルサインオン認証の設定」を参照してください。
-
PingOne (Ping)
Ping は、フォーム認証を使用する既定の PingOne IdP Adapter でのみサポートされます。
詳細については、「Ping Identity を使用した JDBC または ODBC シングルサインオン認証の設定」を参照してください。
-
Okta
Okta は、AWS Management Consoleで使用される Okta 提供アプリケーションでのみサポートされます。
詳細については、「Okta を使用した JDBC または ODBC シングルサインオン認証の設定」を参照してください。
-
Microsoft Azure Active Directory (Azure AD)
詳細については、「Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定」を参照してください。
プラグインオプションの設定
SAML ベースの認証情報プロバイダープラグインを使用するには、名前付きプロファイルで JDBC または ODBC オプションを使用して次のオプションを指定します。plugin_name
が指定されていない場合、ほかのオプションは無視されます。
オプション |
説明 |
---|---|
plugin_name |
JDBC の場合、認証情報プロバイダを実装するクラス名。次のいずれかを指定します。
ODBC の場合、次のいずれかを指定します。
|
idp_host
|
企業アイデンティティプロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。Okta ID プロバイダーの場合、idp_host の値は .okta.com で終わる必要があります。 |
|
アイデンティティプロバイダーが使用するポート。デフォルトは 443 です。ポートは Okta に対して無視されます。 |
|
SAML アサーションの AttributeValue 属性の Role 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「IdP の SAML アサーションを設定する」を参照してください。 |
|
該当する場合はドメインを含む、社内ユーザー名。たとえば、Active Directory の場合、必要なドメイン名の形式は domain\usernameです。 |
password
|
社内ユーザーのパスワード。このオプションを使用しないことをお勧めします。代わりに、SQL クライアントを使用してパスワードを指定します。 |
|
Okta アプリケーションの ID。Okta でのみ使用します。app_id の値は、Okta アプリケーションの埋め込みリンクの amazon_aws に続きます。IdP 管理者と連携して、この値を取得します。以下に、アプリケーション埋め込みリンクの例を示します。:-https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272 |
|
Azure AD で使用されるテナント。Azure でのみ使用します。 |
|
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 アカウントを設定するには
Azure AD ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、クラスターの作成を参照してください。
Microsoft Azure ポータルで AWS に使用される Azure Active Directory、グループ、ユーザーを設定します。
AWS コンソールへのシングルサインオンおよび Amazon Redshift へのフェデレーテッドログインに使用する Microsoft Azure ポータルに、エンタープライズアプリケーションとして Amazon Redshift を追加します。Enterprise application を選択します。
+New application を選択します。[アプリケーションを追加] ページが表示されます。
検索フィールドで
AWS
を検索します。Amazon Web Services (AWS) を選択し、追加 をクリックします。これにより、AWS アプリケーションが作成されます。
管理 で、シングルサインオンを選択します。
SAML を選択します。[Amazon Web Services (AWS) | SAML ベースのサインオン] ページが表示されます。
はい を選択して、[SAML によるシングルサインオンのセットアップ] ページに進みます。このページには、事前設定されたシングルサインオン関連属性のリストが表示されます。
ベーシック SAML 設定 で、編集アイコンを選択し、保存 を選択します。
複数のアプリケーションを設定する場合は、識別子の値を指定します。たとえば、
と入力します。2 番目のアプリケーション以降では、この形式を # 記号とともに使用して、一意の SPN 値を指定します。https://signin.aws.amazon.com/saml#2
ユーザー属性とクレーム セクションで、編集アイコンを選択します。
既定では、一意のユーザー識別子 (UID)、ロール、RoleSessionName、SessionDuration クレームは事前に設定されています。
+ 新しいクレームの追加 を選択して、データベースユーザーのクレームを追加します。
名前 に
DbUser
と入力します。[Namespace] に
https://redshift.amazon.com/SAML/Attributes
と入力します。出典 で、属性を選択します。
出典属性で、user.userprincipalnameを選択します。次に、保存を選択します。
+ 新しいクレームの追加 を選択して、AutoCreate のクレームを追加します。
名前 に
AutoCreate
と入力します。[Namespace] に
https://redshift.amazon.com/SAML/Attributes
と入力します。出典で、属性を選択します。
出典属性で、trueを選択します。次に、保存を選択します。
ここでは、
が AWS アカウント、123456789012
が作成した IAM ロール、AzureSSO
が IAM プロバイダーになります。AzureADProvider
クレーム名 値 一意のユーザー識別子 (名前 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
-
アプリの登録 >
> 認証で、モバイルとデスクトップアプリケーションを追加します。URL を http://localhost/redshift と指定します。your-application-name
証明書の SAML 署名 セクションで ダウンロード を選択し、IAM SAMLアイデンティティプロバイダーを作成するときに使用するフェデレーションメタデータ XML ファイルをダウンロードして保存します。このファイルは、シングルサインオンアイデンティティの作成に使用されます。
IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細なステップついては IAM ユーザーガイドの IAMアイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。
IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、IAM ユーザーガイドの SAML 用のロールの作成 を参照してください。
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
、AWS リージョンは123456789012
です。us-west-1
${redshift:DbUser}
句を使用すると、Azure AD で指定されたDbUser
値に一致するユーザーのみが接続できます。条件句は、特定のユーザーだけが強制的に一時認証情報を取得します。これらのユーザーは、会社の E メールドメインの E メールアドレスで識別される IAM アカウントのロール固有 ID
で指定されたロールのユーザーです。固有 ID の詳細については、IAM ユーザーガイドの 固有 ID を参照してください。AROAJ2UCCR6DPCEXAMPLE
IdP (この場合は Azure AD) を使用したセットアップによって、条件句の記述方法が決まります。従業員の E メールが
johndoe@example.com
の場合は、まず、${redshift:DbUser}
を従業員のユーザー名johndoe
に一致するスーパーフィールドに設定します。次に、この条件を機能させるため、AWS SAMLRoleSessionName
フィールドを従業員の 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 などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、Amazon Redshift での JDBC ドライバーのバージョン 2.1 による接続の構成を参照してください。
たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。
jdbc:redshift:iam://
cluster-identifier
:us-west-1
/dev
SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。
-
SQL Workbench/J を起動します。 接続プロファイルの選択 ページで、
AzureAuth
という プロファイルグループ を追加します。 -
接続プロファイルには、
Azure
と入力します。 -
ドライバーの管理を選択し、Amazon Redshiftを選択します。フォルダを開く アイコン、 ライブラリを選択し、適切な JDBC .jar ファイルを選択します。
-
接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。
ユーザーには、マイクロソフトの Azure ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。
パスワードには、マイクロソフトの Azure のパスワードを入力します。
ドライバには、Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。
URLには、
jdbc:redshift:iam://
と入力します。your-cluster-identifier
:your-cluster-region
/your-database-name
-
拡張されたプロパティ を選択して、次のように接続プロパティに情報を追加します。
Azure AD シングルサインオン設定の場合は、次のように追加情報を追加します。
plugin_nameには、
com.amazon.redshift.plugin.AzureCredentialsProvider
と入力します。この値は、認証方法として Azure Single Sign-On を使用するドライバーに指定します。idp_tenantには、
と入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。your-idp-tenant
client_secretには、
を入力します。Microsoft Azure AD のみに使用されます。これは、Azure Single Sign-On 設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントシークレットです。これは、ccom.amazon.redshift.plugin.AzureCredentialsProvider プラグインにのみ適用されます。your-azure-redshift-application-client-secret
client_idには、
と入力します。Microsoft Azure AD のみに使用されます。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。your-azure-redshift-application-client-id
MFA 設置を使用した Azure AD シングルサインオンの場合は、次のように接続プロパティに情報を追加します。
plugin_nameには、
com.amazon.redshift.plugin.BrowserAzureCredentialsProvider
と入力します。この値は、認証方法として MFA と Azure シングルサインオンを使用するようドライバに指定します。idp_tenantには、
と入力します。Microsoft Azure AD のみに使用されます。これは、Azure AD で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。your-idp-tenant
client_idには、
と入力します。Microsoft Azure AD のみに使用されます。これは、MFA 設定で Azure AD シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。your-azure-redshift-application-client-id
[listen_port] には、
と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。your-listen-port
[idp_response_timeout] には、
を入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。the-number-of-seconds
-
Microsoft Azure AD への認証用に ODBC を設定するには
Azure AD シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。
Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。
また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。
Windows については、Microsoft Windows に Amazon Redshift ODBC ドライバーをインストールして設定するを参照してください。
macOS については、macOS X に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Linux のについては、Linux に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Windows の場合、Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。
データソース名には、
を入力します。ODBC プロファイル名として使用するデータソース名を指定します。your-DSN
Azure AD シングルサインオン設定の Auth type には、
Identity Provider: Azure AD
を選択します。これは、ODBC ドライバが Azure シングルサインオンを使用した認証に使用する認証方法です。MFA設定の Azure AD シングルサインオンの Auth type には、
Identity Provider: Browser Azure AD
を選択します。これは、ODBC ドライバが MFA と Azure シングルサインオンを使用した認証に使用する認証方法です。クラスター IDには、
と入力します。your-cluster-identifier
リージョンには、
と入力します。your-cluster-region
データベースには、
と入力します。your-database-name
ユーザーには、
と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Azure アカウントのユーザー名です。これは、Auth Type が アイデンティティプロバイダー: Azure ADのみに使用します。your-azure-username
[パスワード] には、
と入力します。これは、Auth Type が アイデンティティプロバイダー: Azure ADのみに使用します。your-azure-password
IdP Tenantには、
と入力します。これは、IdP (Azure) で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。your-idp-tenant
Azure Client Secretには、
と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントの秘密です。your-azure-redshift-application-client-secret
Azure Client IDには、
と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。your-azure-redshift-application-client-id
Listen Portには、
と入力します。これは、ローカルサーバーがリッスンしているデフォルトのリッスンポートです。デフォルト値は 7890 です。これは、ブラウザ Azure AD プラグインのみに適用されます。your-listen-port
応答タイムアウトには、
と入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。これは、ブラウザ Azure AD プラグインのみに適用されます。the-number-of-seconds
macOS および Linux では、次のように
odbc.ini
ファイルを編集します。注記
すべてのエントリでは、大文字と小文字は区別されません。
clusterid には、
と入力します。これは、作成された Amazon Redshift クラスターの名前です。your-cluster-identifier
リージョンには、
と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。your-cluster-region
データベースには、
と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。your-database-name
locale には、
en-us
と入力します。これは、エラーメッセージが表示される言語です。iam には、
1
と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。Azure AD シングルサインオン設定の plugin_name には、
AzureAD
と入力します。これにより、認証方法として Azure シングルサインオンを使用するようドライバに指定します。MFA 設定の Azure AD シングルサインオンの plugin_name には、
BrowserAzureAD
と入力します。これにより、認証方法として MFA と Azure Single Sign-On を使用するようドライバに指定します。[uid] には、
と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、plugin_name が AzureADである場合にのみ使用します。your-azure-username
[pwd] には、
と入力します。これは、plugin_name が AzureADである場合のみに使用します。your-azure-password
idp_tenantには、
と入力します。これは、IdP (Azure) で設定されている会社のテナント名です。この値は、テナント名またはハイフン付きのテナント固有 ID のいずれかになります。your-idp-tenant
client_secretには、
を入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアントの秘密です。your-azure-redshift-application-client-secret
client_idには、
と入力します。これは、Azure シングルサインオン設定をセットアップするときに作成した Amazon Redshift アプリケーションのクライアント ID (ハイフン付き) です。your-azure-redshift-application-client-id
[listen_port] には、
と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザ Azure AD プラグインに適用されます。your-listen-port
[idp_response_timeout] には、
を入力します。これは、Azure からの応答を待機する秒単位の指定された期間です。これは、ブラウザ Azure AD プラグインに適用されます。the-number-of-seconds
macOS と Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
ブラウザ Azure AD プラグインに関する問題のトラブルシューティングを行うには
ブラウザ Azure AD プラグインを使用するには、リクエストで指定される返信 URL を、アプリケーションで構成された返信 URL と一致するように設定する必要があります。
Microsoft Azure ポータルの SAML を使用したシングルサインオンのセットアップ ページに移動します。次に、返信 URL が http://localhost/redshift/ に設定されていることを確認します。
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 をセットアップするために最初に使用したドメイン名と一致することを確認します。
リクエストで指定された返信 URL がアプリケーションに設定されている返信 URL と一致しないというエラーが表示された場合は、リダイレクト URI が返信 URL と同じであることを確認します。
Microsoft Azure ポータルでアプリケーションの アプリ登録 ページに移動します。次に、リダイレクト URI が返信 URL と一致することを確認します。
予期しない応答: 不正なエラーが表示された場合は、モバイルとデスクトップアプリケーション の構成が完了したことを確認します。
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 アカウントを設定するには
AD FS ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、クラスターの作成を参照してください。
-
Microsoft マネジメントコンソールで Amazon Redshift アクセスを制御するために AD FS を設定します。
-
ADFS 2.0を選択し、証明書利用者信頼の追加を選択します。証明書利用者信頼の追加ウィザード ページで、開始を選択します。
-
データソースの選択 ページで、オンラインまたはローカルネットワーク上で公開されている証明書利用者に関するデータのインポートを選択します。
-
フェデレーションメタデータアドレス (ホスト名またはURL)に
https://signin.aws.amazon.com/saml-metadata.xml
と入力します。メタデータ XML ファイルは、AWS を証明書利用者として記述する標準の SAML メタデータドキュメントです。 -
表示名の指定 ページで、表示名に値を入力します。
-
発行認可ルールの選択 ページで、この証明書利用者へのアクセスをすべてのユーザーに許可または拒否する発行認可ルールを選択します。
-
信頼の追加の準備 ページで、設定を確認します。
-
終了 ページで、ウィザードが終了すると、この証明書利用者信頼のための [クレームルールの編集] ダイアログが開きますを選択します。
-
コンテキスト (右クリック) メニューで、証明書利用者信頼を選択します。
-
証明書利用者については、コンテキスト (右クリック) メニューを開き、クレームルールの編集を選択します。クレームルールの編集 ページで、ルールを追加を選択します。
-
クレームルールテンプレートで、受信クレームの変換を選択し、ルールの編集 – NameIdページで、次の操作を行います。
クレームルール名に NameIdを入力します。
受信クレーム名で、Windows アカウント名を選択します。
発信クレーム名で、名前 IDを選択します。
発信者名 ID フォームで、永続的識別子を選択します。
すべてのクレーム値を通過を選択します。
-
クレームルールの編集 ページで、ルールの追加を選択します。ルールテンプレートの選択 ページの クレームルールテンプレートで、LDAP 属性をクレームとして送信を選択します。
-
ルールの設定 ページで、次の手順を実行します。
クレームルール名に、RoleSessionNameと入力します。
属性を保存するで アクティブディレクトリを選択します。
LDAP 属性で E-Mail-Addressesを選択します。
送信クレームタイプで https://aws.amazon.com/SAML/Attributes/RoleSessionNameを選択します。
-
クレームルールの編集 ページで、ルールの追加を選択します。ルールテンプレートの選択 ページの クレームルールテンプレートで、カスタムルールによるクレーム送信を選択します。
-
ルールの編集 - AD グループの取得 ページで、クレームルール名に AD グループの取得と入力します。
-
カスタムルールで、次のように入力します。
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);
-
クレームルールの編集 ページで、ルールの追加を選択します。ルールテンプレートの選択 ページの クレームルールテンプレートで、カスタムルールによるクレーム送信を選択します。
-
ルールの編集 - ロール ページの クレームルール名に ロールと入力します。
-
カスタムルールで、次のように入力します。
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 です。
-
federationmetadata.xml
ファイルをダウンロードしたことを確認します。ドキュメントの内容に無効な文字が含まれていないことを確認してください。これは、AWSとの信頼関係を設定する際に使用するメタデータファイルです。IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Azure エンタープライズアプリケーションの設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、IAM ユーザーガイドの IAM ID プロバイダー (コンソール) の作成と管理 を参照してください。
IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、IAM ユーザーガイドの SAML 用のロールの作成 を参照してください。
IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、IAM ユーザーガイドの IAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。
AD FS への認証用に JDBC を設定するには
AD FS シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。
JDBC ドライバーを使用する任意のクライアントを使用して AD FS シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、Amazon Redshift での JDBC ドライバーのバージョン 2.1 による接続の構成を参照してください。
たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。
jdbc:redshift:iam://
cluster-identifier
:us-west-1
/dev
SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。
-
接続プロファイルの選択 ページで、プロファイルグループを追加します (例:
ADFS
)。 -
接続プロファイルに、接続プロファイル名を入力します (例:
ADFS
)。 -
ドライバの管理を選択し、Amazon Redshiftを選択します。フォルダを開く アイコン、 ライブラリを選択し、適切な JDBC .jar ファイルを選択します。
-
接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。
ユーザーには、AD FS ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているアカウントのユーザー名です。
パスワードには、AD FS パスワードを入力します。
ドライバでは、Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。
URLには、
jdbc:redshift:iam://
と入力します。your-cluster-identifier
:your-cluster-region
/your-database-name
-
拡張プロパティを選択します。plugin_nameには、
com.amazon.redshift.plugin.AdfsCredentialsProvider
と入力します。この値は、認証方法として AD FS シングルサインオンを使用するドライバーに指定します。
-
AD FS への認証用に ODBC を設定するには
AD FS シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。
Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。
また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。
Windows については、Microsoft Windows に Amazon Redshift ODBC ドライバーをインストールして設定するを参照してください。
macOS については、macOS X に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Linux のについては、Linux に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Windows の場合、Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。
データソース名には、
を入力します。ODBC プロファイル名として使用するデータソース名を指定します。your-DSN
Auth typeで アイデンティティプロバイダー: SAMLを選択します。これは、ODBC ドライバが AD FS シングルサインオンを使用した認証に使用する認証方法です。
クラスター IDには、
と入力します。your-cluster-identifier
リージョンには、
と入力します。your-cluster-region
データベースには、
と入力します。your-database-name
ユーザーには、
と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している AD FS アカウントのユーザー名です。Auth type が ID プロバイダー: SAMLである場合にのみ使用します。your-adfs-username
[パスワード] には、
と入力します。Auth type が ID プロバイダー: SAMLである場合にのみ使用します。your-adfs-password
macOS および Linux では、次のように
odbc.ini
ファイルを編集します。注記
すべてのエントリでは、大文字と小文字は区別されません。
clusterid には、
と入力します。これは、作成された Amazon Redshift クラスターの名前です。your-cluster-identifier
リージョンには、
と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。your-cluster-region
データベースには、
と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。your-database-name
locale には、
en-us
と入力します。これは、エラーメッセージが表示される言語です。iam には、
1
と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。plugin_nameには、次のいずれかの操作を行います。
-
MFA 設定を使用した AD FS シングルサインオンの場合は、
BrowserSAML
と入力します。これは、ODBC ドライバが AD FS への認証に使用する認証方法です。 AD FS シングルサインオン設定の場合は、
ADFS
と入力します。これは、ODBC ドライバが Azure AD シングルサインオンを使用した認証に使用する認証方法です。
-
[uid] には、
と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、plugin_name が ADFSである場合にのみ使用します。your-adfs-username
[pwd] には、
と入力します。これは、plugin_name が ADFSである場合にのみ使用します。your-adfs-password
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 アカウントを設定するには
Ping Identity ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、クラスターの作成を参照してください。
Amazon Redshift を新しい SAML アプリケーションとして PingOne ポータルに追加します。詳細な手順については、Ping Identity のドキュメント
を参照してください。 マイアプリケーションに移動します。
アプリケーションの追加で、新しい SAML アプリケーションを選択します。
アプリケーション名には
Amazon Redshift
と入力します。プロトコルバージョンには、SAML v2.0を選択します。
カテゴリには、
を選択します。your-application-category
Assertion Consumer Service (ACS)には、
と入力します。これは、SAML アサーションがリダイレクトするローカルホストとポートです。your-redshift-local-host-url
エンティティ IDには、
urn:amazon:webservices
と入力します。署名には、アサーションに署名を選択します。
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を選択します。式に (.*)[\@](?:.*)と入力します。
グループアクセスで、必要に応じて次のグループアクセスを設定します。
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
セットアップを確認し、必要に応じて変更を加えます。
ブラウザ SAML プラグインのログイン URL として Single Sign-On (SSO) 用 URL の初期化 を使用します。
IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Ping Identity のセットアップ時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、IAM ユーザーガイドの IAMアイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。
IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、IAM ユーザーガイドの SAML 用のロールの作成 を参照してください。
IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、IAM ユーザーガイドの IAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。
Ping Identity への認証用に JDBC を設定するには
Ping Identity シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを設定します。
JDBC ドライバーを使用する任意のクライアントを使用して Ping Identity シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、Amazon Redshift での JDBC ドライバーのバージョン 2.1 による接続の構成を参照してください。
たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。
jdbc:redshift:iam://
cluster-identifier
:us-west-1
/dev
SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。
-
[Select Connection Profile] ページで、[Profile Group] を追加します (例:
Ping
)。 -
接続プロファイルに、
と入力します (例:your-connection-profile-name
Ping
)。 -
[Manage Drivers (ドライバーの管理)] を選択し、[Amazon Redshift] を選択します。フォルダを開く アイコン、 ライブラリを選択し、適切な JDBC .jar ファイルを選択します。
-
接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。
ユーザーに、PingOne ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している PingOne アカウントのユーザー名です。
パスワードに、PingOne のパスワードを入力します。
ドライバには、Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。
URLには、
jdbc:redshift:iam://
と入力します。your-cluster-identifier
:your-cluster-region
/your-database-name
-
拡張プロパティ を選択し、次のいずれかの操作を行います。
[login_url] には、
と入力します。この値は、ログインするための認証としてシングルサインオンを使用する URL を指定します。your-ping-sso-login-url
Ping Identity の場合は、plugin_nameに
com.amazon.redshift.plugin.PingCredentialsProvider
と入力します。この値は、認証方法として Ping Identity シングルサインオンを使用するドライバーに指定します。シングルサインオンを使用した Ping Identity の場合は、plugin_nameに
com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
と入力します。この値は、シングルサインオンを使用した Ping Identity PingOneを認証方法として使用するようにドライバーに指定します。
-
Ping Identity への認証用に ODBC を設定するには
Ping Identity PingOne シングルサインオンを使用して ODBC 経由でクラスターに接続するように、データベースクライアントを設定します。
Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。
また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。
Windows については、Microsoft Windows に Amazon Redshift ODBC ドライバーをインストールして設定するを参照してください。
macOS については、macOS X に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Linux のについては、Linux に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Windows の場合、Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。
データソース名には、
を入力します。ODBC プロファイル名として使用するデータソース名を指定します。your-DSN
Auth typeで、以下のいずれかを実行します。
Ping Identity の設定で、アイデンティティプロバイダー: Ping Federateを選択します。これは、ODBC ドライバが Ping Identity シングルサインオンを使用して認証するために使用する認証方法です。
MFA を使用した Ping Identity PingOne シングルサインオンの設定で、[Identity Provider: Browser SAML] (ID プロバイダー: ブラウザ SAML) を選択します。これは、ODBC ドライバーがシングルサインオンを使用した Ping Identity で認証するために使用する認証方法です。
クラスター IDには、
と入力します。your-cluster-identifier
リージョンには、
と入力します。your-cluster-region
データベースには、
と入力します。your-database-name
ユーザーには、
と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの PingOne アカウントのユーザー名です。これは、Auth type が アイデンティティプロバイダー: PingFederateである場合にのみ使用します。your-ping-username
[パスワード] には、
と入力します。これは、Auth type が アイデンティティプロバイダー: PingFederateである場合にのみ使用します。your-ping-password
Listen Portには、
と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。your-listen-port
応答タイムアウトには、
と入力します。IdP サーバーが応答を返すときにタイムアウトするまで待機する秒数です。最小秒数は 10 である必要があります。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。これは、ブラウザの SAML プラグインにのみ適用されます。the-number-of-seconds
ログイン URLには、
と入力します。これは、ブラウザの SAML プラグインにのみ適用されます。your-login-url
macOS および Linux では、次のように
odbc.ini
ファイルを編集します。注記
すべてのエントリでは、大文字と小文字は区別されません。
clusterid には、
と入力します。これは、作成された Amazon Redshift クラスターの名前です。your-cluster-identifier
リージョンには、
と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。your-cluster-region
データベースには、
と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。your-database-name
locale には、
en-us
と入力します。これは、エラーメッセージが表示される言語です。iam には、
1
と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。[plugin_name] には、次のいずれかの操作を行います。
-
Ping Identity 設定の場合は、
BrowserSAML
を入力します。これは、ODBC ドライバが Ping Identity に対して認証するために使用する認証方法です。 シングルサインオン設定を使用した Ping Identity の場合は、
Ping
と入力します。これは、ODBC ドライバーがシングルサインオンを使用した Ping Identity で認証するために使用する認証方法です。
-
[uid] には、
と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているMicrosoft Azure アカウントのユーザー名です。これは、plugin_name が Pingである場合にのみ使用します。your-ping-username
[pwd] には、
と入力します。これは、plugin_name が Pingである場合にのみ使用します。your-ping-password
[login_url] には、
と入力します。これは、SAML 応答を返すシングルサインオンの開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。your-login-url
[idp_response_timeout] には、
を入力します。これは、PingOne Identity からの応答を待機する秒単位の指定された期間です。これは、ブラウザの SAML プラグインにのみ適用されます。the-number-of-seconds
[listen_port] には、
と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。your-listen-port
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 アカウントを設定するには
Okta ユーザーが接続するための既存の Amazon Redshift クラスターを作成または使用します。接続を設定するには、クラスター識別子など、このクラスターの特定のプロパティが必要です。詳細については、クラスターの作成を参照してください。
Okta ポータルに新しいアプリケーションとして Amazon Redshift を追加します。詳細な手順については、Okta のドキュメント
を参照してください。 アプリケーションの追加を選択します。
アプリケーションの追加で、新しいアプリの作成を選択します。
新規追加のアプリケーション統合の作成 ページの プラットフォームで、ウェブを選択します。
サインオンメソッドで、SAML v2.0を選択します。
一般設定 ページで、アプリ名に
と入力します。これは、アプリケーションの名前です。your-redshift-saml-sso-name
SAML 設定 ページの シングルサインオンの URLに
と入力します。これは、SAML アサーションがリダイレクトするローカルホストとポート (例:your-redshift-local-host-url
http://localhost:7890/redshift/
) です。
シングルサインオン URL 値を 受取人URL と 送信先 URLとして使用します。
署名には、アサーションへの署名を選択します。
対象 URI (SP エンティティ ID)に、次の表に示すように、クレームに対して
urn:amazon:webservices
を入力します。[Advanced Settings] (高度な設定) セクションの [SAML Issuer ID] (SAML 発行者 ID) に、[View Setup Instructions] (セットアップ手順の表示) セクションに表示されている
を入力します。your-Identity-Provider-Issuer-ID
属性ステートメント セクションで、次の表に示すようにクレームを作成します。
クレーム名 値 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
App Embed Link セクションで、ブラウザ SAML プラグインのログイン URL として使用できる URL を見つけます。
IAM コンソールで、IAM SAML アイデンティティプロバイダーを作成します。指定したメタデータドキュメントは、Okta の設定時に保存したフェデレーションメタデータ XML ファイルです。詳細な手順については、IAM ユーザーガイドの IAM アイデンティティプロバイダー (コンソール) の作成と管理 を参照してください。
IAM コンソールで、SAML 2.0 フェデレーション用の IAM ロールを作成します。詳細なステップについては、IAM ユーザーガイドの SAML 用のロールの作成 を参照してください。
IAM コンソールで SAML 2.0 フェデレーション用に作成した IAM ロールにアタッチできる IAM ポリシーを作成します。詳細な手順については、IAM ユーザーガイドの IAM ポリシーの作成 (コンソール) を参照してください。Azure AD の例については、Microsoft Azure AD を使用した JDBC または ODBC シングルサインオン認証の設定を参照してください。
Okta への認証用に JDBC を設定するには
Okta シングルサインオンを使用して JDBC 経由でクラスターに接続するようにデータベースクライアントを構成します。
JDBC ドライバーを使用する任意のクライアントを使用して Okta シングルサインオンを使用して接続、または Java などの言語を使用してスクリプトを使用して接続することもできます。インストールおよび設定の詳細については、Amazon Redshift での JDBC ドライバーのバージョン 2.1 による接続の構成を参照してください。
たとえば、SQLWorkbench/J をクライアントとして使用できます。SQLWorkbench/J を設定する場合、データベースの URL は次の形式を使用します。
jdbc:redshift:iam://
cluster-identifier
:us-west-1
/dev
SQLWorkbench/J をクライアントとして使用する場合は、次の手順を実行します。
-
[Select Connection Profile] ページで、[Profile Group] を追加します (例:
Okta
)。 -
接続プロファイルに、
と入力します (例:your-connection-profile-name
Okta
)。 -
[Manage Drivers (ドライバーの管理)] を選択し、[Amazon Redshift] を選択します。フォルダを開く アイコン、 ライブラリを選択し、適切な JDBC .jar ファイルを選択します。
-
接続プロファイルの選択 ページで、次のように接続プロファイルに情報を追加します。
ユーザーには、Okta ユーザー名を入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。
パスワードには、Okta パスワードを入力します。
ドライバには、Amazon Redshift (com.amazon.redshift.jdbc.Driver)を選択します。
URLには、
jdbc:redshift:iam://
と入力します。your-cluster-identifier
:your-cluster-region
/your-database-name
-
拡張プロパティ を選択し、次のいずれかの操作を行います。
[login_url] には、
と入力します。この値は、Okta にログインするための認証としてシングルサインオンを使用する URL を指定します。your-okta-sso-login-url
Okta シングルサインオンの場合は、plugin_name に
com.amazon.redshift.plugin.OktaCredentialsProvider
と入力します。この値は、認証方法として Okta シングルサインオンを使用するドライバーに指定します。MFA を使用した Okta シングルサインオンの場合は、plugin_nameに
com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
と入力します。これにより、認証方法として MFA での Okta シングルサインオンを使用するようドライバーに指定します。
-
Okta への認証用に ODBC を設定するには
Okta シングルサインオンを使用して ODBC 経由でクラスターに接続するようにデータベースクライアントを構成します。
Amazon Redshift には Linux、Windows、macOS オペレーティングシステム用の ODBC ドライバが用意されています。ODBC ドライバをインストールする前に、SQL クライアントツールが 32 ビットであるか 64 ビットであるかを調べます。SQL クライアントツールの要件と一致する ODBC ドライバをインストールします。
また、オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバをインストールおよび設定します。
Windows については、Microsoft Windows に Amazon Redshift ODBC ドライバーをインストールして設定するを参照してください。
macOS については、macOS X に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Linux のについては、Linux に Amazon Redshift ODBC ドライバーをインストールするを参照してください。
Windows の場合、Amazon Redshift ODBC ドライバ DSN セットアップ ページの 接続設定で、次の情報を入力します。
データソース名には、
を入力します。ODBC プロファイル名として使用するデータソース名を指定します。your-DSN
Auth typeで、以下のいずれかを実行します。
Okta シングルサインオン設定の場合は、
Identity Provider: Okta
を選択します。これは、ODBC ドライバーが ODBC シングルサインオンを使用した認証に使用する認証方法です。MFA 設定を使用した Okta シングルサインオンの場合は、
Identity Provider: Browser SAML
を選択します。これは、ODBC ドライバーが MFA での Okta シングルサインオンを使用した認証に使用する認証方法です。
クラスター IDには、
と入力します。your-cluster-identifier
リージョンには、
と入力します。your-cluster-region
データベースには、
と入力します。your-database-name
ユーザーには、
と入力します。これは、使用認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用しているマイクロソフトの Okta アカウントのユーザー名です。[Auth type] が Identity Provider: Okta である場合にのみ使用します。your-okta-username
パスワードには、
と入力します。[Auth type] が Identity Provider: Okta である場合にのみ使用します。your-okta-password
macOS と Linux では、次のように
odbc.ini
ファイルを編集します。注記
すべてのエントリでは、大文字と小文字は区別されません。
clusterid には、
と入力します。これは、作成された Amazon Redshift クラスターの名前です。your-cluster-identifier
リージョンには、
と入力します。これは、作成された Amazon Redshift クラスターの AWS リージョンです。your-cluster-region
データベースには、
と入力します。これは、Amazon Redshift クラスター上でアクセスしようとしているデータベースの名前です。your-database-name
locale には、
en-us
と入力します。これは、エラーメッセージが表示される言語です。iam には、
1
と入力します。この値は、IAM 認証情報を使用して認証するためにドライバに指定します。plugin_nameには、次のいずれかの操作を行います。
-
MFA 設定を使用した Okta シングルサインオンの場合は、
BrowserSAML
と入力します。これは、ODBC ドライバーが MFA での Azure シングルサインオンを使用した認証に使用する認証方法です。 Okta シングルサインオン設定の場合は、
Okta
と入力します。これは、ODBC ドライバーが ODBC シングルサインオンを使用した認証に使用する認証方法です。
-
[uid] には、
と入力します。これは、認証しようとしているクラスターに対するアクセス許可を持つ、シングルサインオンに使用している Okta アカウントのユーザー名です。これは、[plugin_name] が Oktaである場合にのみ使用します。your-okta-username
pwdには、
と入力します。これは、[plugin_name] が Oktaである場合にのみ使用します。your-okta-password
login_urlには、
と入力します。これは、SAML 応答を返すシングルサインオンの開始 URL です。これは、ブラウザの SAML プラグインにのみ適用されます。your-login-url
idp_response_timeoutには、
を入力します。これは、PingOne からの応答を待機する秒単位の指定された時間です。これは、ブラウザの SAML プラグインにのみ適用されます。the-number-of-seconds
[listen_port] には、
と入力します。これは、ローカルサーバーがリッスンしているポートです。デフォルト値は 7890 です。これは、ブラウザの SAML プラグインにのみ適用されます。your-listen-port
macOS および Linux では、プロファイル設定を編集して、次のエクスポートも追加できます。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini