Babelfish で Active Directory セキュリティグループを使用して Kerberos 認証を設定する
Babelfish バージョン 4.2.0 以降では、Active Directory セキュリティグループを使用して Babelfish の kerberos 認証を設定できます。Active Directory を使用して kerberos 認証の設定を完了するための前提条件は次のとおりです。
「Babelfish を使用した Kerberos 認証」に記載されているすべてのステップに従う必要があります。
DB インスタンスが Active Directory に関連付けられていることを確認します。これを確認するために、ドメインメンバーシップのステータスをコンソールで表示するか、describe-db-instances AWS CLI コマンドを実行すると表示できます。
DB インスタンスのステータスは kerberos 対応である必要があります。ドメインメンバーシップの理解についての詳細は、「ドメインのメンバーシップを理解する」を参照してください。
NetBIOS ドメイン名と DNS ドメイン名の間のマッピングを確認するには、次のクエリを使用します。
SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
先に進む前に、個々のログインを使用した Kerberos 認証が期待どおりに機能することを確認します。Active Directory ユーザーとして Kerberos 認証を使用する接続は成功する必要があります。問題が発生した場合は、「頻繁に発生するエラー」を参照してください。
pg_ad_mapping 拡張機能のセットアップ
「pg_ad_mapping 拡張機能のセットアップ」に記載されているすべてのステップに従う必要があります。拡張機能がインストールされていることを確認するには、TDS エンドポイントから次のクエリを実行します。
1>
SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping';2>
GO extname extversion ------------- ---------- pg_ad_mapping 0.1 (1 rows affected)
グループログインの管理
「ログインの管理」に記載されている手順に従って、グループログインを作成します。メンテナンスを容易にするために、ログイン名は Active Directory (AD) セキュリティグループ名と同じにすることをお勧めしますが、必須ではありません。次に例を示します。
CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]
監査とログ記録
AD セキュリティプリンシパル ID を決定するには、次のコマンドを使用します。
1>
select suser_name();2>
GO suser_name ---------- corp\user1 (1 rows affected)
現在、AD ユーザー ID はログに表示されません。log_connections
パラメータを有効にすると、DB セッションの確立をログに記録できます。詳細については、「log_connections」を参照してください。出力には、次の例に示すように、プリンシパルとして AD ユーザー ID が含まれます。この出力に関連付けられたバックエンド PID は、属性アクションを実際の AD ユーザーに戻すのに役立ちます。
bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)