すべてのプロダクト
Search
ドキュメントセンター

PolarDB:PolarDB for MySQLクラスターを自己管理型ADドメインに接続する

最終更新日:Aug 21, 2024

このトピックでは、Elastic Compute Service (ECS) インスタンスにActive Directory (AD) ドメインコントローラーを設定する方法について説明します。 このトピックでは、Kerberos認証に基づいてPolarDB for MySQLクラスターをADドメインに接続する方法についても説明します。

背景情報

ADは、Microsoftが提供するディレクトリサービスです。 ディレクトリは、同じLAN上のオブジェクトに関する情報を格納する階層構造です。 企業は、コンピュータアカウント、ユーザアカウント、グループなどのデータをディレクトリに格納できます。 このようにして、企業はデータのセキュリティを向上させ、より便利な方法でデータを管理することができます。

PolarDB for MySQLはADとの統合を提供します。 ADドメイン設定を構成して、PolarDB for MySQLクラスターをADドメインに接続し、Kerberos認証を有効にすることができます。

バージョン要件

PolarDB for MySQLクラスターは、次の要件を満たす必要があります。

  • データベースエンジンのバージョン: MySQL 8.0.1。

  • マイナーバージョン: V8.0.1.1.44.2以降。 マイナーバージョンの更新方法の詳細については、「マイナーバージョンの更新」をご参照ください。

  • エディション: Enterprise Edition。

  • シリーズ: Cluster Edition。

使用上の注意

説明

機能はカナリアリリースにあります。 トライアルを申し込むことができます。

前提条件

説明

PolarDB for MySQLクラスターにアクセスするようにADドメインとクライアント環境がすでに設定されている場合は、ECSインスタンスを作成する必要なく、既存のADドメイン設定を直接使用できます。 詳細については、このトピックの「手順3: PolarDB For MySQLクラスターのADドメインサーバーの設定」をご参照ください。

  • ADドメインコントローラーをホストするECSインスタンスが作成されます。 詳細については、「コンソールでのECSインスタンスの作成と管理 (エクスプレスバージョン) 」をご参照ください。 PolarDB for MySQLクラスターは、プライベートネットワークを介して自己管理型ADドメインに接続する必要があります。 したがって、ECSインスタンスは次の条件を満たす必要があります。

    • システムイメージのバージョンはWindows Server 2016以降で、言語は英語です。

  • PolarDB for MySQLクラスターにアクセスするクライアントをホストするECSインスタンスが作成されます。 詳細については、「コンソールでのECSインスタンスの作成と管理 (エクスプレスバージョン) 」をご参照ください。 PolarDB for MySQLクラスターにアクセスするクライアントをホストするECSインスタンスは、次の条件を満たす必要があります。

    • PolarDB for MySQLクラスターにアクセスするクライアントをホストするECSインスタンスは、PolarDB for MySQLクラスターと同じ仮想プライベートクラウド (VPC) にあります。

    • PolarDB for MySQLクラスターにアクセスするクライアントをホストするECSインスタンスは、ADドメインコントローラーをホストするECSインスタンスと同じVPCにあります。

  • Alibaba Cloudアカウントは、PolarDB for MySQLコンソールへのログインに使用されます。

手順

