

# Aurora MySQL での Kerberos 認証の使用
<a name="aurora-mysql-kerberos"></a>

Aurora MySQL DB クラスターに接続するユーザーを Kerberos 認証を使用して認証できるようになりました。そのためには、Kerberos 認証に AWS Directory Service for Microsoft Active Directory を使用するように DB クラスターを設定します。AWS Directory Service for Microsoft Active Directory は AWS Managed Microsoft AD とも呼ばれます。これは、Directory Service で利用できる機能です。詳細については、「*AWS Directory Service 管理ガイド*」の「[Directory Service とは](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)」を参照してください。

まず、ユーザー認証情報を格納する AWS Managed Microsoft AD ディレクトリを作成します。次に、Active Directory のドメインおよびその他の情報を Aurora MySQL DB クラスターに提供します。ユーザーが Aurora MySQL クラスターを使用して認証を実行すると、認証要求は AWS Managed Microsoft AD ディレクトリに転送されます。

同じディレクトリにすべての認証情報を保持することで時間と労力を節約できます。この方法により、複数の DB クラスターの認証情報を一元的に保存および管理できます。また、ディレクトリを使用することで、セキュリティプロファイル全体を向上できます。

また、独自のオンプレミスの Microsoft Active Directory から認証情報にアクセスできます。そのためには、信頼するドメイン関係を作成して、AWS Managed Microsoft AD ディレクトリがオンプレミスの Microsoft Active Directory を信頼するようにします。これにより、ユーザーは、オンプレミスネットワークのワークロードにアクセスするときと同じ Windows シングルサインオン (SSO) の使い方で、Aurora MySQL クラスターにアクセスできます。

データベースは Kerberos、AWS Identity and Access Management (IAM)、または Kerberos 認証と IAM 認証の両方。ただし、Kerberos 認証と IAM 認証では異なる認証方法が提供されるため、特定のユーザーは、どちらか一方の認証方法のみを使用してデータベースにログインできますが、両方を使用することはできません。IAM 認証の詳細については、「[ の IAM データベース認証](UsingWithRDS.IAMDBAuth.md)」を参照してください。

