Kerberos Authentication for OCI Database with PostgreSQL
OCI Database with PostgreSQLデータベース・システムでKerberos認証を有効化および管理する方法について学習します。
このトピックでは、PostgreSQLデータベース・システムでKerberos認証を有効化、管理および無効化するためのKerberos認証、その利点、前提条件、制限およびステップバイステップの手順について説明します。
Kerberosは業界標準の認証プロトコルで、パスワードではなく暗号化チケットを使用して、セキュアで一元化されたクライアント/サーバー認証を提供します。KerberosとOCI Database with PostgreSQLを統合することで、一元化された資格証明管理を活用し、セキュリティを強化し、パスワードベースの認証に関連するリスクを軽減できます。
Kerberos認証は、PostgreSQLの組み込みGSSAPIを介してサポートされます。
- 一元化された資格証明管理およびシングル・サインオン(SSO)機能。
- ネットワーク認証フローからパスワードを消去します。
- Active DirectoryやMIT Kerberosなどの一般的なエンタープライズ・アイデンティティ・システムと統合されます。
ワークフロー
Kerberosは、秘密キー暗号化を使用した強力なクライアント/サーバー認証用に設計されたネットワーク認証プロトコルです。一般的なワークフローは次のとおりです。
- 信頼できるKey Distribution Center (KDC)で認証し、チケット認可チケット(TGT)を受け取ります。
- PostgreSQLデータベースに接続する場合は、KDCからサーバーへのサービス・チケットを提示します。
- PostgreSQLサーバーは、セキュアなキータブ・ファイルを使用してチケットを検証します。パスワードはネットワーク経由で送信されません。
前提条件
- Active DirectoryやMIT Kerberosなどの操作可能な Kerberosインフラストラクチャ。
- OCI Vaultへのアクセスおよび必要なOCI権限。
- KDCおよびOCIリソースへの特権アクセス。
- PostgreSQLのユーザー/ロール管理に精通しています。
Kerberos認証の設定
次のタスクを実行して、OCI Database with PostgreSQLのKerberos認証を設定します。
ステップ1: KDCでのサービス・プリンシパルとキータブの作成
Active Directory
MIT Kerberos
kadmin.local -q "addprinc -randkey postgres/<database_fqdn>@your.realm"
kadmin.local -q "ktadd -k odsp.krb5.keytab postgres/<database_fqdn>@your.realm"ステップ2: OCI VaultにKeytabを格納する
ステップ3: PostgreSQLデータベース・システムでのKerberosの有効化
- 「Kerberos Authentication」を「ENABLED」に設定します。
- Kerberosレルム名、キータブ・シークレットOCIDおよびバージョンを指定します。
postgresql.confおよびpg_hba.confが更新され、PostgreSQLがリロードされます。ステップ4: Kerberos認証用のユーザーの指定
Kerberosクライアントの使用法
クライアントシステムで、次のコマンドを実行します。
kinit kerb_user@your.realm
psql "sslmode=prefer host=<database_fqdn> dbname=<datbase_name> user=kerb_user@your.realm"
Kerberos認証の無効化
CLIまたはAPIを使用して、PostgreSQLデータベース・システムを編集し、Kerberos認証をDISABLEDに設定します。詳細は、「データベース・システムの編集」を参照してください。
このアクションは、キータブ構成を削除し、Kerberos認証を無効にします。
Keytabのローテーションとメンテナンス
セキュリティ・ポリシーに従って、Kerberosサービス・プリンシパル資格証明を定期的にローテーションします。
中断を最小限に抑えながら Kerberos資格をローテーションするには、2つの手順として実行する必要があります。
- 最初に、新しいキータブをOCI Vaultの新しいシークレットとして追加します。
- PostgreSQLデータベース・システムを更新して、両方のキータブ(新しいキータブ・シークレットは
currentCredential、既存のキータブ・シークレットはbackupCredential)を含めます。
しばらくして、PostgreSQLデータベース・システムを1つのキータブ(新しいキータブ・シークレット)のみを持つように更新します(currentCredential、backupCredential=null)。
キータブ/キーのローテーション中に認証が短時間中断する可能性があります。
トラブルシューティング
発生する問題に対処するには、次のタスクを実行します。
- PostgreSQLサービス・ログでKerberos認証の失敗を確認します。
- PostgreSQLデータベース・システム、クライアントおよびKDC間でクロックが同期されていることを確認します。
- 認証の問題が発生した場合は、適切なSPN、キータブおよび暗号化設定を確認してください。
制限事項
OCI Database with PostgreSQLでのKerberos認証の使用に関する次の制限事項に注意してください:
- Kerberos認証は、セキュリティの追加レイヤーです。パスワード認証は引き続き使用できます。
- データベース・アクセスを必要とする各Kerberosプリンシパルには、対応するPostgreSQLユーザー/ロールが作成され、odsp_kerberosロールが付与されている必要があります。
- PostgreSQLはグループベースの認証をサポートしていないため、KerberosプリンシパルごとにPostgreSQLユーザーを作成する必要があります。
- すべてのサービス・プリンシパル(SPN)およびキータブ管理は、お客様の責任です。
- Kerberosはクロックドリフトに敏感です。NTPまたは同等のサービスがどこでも実行されていることを確認します。
- キータブのローテーション中、特にMIT Kerberos環境では、簡単な認証が失敗する可能性があります。
- KDCの停止により、Kerberosで認証されたユーザーがサインインできなくなりますが、パスワードで認証されたユーザーは影響を受けません。
- PostgreSQLデータベース・システムには、キータブを含むOCI Vaultのシークレットにアクセスする権限が必要です。