手順1: (オプション) ECSインスタンスでのADドメインコントローラーの設定

  1. Windows Server 2022を実行するECSインスタンスにリモートでログインします。

    説明

    ADドメインコントローラーは、Windows Serverを実行するECSインスタンスにインストールする必要があります。 Windows Server 2016以降を使用することを推奨します。 この例では、Windows Server 2022が使用されます。

  2. サーバーマネージャーを検索して開きます。

  3. [ロールと機能の追加] をクリックし、次の表に示すパラメーターを設定します。

    ページ名

    設定

    インストールタイプ

    デフォルト設定を維持します。

    サーバーの選択

    デフォルト設定を維持します。

    サーバーの役割

    • [Active Directoryドメインサービス] を選択します。 表示されるダイアログボックスで、[機能の追加] をクリックします。

    • [DNSサーバー] を選択します。 表示されるダイアログボックスで、[機能の追加] をクリックします。 コンピューターが固定IPアドレスを使用していることを確認してください。 IPアドレスが動的に変更されると、DNSサーバーは使用できなくなります。

    image

    機能

    デフォルト設定を維持します。

    広告DS

    デフォルト設定を維持します。

    DNSサーバー

    デフォルト設定を維持します。

    確認

    [インストール] をクリックします。

  4. インストールが完了したら、[閉じる] をクリックします。

  5. 左側のナビゲーションウィンドウで、[AD DS] をクリックします。 ページの右上隅にある [詳細] をクリックします。

    image

  6. [操作] 列の [このサーバーをドメインに昇格] をクリックします。 次の表で説明するパラメーターを設定します。

    image

    ページ名

    設定

    デプロイメントの設定

    [新しいフォレストの追加] を選択し、ドメイン名を指定します。

    image

    ドメインコントローラのオプション

    ディレクトリサービス復元モード (DSRM) で使用するパスワードを指定および確認します。

    image

    DNSオプション

    [DNS委任の作成] をクリアします。

    image

    追加オプション

    デフォルト設定を維持します。

    パス

    デフォルト設定を維持します。

    レビューオプション

    デフォルト設定を維持します。

    前提条件チェック

    [インストール] をクリックします。

    説明

    インストールが完了すると、システムが再起動します。

  7. システムが再起動したら、サーバーマネージャーを再度検索して開きます。

  8. 左側のナビゲーションウィンドウで、[AD DS] をクリックします。 サーバーリストで、管理するドメインコントローラーサーバーを右クリックし、[Active Directoryユーザーとコンピューター] を選択して、ADユーザー管理モジュールに移動します。

    image

  9. 左側のナビゲーションウィンドウで、[polardb.domain] > [ユーザー] を選択します。 [ユーザー] を右クリックし、[新規] > [ユーザー] を選択します。

    image

  10. ログインユーザー名 (polardbmtestuserなど) を指定し、[次へ] をクリックします。

    image

  11. ログインパスワードを指定し、[パスワードの有効期限はありません] を選択します。 [次へ] および [完了] をクリックします。 polardbmtestuserという名前のユーザーが作成されます。

    image

  12. 作成したユーザーをダブルクリックします。 [アカウントオプション] セクションで、Kerberos AES暗号化のサポートを有効にするオプションを選択します。

    image

  13. 前の手順を繰り返して、polardbmという名前の別のユーザーを作成します。 この例では、polardbmtestuserはクライアントアクセスに使用され、polardbmはPolarDB for MySQLクラスターのサーバー側認証に使用されます。

    image

手順2: (オプション) ECSインスタンスでのセキュリティグループルールの設定

  1. ECS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[インスタンスとイメージ] > [インスタンス] を選択します。

  3. 上部のナビゲーションバーで、管理するECSインスタンスが存在するリージョンを選択します。

  4. [インスタンス] ページで、ECSインスタンスのIDをクリックして、インスタンスの詳細ページに移動します。

  5. [セキュリティグループ] タブをクリックします。 管理するセキュリティグループを見つけて、[操作] 列の [ルールの管理] をクリックします。

    説明

    ADドメインコントローラでは、いくつかのポートを有効にする必要があります。 他のECSインスタンスと同じセキュリティグループにADドメインコントローラーを設定するのではなく、ADドメインコントローラーに個別のセキュリティグループを設定することを推奨します。

  6. [インバウンド] タブで、[クイック追加] をクリックして、次のポートを介したECSインスタンスへのアクセスを許可します。

    プロトコルタイプ

    ポートまたはポート範囲

    説明

    TCP

    88

    Kerberos認証プロトコルのポート。

    TCP

    135

    リモートプロシージャコール (RPC) プロトコルのポート。

    TCP/UDP

    389

    Lightweight Directory Access Protocol (LDAP) のポート。

    TCP

    445

    Common Internet File System (CIFS) プロトコルのポート。

    TCP

    3268

    グローバルカタログのポート。

    TCP/UDP

    53

    DNSサービスのポート。

    TCP

    65535に49152

    接続のデフォルトのダイナミックポート範囲。 例: 49152/65535。

