

# Kerberos 認証を使用した Aurora MySQL への接続
<a name="aurora-mysql-kerberos-connecting"></a>

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

## Aurora MySQL Kerberos ログインを使用して DB クラスターに接続する
<a name="aurora-mysql-kerberos-connecting.login"></a>

Kerberos 認証で Aurora MySQL に接続するには、[ステップ 6: Kerberos 認証を使用する Aurora MySQL ユーザーを作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins) の手順に従って作成したデータベースユーザーとしてログインします。

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

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

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

### Unix
<a name="aurora-mysql-kerberos-connecting.login.unix"></a>

接続するには、次のいずれかの方法を使用します。
+ TGT を手動で入手します。この場合、MySQL クライアントにパスワードを指定する必要はありません。
+ Active Directory ログイン用のパスワードを MySQL クライアントに直接指定します。

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

**TGT を手動で取得して接続するには**

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

   ```
   kinit {{user_name}}
   ```

1. 次の `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
   ```

1. Active Directory ユーザーのパスワードを入力します。

### Windows
<a name="aurora-mysql-kerberos-connecting.login.win"></a>

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 認証を使用する
<a name="aurora-mysql-kerberos-connecting.global"></a>

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

## RDS for MySQL から Aurora MySQL への移行
<a name="aurora-mysql-kerberos-connecting.rds"></a>

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

```
ALTER USER {{user_name}} IDENTIFIED WITH 'authentication_kerberos' BY '{{realm_name}}';
```

## チケットキャッシュの防止
<a name="aurora-mysql-kerberos.destroy-tickets"></a>

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

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

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

  ```
  [appdefaults]
    mysql = {
      destroy_tickets = true
    }
  ```

## Kerberos 認証用のログ記録
<a name="aurora-mysql-kerberos.logging"></a>

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

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


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