Kerberos 認証を使用した Aurora MySQL への接続 - Amazon Aurora

Kerberos 認証を使用した Aurora MySQL への接続

エラーを回避するため、Unix プラットフォームではバージョン 8.0.26 以降、Windows では 8.0.27 以降の MySQL クライアントを使用してください。

Aurora MySQL Kerberos ログインを使用して DB クラスターに接続する

Kerberos 認証で Aurora MySQL に接続するには、ステップ 6: Kerberos 認証を使用する Aurora MySQL ユーザーを作成する の手順に従って作成したデータベースユーザーとしてログインします。

コマンドプロンプトで、Aurora MySQL DB クラスターに関連付けられているエンドポイントの 1 つに接続します。パスワードの入力を求められたら、そのユーザー名に関連付けられている Kerberos パスワードを入力します。

Kerberos で認証すると、ticket-granting ticket (TGT) がまだ存在しない場合は、TGT が生成されます。authentication_kerberos プラグインによって TGT を使用してサービスチケットを取得し、そのチケットが Aurora MySQL データベースサーバーに提示されます。

MySQL クライアントを使用すると、Windows または Unix を使用して Kerberos 認証によって Aurora MySQL に接続できます。

接続するには、次のいずれかの方法を使用します。

  • TGT を手動で入手します。この場合、MySQL クライアントにパスワードを指定する必要はありません。

  • Active Directory ログイン用のパスワードを MySQL クライアントに直接指定します。

クライアント側のプラグインは、Unix プラットフォームでは MySQL クライアントバージョン 8.0.26 以降でサポートされています。

TGT を手動で取得して接続するには
  1. コマンドラインインターフェイスで、次のコマンドを使用して TGT を取得します。

    kinit user_name
  2. 次の mysql コマンドを使用して、DB クラスターの DB インスタンスエンドポイントにログインします。

    mysql -h DB_instance_endpoint -P 3306 -u user_name -p
    注記

    DB インスタンスでキータブがローテーションされると、認証が失敗する可能性があります。この場合は、kinit を再実行して新しい TGT を取得します。

直接接続するには
  1. コマンドラインインターフェイスで、次の mysql コマンドを使用して、DB クラスターの DB インスタンスエンドポイントにログインします。

    mysql -h DB_instance_endpoint -P 3306 -u user_name -p
  2. Active Directory ユーザーのパスワードを入力します。

Windows では、通常、認証はログイン時に行われるため、Aurora MySQL DB クラスターに接続するために TGT を手動で取得する必要はありません。データベースユーザー名の大文字と小文字は、Active Directory のユーザーのものと一致する必要があります。例えば、Active Directory のユーザーが Admin として表示されている場合、データベースユーザー名は Admin である必要があります。

クライアント側のプラグインは、Windows では MySQL クライアントバージョン 8.0.27 以降でサポートされています。

直接接続するには
  • コマンドラインインターフェイスで、次の mysql コマンドを使用して、DB クラスターの DB インスタンスエンドポイントにログインします。

    mysql -h DB_instance_endpoint -P 3306 -u user_name

Aurora グローバルデータベースで Kerberos 認証を使用する

Aurora MySQL の Kerberos 認証は、Aurora グローバルデータベースでサポートされています。プライマリ DB クラスターの Active Directory を使用してセカンダリ DB クラスターのユーザーを認証するには、Active Directory をセカンダリ AWS リージョン に複製します。プライマリクラスターと同じドメイン ID を使用して、セカンダリクラスターの Kerberos 認証を有効にします。AWS Managed Microsoft AD レプリケーションは、エンタープライズバージョンの Active Directory でのみサポートされます。詳細については、AWS Directory Service 管理ガイドの「マルチリージョンレプリケーション」を参照してください。

RDS for MySQL から Aurora MySQL への移行

Kerberos 認証を有効にした RDS for MySQL から Aurora MySQL への移行後、auth_pam プラグインで作成されたユーザーを authentication_kerberos プラグインを使用するように変更します。次に例を示します。

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

チケットキャッシュの防止

MySQL クライアントアプリケーションの起動時に有効な TGT が存在しない場合、アプリケーションは TGT を取得してキャッシュできます。TGT がキャッシュされないようにするには、/etc/krb5.conf ファイルに設定パラメータを設定します。

注記

この設定は UNIX を実行しているクライアントホストにのみ適用され、Windows には適用されません。

TGT キャッシュを防止するには
  • 次のように、/etc/krb5.conf[appdefaults] セクションを追加します。

    [appdefaults] mysql = { destroy_tickets = true }

Kerberos 認証用のログ記録

AUTHENTICATION_KERBEROS_CLIENT_LOG 環境変数によって、Kerberos 認証のログ記録レベルを設定します。ログはクライアント側のデバッグに使用できます。

指定できる値は 1~5 です。ログメッセージは、標準エラー出力に書き込まれます。次の表に各ログ記録レベルの説明を示します。

ログ記録レベル 説明
1 または未設定 ログ記録なし
2 エラーメッセージ
3 エラーと警告メッセージ
4 エラー、警告、情報メッセージ
5 エラー、警告、情報メッセージ、デバッグメッセージ