PostgreSQL を Kerberos 認証と接続する - Amazon Relational Database Service

PostgreSQL を Kerberos 認証と接続する

pgAdmin インターフェイスまたは psql などのコマンドラインインターフェイスを使用して、Kerberos 認証で PostgreSQL に接続できます。接続の詳細については、「PostgreSQL データベースエンジンを実行する DB インスタンスへの接続 」を参照してください。エンドポイント、ポート番号、および接続に必要なその他の詳細情報を取得する方法について詳細は、「ステップ 3: PostgreSQL DB インスタンスに接続する」を参照してください。

pgAdmin を使用して、PostgreSQL を Kerberos 認証に接続するには、以下のステップを実行します。

  1. クライアントコンピュータの pgAdmin アプリケーションを起動します。

  2. [Dashboard] (ダッシュボード) タブで、[Add New Server] (新しいサーバーの追加) を選択します。

  3. [Create - Server (作成 - サーバー)] ダイアログボックスで、[General (全般)] タブに名前を入力し、pgAdmin のサーバーを特定します。

  4. [Connection] (接続) タブで、 RDS for PostgreSQL データベースから次の情報を入力します。

    • [Host] (ホスト) では、のエンドポイントを入力します。RDS for PostgreSQL DB インスタンス。エンドポイントは次のようになります。

      RDS-DB-instance.111122223333.aws-region.rds.amazonaws.com

      Windows クライアントからオンプレミスの Microsoft Active Directory に接続するには、ホストエンドポイントで rds.amazonaws.com の代わりに AWS Managed Active Directory のドメイン名を使用します。例えば、AWS Managed Active Directory のドメイン名が corp.example.com であるとします。この場合、[Host] (ホスト) では、エンドポイントは次のように指定されます。

      RDS-DB-instance.111122223333.aws-region.corp.example.com
    • [Port (ポート)] に、割り当てられたポートを入力します。

    • [Maintenance database (メンテナンスデータベース)] に、クライアントが接続する初期データベースの名前を入力します。

    • [ユーザーネーム] に、「 ステップ 7: Kerberos プリンシパル用の PostgreSQL ユーザーを作成する 」で Kerberos 認証用に入力したユーザーネームを入力します。

  5. [保存] を選択します。

psql を使用して、PostgreSQL を Kerberos 認証に接続するには、以下のステップを実行します。

  1. コマンドプロンプトで、次のコマンドを実行します。

    kinit username

    username をユーザー名で置き換えます。プロンプトで Microsoft Active Directory に保存されているユーザーのパスワードを入力します。

  2. PostgreSQL DB インスタンスがパブリックにアクセス可能な VPC を使用している場合は、EC2 クライアントの /etc/hosts ファイルに、DB インスタンスエンドポイントの IP アドレスを記述します。例えば、次のコマンドは IP アドレスを取得し、それを /etc/hosts ファイルに入れます。

    % dig +short PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com ;; Truncated, retrying in TCP mode. ec2-34-210-197-118.AWS-Region.compute.amazonaws.com. 34.210.197.118 % echo " 34.210.197.118 PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts

    Windows クライアントからオンプレミスの Microsoft Active Directory を使用している場合は、特別なエンドポイントを使用して接続する必要があります。ホストエンドポイントで Amazon ドメイン rds.amazonaws.com を使用する代わりに、AWS Managed Active Directory のドメイン名を使用します。

    例えば、AWS Managed Active Directory のドメイン名が corp.example.com であるとします。次に、エンドポイントの形式 PostgreSQL-endpoint.AWS-Region.corp.example.com を使用して、これを /etc/hosts ファイルに配置します。

    % echo " 34.210.197.118 PostgreSQL-endpoint.AWS-Region.corp.example.com" >> /etc/hosts
  3. 次の psql コマンドを使用して、Active Directory と統合されている PostgreSQL DB インスタンスにログインします。

    psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com postgres

    オンプレミスの Active Directory を使用して、Windows クライアントから PostgreSQL DB クラスターにログインするには、前のステップ (corp.example.com) のドメイン名を指定して次の psql コマンドを使用します。

    psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.corp.example.com postgres