**Contents**
+ [Aurora MySQL DB クラスターの Kerberos 認証の概要](#aurora-mysql-kerberos-setting-up-overview)
+ [Aurora MySQL の Kerberos 認証の制限事項](#aurora-mysql-kerberos.limitations)
+ [Aurora MySQL DB クラスターの Kerberos 認証の設定](aurora-mysql-kerberos-setting-up.md)
  + [ステップ 1: AWS Managed Microsoft AD を使用してディレクトリを作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-directory)
  + [ステップ 2: (オプション) オンプレミスの Active Directory の信頼を作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-trust)
  + [ステップ 3: Amazon Aurora 用の IAM ロールを作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.CreateIAMRole)
  + [ステップ 4: ユーザーを作成して設定する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-users)
  + [ステップ 5: Aurora MySQL DB クラスターを作成または変更する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-modify)
  + [ステップ 6: Kerberos 認証を使用する Aurora MySQL ユーザーを作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins)
    + [既存の Aurora MySQL ログインの変更](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos.modify-login)
  + [ステップ 7: MySQL クライアントを設定する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.configure-client)
  + [ステップ 8: (オプション) 大文字と小文字を区別しないユーザー名比較の設定](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.case-insensitive)
+ [Kerberos 認証を使用した Aurora MySQL への接続](aurora-mysql-kerberos-connecting.md)
  + [Aurora MySQL Kerberos ログインを使用して DB クラスターに接続する](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.login)
  + [Aurora グローバルデータベースで Kerberos 認証を使用する](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.global)
  + [RDS for MySQL から Aurora MySQL への移行](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.rds)
  + [チケットキャッシュの防止](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos.destroy-tickets)
  + [Kerberos 認証用のログ記録](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos.logging)
+ [ドメイン内の DB クラスターの管理](aurora-mysql-kerberos-managing.md)
  + [ドメインのメンバーシップを理解する](aurora-mysql-kerberos-managing.md#aurora-mysql-kerberos-managing.understanding)

## Aurora MySQL DB クラスターの Kerberos 認証の概要
<a name="aurora-mysql-kerberos-setting-up-overview"></a>

Aurora MySQL DB クラスターに Kerberos 認証を設定するには、以下の一般的なステップを完了します。これらのステップについては、後で詳細を説明します。

1. AWS Managed Microsoft AD を使用して AWS Managed Microsoft AD ディレクトリを作成します。AWS マネジメントコンソール、AWS CLI、Directory Service を使用して、ディレクトリを作成できます。詳しい手順については、AWS Directory Service 管理ガイドの「[AWS Managed Microsoft AD ディレクトリの作成](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html)」を参照してください。

1. マネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する AWS Identity and Access Management (IAM) ロールの作成 このロールにより Amazon Aurora はディレクトリを呼び出すことができます。

   ロールによるアクセスを許可するには、AWS Security Token Service (AWS STS) エンドポイントを AWS アカウントの AWS リージョン でアクティベートする必要があります。AWS STS エンドポイントは、すべての AWS リージョン でデフォルトでアクティブになっているため、他のアクションを実行せずに、エンドポイントを使用することができます。詳細については、*IAM ユーザーガイド*の「[AWS リージョン でのアクティブ化と非アクティブ化](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate)」を参照してください。

1. Microsoft Active Directory のツールを使用して、AWS Managed Microsoft AD ディレクトリでユーザーとグループを作成し、設定します。Active Directory にユーザーを作成する方法の詳細については、*AWS 管理ガイド*の「[AWS Directory Service マネージド Microsoft AD でユーザーとグループを管理する](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html)」を参照してください。

1. Aurora MySQL DB クラスターを作成または変更する 作成リクエストで CLI または RDS API を使用する場合は、`Domain` パラメータでドメイン識別子を指定します。ディレクトリの作成時に生成された `d-*` 識別子と、作成した IAM ロールの名前を使用します。

   既存の Aurora MySQL DB クラスターを変更して Kerberos 認証を使用する場合は、DB クラスターのドメインパラメータと IAM ロールパラメータを設定します。ドメインディレクトリと同じ VPC で DB クラスターを見つけます。

1. Amazon RDS プライマリユーザー認証情報を使用して、Aurora MySQL DB クラスターに接続します。[ステップ 6: Kerberos 認証を使用する Aurora MySQL ユーザーを作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins) の手順に従って、Aurora MySQL でデータベースユーザーを作成します。

   この方法で作成したユーザーは、Kerberos 認証を使用して Aurora MySQL DB クラスターにログインできます。詳細については、「[Kerberos 認証を使用した Aurora MySQL への接続](aurora-mysql-kerberos-connecting.md)」を参照してください。

オンプレミスまたはセルフホスト型の Microsoft Active Directory を使用して Kerberos 認証を取得するには、*フォレストの信頼関係*を確立する必要があります。フォレストの信頼関係とは、2 つのドメイングループ間の信頼関係です。信頼は、一方向または双方向にすることができます。Directory Service を使用してフォレストの信頼関係を設定する方法の詳細については、*AWS Directory Service 管理ガイド*の「[信頼関係を作成する場合](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html)」を参照してください。

## Aurora MySQL の Kerberos 認証の制限事項
<a name="aurora-mysql-kerberos.limitations"></a>

Aurora MySQL の Kerberos 認証には、以下の制限が適用されます。
+ Kerberos 認証は、Aurora MySQL バージョン 3.03 以降でサポートされています。

  AWS リージョン でのサポートの詳細については、「[Aurora MySQL で Kerberos 認証を使用する](Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.amy)」を参照してください。
+ Aurora MySQL で Kerberos 認証を使用するには、MySQL クライアントまたはコネクタが Unix プラットフォームではバージョン 8.0.26 以上、Windows では 8.0.27 以降を使用する必要があります。それ以外の場合は、クライアント側の `authentication_kerberos_client` プラグインが利用できず、認証できません。
+ AWS Managed Microsoft AD は、Aurora MySQL でのみサポートされています。ただし、同じ AWS リージョン の異なるアカウントによって所有されている共有の Managed Microsoft AD ドメインに、Aurora MySQL DB クラスターを接続できます。

  また、独自のオンプレミスの Active Directory を使用できます。詳細については、「[ステップ 2: (オプション) オンプレミスの Active Directory の信頼を作成する](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-trust)」を参照してください。
+ MySQL クライアントから、または Windows オペレーティングシステムのドライバーから Aurora MySQL クラスターに接続するユーザーを Kerberos を使用して 認証する場合、デフォルトでは、データベースユーザー名の大文字と小文字は Active Directory のユーザーのものと一致する必要があります。例えば、Active Directory のユーザーが `Admin` として表示されている場合、データベースユーザー名は `Admin` である必要があります。

  ただし、`authentication_kerberos` プラグインでは、大文字と小文字を区別しないユーザー名の比較が可能になりました。詳細については、「[ステップ 8: (オプション) 大文字と小文字を区別しないユーザー名比較の設定](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.case-insensitive)」を参照してください。
+ `authentication_kerberos` プラグインをインストールする機能を有効にした後は、リーダー DB インスタンスを再起動する必要があります。
+ `authentication_kerberos` プラグインをサポートしていない DB インスタンスに複製すると、複製が失敗する可能性があります。
+ Aurora グローバルデータベースで Kerberos 認証を使用するには、グローバルデータベース内のすべての DB クラスターに認証を設定する必要があります。
+ ドメイン名は 62 文字未満にする必要があります。
+ Kerberos 認証を有効にした後は、DB クラスターポートを変更しないでください。ポートを変更すると、Kerberos 認証が機能しなくなります。