手順3: PolarDB for MySQLクラスターのADドメインサーバーの設定

  1. PolarDB for MySQLコンソールの [クラスター] ページに移動します。 上部のナビゲーションバーで、管理するクラスターが存在するリージョンを選択します。 次に、クラスターIDをクリックして、クラスターの詳細ページに移動します。

  2. 左側のナビゲーションウィンドウで、[設定と管理]> [アカウント] を選択します。 表示されるページで、[ADドメインサービス] タブをクリックします。 [ADドメインサービス] タブで、PolarDB for MySQLクラスターにアクセスするためのADドメインサーバーとクライアントに関する情報を設定できます。

    image

  3. [ADドメインでのサーバー情報の設定] をクリックし、次のパラメーターを設定します。

    image

    サーバーサービス名: 要求されるサービスのタイプ。この例ではPolarDB for MySQLです。 デフォルト値はpolardbmで、変更できません。

    サーバーホスト名: サービスのホスト名。 デフォルト値はクラスターIDであり、変更することはできません。

    ドメイン名: ECSインスタンス上の自己管理型ADドメインのルートドメイン名。 独自の自己管理ADドメインを使用することもできます。 この例では、POLARDB.DOMAINが使用されます。

    説明
    • Azure Active Directory (Microsoft Enter ID) など、企業の自己管理型ADドメインを使用する場合は、ADドメインのドメイン名を入力します。

    • サーバーサービス名、サーバーホスト名、およびドメイン名パラメーターの値は、一緒にKerberosサービスプリンシパル名 (SPN) を形成します。 Kerberos SPNは、Kerberos認証プロトコルの中心的な概念であり、ネットワーク上のサービスインスタンスを一意に識別するために使用されます。 SPNは、クライアントが目的のサービスと安全に通信できるようにするために重要です。 一般に、SPNは、ServiceType/HostName @ REALMフォーマットである。

    ADドメインのサーバーユーザー: ADドメインで作成されたユーザーアカウントで、サーバー側サービス認証に使用されます。 サーバーホスト名およびドメイン名パラメーターを指定すると、keytabファイルを生成するための推奨コマンドが表示されます。

    image

    説明

    Kerberos Keytab (略してkeytab) ファイルは、Kerberosセキュリティレルム内のSPNと対応する暗号化キーとの間のマッピングを格納するバイナリファイルです。 このファイルは、Kerberos認証プロセスにとって非常に重要です。 ADドメインをKerberosキー配布センター (KDC) として使用する場合は、ktpassコマンドを実行してkeytabファイルを生成することを推奨します。 ktpassコマンドを実行するときは、-out xxx.keytabをkeytabファイルの目的の名前に置き換え、-pass yourPasswordをADドメインでpolardbmユーザーを作成したときに指定したパスワードに置き換えます。

  4. keytabファイルを生成します。

    ECSインスタンスの自己管理型ADドメインにkeytabファイルを生成します。 これを行うには、Windows PowerShellを開きます。

    image

    ktpassコマンドを実行して、keytabファイルを生成します。

    image

    コマンド出力にエラーが発生していないことを確認してください。 次に、setspnコマンドを実行して、polardbmのSPNマッピングを確認します。

  5. [ファイルの選択] をクリックしてkeytabファイルをアップロードし、ADドメインサーバーの設定を完了します。

    生成されたkeytabファイルをコンピューターに保存してから、[Select file] をクリックしてkeytabファイルをアップロードします。

    image

    [OK] をクリックします。

    説明

    設定が送信されると、システムは [インスタンスの維持] 状態になります。

手順4: PolarDB for MySQLクラスターにアクセスするためのクライアントの設定

  1. 左側のナビゲーションウィンドウで、[設定と管理]> [アカウント] を選択します。 表示されるページで、[ADドメインサービス] タブをクリックします。 [ADドメインサービス] タブで、[クライアント情報の設定] をクリックします。

    image

  2. [ADドメインでのクライアントユーザーの作成] ダイアログボックスで、[クライアントユーザー] および [ドメイン名] パラメーターを設定します。

    image

    クライアントユーザー: PolarDB for MySQLクラスターに作成されるKerberos認証ユーザーの名前。 このユーザーは、ECSインスタンスの自己管理ADドメインで作成したクライアントユーザーに対応します。 この例では、polardbmtestuserが使用されます。

    ドメイン名: ECSインスタンス上の自己管理型ADドメインのルートドメイン名。 この例では、POLARDB.DOMAINが使用されます。

    [OK] をクリックします。

    説明

    設定が送信されると、システムは [インスタンスの維持] 状態になります。

  3. 左側のナビゲーションウィンドウで、[設定と管理]> [アカウント] を選択します。 表示されるページで、[ユーザーアカウント] タブをクリックします。

    • 前の手順で作成したユーザーが表示されます。 ユーザーの権限を変更できます。 ただし、ユーザーのパスワードの変更や削除はできません。

    • ユーザーを削除する場合は、[ADドメインサービス] タブのクライアント情報でユーザーを指定する必要があります。

ステップ5: (オプション) クライアントID認証の有効化

クライアントのIDを認証するには、Kerberosを使用する必要があります。 認証に合格すると、クライアントからPolarDB for MySQLクラスターにアクセスできます。 PolarDB for MySQLクラスターにアクセスするには、クライアントをホストするECSインスタンスで次の操作を実行する必要があります。

  1. ECSインスタンスの自己管理ADドメインへのアクセスに使用する /etc/krb5.confファイルを設定します。

    # To opt out of the system crypto-policies configuration of krb5, remove the
    # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
    includedir /etc/krb5.conf.d/
    
    [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
    
    # libdefaults configuration
    # Set the default_realm parameter in the [libdefaults] section to the root domain name of the self-managed AD domain on the ECS instance. In this example, PolarDB.Domain is used.
    [libdefaults]
        dns_lookup_realm = false
        ticket_lifetime = 24h
        renew_lifetime = 7d
        forwardable = true
        rdns = false
        pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
        spake_preauth_groups = edwards25519
        default_realm = POLARDB.DOMAIN
        default_ccache_name = KEYRING:persistent:%{uid}
    
    # realms configuration
    # Set the kdc and admin_server parameters in the [realms] section to the domain controller service of the self-managed AD domain on the ECS instance.
    [realms]
    POLARDB.DOMAIN = {
    # Add ad.polardb.domain to the /etc/hosts file, and bind ad.polardb.domain to the IP address of the self-managed AD domain on the ECS instance. The default port is port 88.
         kdc = ad.polardb.domain:88
         admin_server = ad.polardb.domain:88
    }
    # domain_realm configuration
    # Set parameters in the [domain_realm] section to the root domain name of the self-managed AD domain on the ECS instance.
    [domain_realm]
    .polardb.domain = POLARDB.DOMAIN
    polardb.domain = POLARDB.DOMAIN

    kinitユーザー名

    usernameを、ADドメインで作成したクライアントユーザーに置き換えます。 この例では、polardbmtestuserが使用されています。 プロンプトに従って、ADドメインで指定したユーザーのパスワードを入力します。

  2. 次のMySQLコマンドを実行して、ADドメインに接続されているPolarDB for MySQLクラスターにログインします。 プライマリアドレスを使用します。

    説明

    バージョン8.0.26以降のMySQL公式クライアントのみがauthentication_kerberos_clientプラグインをサポートしています。 -- plugin-dirは、authentication_kerberos_client.soプラグインとその依存プラグインauthentication_oci_client.soのディレクトリを指定します。

    ./mysql -h [Primary address] -P 3306 --default-auth=authentication_kerberos_client --plugin-dir=/root/mysql-client/plugin --user=polardbmtestuser

    image