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

PolarDB:PolarDB for MySQL とセルフマネージド AD ドメインの統合

最終更新日:Jun 23, 2026

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

背景情報

Active Directory (AD) は、Microsoft が提供するディレクトリサービスです。ディレクトリは、LAN (ローカルエリアネットワーク) 上のオブジェクトに関する情報を格納する階層構造です。組織は、コンピューターアカウント、ユーザーアカウント、グループなどの項目をディレクトリに格納することで、セキュリティを強化し、管理を簡素化できます。

PolarDB for MySQL は、AD ドメインとの統合をサポートしています。AD ドメインサービス情報を設定することで、クラスターを Active Directory に関連付け、Kerberos 認証を有効にできます。

バージョン要件

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

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

  • マイナーバージョン:8.0.1.1.44.2 以降。クラスターがこの要件を満たしていない場合は、マイナーバージョンをアップグレードする必要があります。

  • 製品エディション:Enterprise Edition

  • シリーズ:Cluster Edition

注意事項

説明

この機能は現在カナリアリリース中です。トライアルを申請できます。

前提条件

説明

すでに AD ドメインと PolarDB for MySQL にアクセスするためのクライアント環境がある場合は、ECS インスタンスを作成する必要はありません。AD ドメインサーバー情報の設定に直接進むことができます

  • ECS インスタンスを作成済みであること。PolarDB for MySQL をカスタムドメインに接続するには、内部ネットワークを使用する必要があり、ECS インスタンスは次の条件を満たす必要があります。

    • システムイメージは Windows Server 2016 以降のバージョンで、言語は英語に設定されていること。

  • クライアント認証用にECS インスタンスを作成済みであること。PolarDB for MySQL クライアントをホストする ECS インスタンスは、次の条件を満たす必要があります。

    • PolarDB for MySQL クライアントをホストする ECS インスタンスは、ターゲットの PolarDB for MySQL クラスターと同じ Virtual Private Cloud (VPC) 内にある必要があります。

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

  • プライマリ Alibaba Cloud アカウントでログインしていること。

操作手順

ステップ 1 (任意): AD ドメインコントローラーの設定

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

    説明

    AD ドメインコントローラーには Windows Server オペレーティングシステムが必要です。Windows Server 2016 以降の使用を推奨します。このトピックでは、Windows Server 2022 を例として使用します。

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

  3. [役割と機能の追加] をクリックし、パラメーターを次のように設定します。

    ページ

    説明

    [インストールの種類]

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

    [サーバーの選択]

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

    [サーバーの役割]

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

    • [DNS サーバー] を選択し、ポップアップダイアログボックスで [機能の追加] をクリックします。コンピューターに静的 IP アドレスがないというプロンプトが表示された場合は、IP アドレスが自動的に変更されて DNS サーバーが利用できなくなるのを防ぐために、静的 IP アドレスを設定することを推奨します。

    [機能]

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

    AD DS

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

    DNS サーバー

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

    [確認]

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

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

  5. 左側のナビゲーションウィンドウで [AD DS] をクリックし、右上隅の [その他] をクリックします。

  6. [このサーバーをドメイン コントローラーに昇格させる] をクリックし、パラメーターを次のように設定します。

    このオプションは、[サーバー マネージャー][すべてのサーバー タスクの詳細と通知] ページにあります。[展開後の構成] タスクの [操作] 列にあります。

    ページ

    説明

    [展開の構成]

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

    [ルート ドメイン名] ボックスに、polardb.domain と入力します。

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

    ディレクトリサービス復元モード (DSRM) のパスワードを設定します。

    [ドメイン コントローラー オプション] ページで、[フォレストの機能レベル][ドメインの機能レベル] の両方を [Windows Server 2016] に設定します。[ドメイン ネーム システム (DNS) サーバー][グローバル カタログ (GC)] チェックボックスを選択します。

    [DNS オプション]

    [DNS 委任の作成] チェックボックスをオフにします。

    [追加オプション]

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

    [パス]

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

    [オプションの確認]

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

    [前提条件のチェック]

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

    説明

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

  7. システムが再起動するのを待ってから、再度 [サーバー マネージャー] を検索して開きます。

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

  9. [polardb.domain] > [ユーザー] を右クリックし、[新規] > [ユーザー] を選択します。

  10. ログインユーザーを設定し、[次へ] をクリックします。

    [フルネーム][ユーザー ログオン名]polardbmtestuser と入力します。ドメインサフィックスとして @polardb.domain を選択し、[次へ] をクリックします。

  11. ログインパスワードを設定し、[パスワードを無期限にする] オプションを選択してから、[次へ] > [完了] をクリックします。

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

    [このアカウントは Kerberos AES 128 ビット暗号化をサポートします][このアカウントは Kerberos AES 256 ビット暗号化をサポートします] のチェックボックスを選択します。

  13. 同じ手順で、polardbm という名前の別のユーザーを作成します。このユーザーは PolarDB for MySQL のサーバー側認証用であり、polardbmtestuser はクライアントアクセス用です。

ステップ 2 (任意): セキュリティグループルールの設定

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

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

  3. コンソールの左上隅で、リージョン を選択します。

  4. [インスタンス] ページで、ターゲット ECS インスタンスの ID をクリックします。

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

    説明

    ドメインコントローラーには多くのオープンポートが必要です。ドメインコントローラー専用のセキュリティグループを作成し、他の ECS インスタンスと共有しないことを推奨します。

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

    タイプ

    ポート範囲

    説明

    TCP

    88

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

    TCP

    135

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

    TCP/UDP

    389

    Lightweight Directory Access Protocol (LDAP) ポート。

    TCP

    445

    共通インターネットファイルシステム (CIFS) プロトコルポート。

    TCP

    3268

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

    TCP/UDP

    53

    DNS ポート。

    TCP

    49152-65535

    接続用のデフォルトの動的ポート範囲。49152/65535 の形式で入力します。

ステップ 3: PolarDB for MySQL の AD ドメインサーバー情報の設定

  1. PolarDB クラスターリストに移動し、上部でリージョンを選択してから、ターゲットクラスターの ID をクリックします。

  2. 左側のナビゲーションウィンドウで アカウント管理 をクリックし、AD ドメインサービス情報 タブを選択します。初めて [AD ドメインサービス] タブを開くと、[AD ドメインのサーバー情報を設定]クライアント情報の設定 の 2 つの設定セクションが表示されます。

  3. AD ドメインサーバーの設定 をクリックします。

    サーバーサービス IDPolarDB for MySQL にリクエストされるサービスの種類を識別します。値は polardbm に固定されています。

    サーバー側アクセスアドレス識別子:サービスのホスト名を識別します。値はクラスター ID に固定されています。

    ドメイン名:セルフマネージド AD ドメインのルートドメイン名 (例:POLARDB.DOMAIN)。

    説明
    • 企業独自の AD ドメイン (例:Azure Active Directory (現 Microsoft Entra ID)) を使用する場合は、対応する ドメイン名を入力する必要があります。

    • サーバーサービス名、サーバーホスト名、ドメイン名は、Kerberos サービスプリンシパル名 (SPN) を形成し、ネットワーク上のサービスインスタンスを一意に識別します。SPN は、クライアントが正しいサービスと安全に通信できるようにするための Kerberos 認証プロトコルの中心的な概念です。SPN の形式は通常、ServiceType/HostName@REALM です。

    AD ドメインサーバーユーザー:サーバー側のサービス認証のために、AD ドメインにユーザーアカウントを作成する必要があります。サーバーホスト名とドメイン名を入力すると、keytab ファイルを生成するための推奨コマンドが表示されます。

    ktpass -out xxx.keytab -princ polardbm/poxxx@POLARDB.DOMAIN -mapUser polardbm -pass yourPassword xxx xxx
    説明

    Kerberos キータブファイル (または keytab) は、Kerberos レルム内でサービスプリンシパル名 (SPN) と対応する暗号鍵とのマッピングを格納するバイナリファイルです。このファイルは、Kerberos 認証プロセスにとって不可欠です。AD ドメインを Kerberos KDC として使用する場合、ktpass コマンドを使用して keytab ファイルを生成することを推奨します。-out xxx.keytab を生成される keytab ファイルの実際の名前で置き換え、-pass yourPassword を AD ドメインで作成した polardbm ユーザーのパスワードで置き換える必要があります。

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

    ECS インスタンス上の AD ドメイン環境で、Windows PowerShell を開いて keytab ファイルを生成します。

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

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
    PS C:\Users\Administrator> ktpass -out polardbmtest.keytab -princ polardbm/xxx xxx @POLARDB.DOMAIN -mapuser polardbm -pass xxx -crypto all -ptype KRB5_NT_PRINCIPAL
    Targeting domain controller: xxx.xxx.polardb.domain
    Using legacy password setting method
    Successfully mapped polardbm/xxx xxx to polardbm.
    Key created.
    Key created.
    Key created.
    Key created.
    Key created.
    Output keytab to polardbmtest.keytab:
    Keytab version: 0x502
    keysize 71 polardbm/xxx    xxx @POLARDB.DOMAIN ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-CBC-CRC) keylength 8 (0xda2ab510c84fce73)
    keysize 71 polardbm/xxx    xxx @POLARDB.DOMAIN ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-CBC-MD5) keylength 8 (0xda2ab510c84fce73)
    keysize 79 polardbm/xxx    xxx @POLARDB.DOMAIN ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-HMAC) keylength 16 (0x6017cf909fc53f720f1020652db561e6)
    keysize 95 polardbm/xxx    xxx @POLARDB.DOMAIN ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12 (AES256-SHA1) keylength 32 (0x7b780ab91260f36c06c153c02f357bc79c90256644db6523b33d0673219b07ea3)
    keysize 79 polardbm/xxx    xxx r8@POLARDB.DOMAIN ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11 (AES128-SHA1) keylength 16 (0x3da47d2f33d0827f0a56efcbbf0bfd06)

    出力にエラーがないことを確認し、setspn コマンドを使用して、SPN が polardbm ユーザーに正常にマッピングされていることを確認します。

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

    keytab ファイルを AD ドメインからローカルマシンにコピーします。次に、ファイルの選択 をクリックしてアップロードします。

    [AD ドメインのサーバー情報を設定] ダイアログボックスで、[サーバーサービス名] はデフォルトで polardbm になります。[サーバーホスト名] (クラスターエンドポイント) を入力し、[ドメイン名]POLARDB.DOMAIN に、[AD ドメインのサーバーユーザー]polardbm に設定します。ダイアログボックスには、keytab ファイルを生成するための参照 ktpass コマンドも表示されます。

    OK をクリックします。

    説明

    設定を送信すると、クラスターのステータスが [インスタンスをメンテナンス中] に変わります。

ステップ 4: PolarDB for MySQL のクライアント情報の設定

  1. 左側のナビゲーションウィンドウで アカウント管理 をクリックし、AD ドメインサービス情報 タブを選択してから、クライアント情報の設定 をクリックします。

  2. [AD ドメインにクライアントユーザーを作成] ダイアログボックスで、クライアントユーザードメイン名 を入力します。

    クライアントユーザーPolarDB for MySQL クラスターに Kerberos 認証のアクセスユーザーを作成します。このユーザーは、ECS インスタンス上のセルフマネージド AD ドメインで作成されたクライアントユーザー (例:polardbmtestuser) に対応します。

    ドメイン名:これは、ECS インスタンス上のセルフマネージド AD ドメインのルートドメイン名 (例:POLARDB.DOMAIN) に対応します。

    OK をクリックします

    説明

    設定を送信すると、クラスターのステータスが [インスタンスをメンテナンス中] に変わります。

  3. 左側のナビゲーションウィンドウで アカウント管理 をクリックし、ユーザーアカウント タブを選択します。

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

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

ステップ 5 (任意): クライアント認証の設定

PolarDB for MySQL にアクセスする前に、MySQL クライアントを認証するために Kerberos を使用する必要があります。PolarDB for MySQL にアクセスするクライアント ECS インスタンスで、次の操作を実行する必要があります。

  1. ECS インスタンス上のセルフマネージド AD ドメインにアクセスするために、/etc/krb5.conf ファイルを設定します。

    # システムの crypto-policies 設定による krb5 の設定を無効にするには、
    # /etc/krb5.conf.d/crypto-policies にあるシンボリックリンクを削除します。このファイルは再作成されません。
    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 設定
    # [libdefaults] セクションの default_realm を、ECS インスタンス上のセルフマネージド AD のルートドメイン (例: POLARDB.DOMAIN) に設定します。
    [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 設定
    # [realms] セクションの kdc と admin_server を、ECS インスタンス上のセルフマネージド AD のドメインコントローラーサービスに設定します。
    [realms]
    POLARDB.DOMAIN = {
    # ad.polardb.domain は /etc/hosts で設定され、ECS インスタンス上のセルフマネージド AD の IP アドレスにマッピングされます。デフォルトポートは 88 です。
         kdc = ad.polardb.domain:88
         admin_server = ad.polardb.domain:88
    }
    # domain_realm 設定
    # [domain_realm] セクションも、ECS インスタンス上のセルフマネージド AD のルートドメインで設定する必要があります。
    [domain_realm]
    .polardb.domain = POLARDB.DOMAIN
    polardb.domain = POLARDB.DOMAIN
    kinit username

    username を AD ドメインで作成したクライアントユーザー (例:polardbmtestuser) に置き換えます。プロンプトが表示されたら、ユーザーの AD ドメインパスワードを入力します。

  2. 次の MySQL コマンドを使用して、AD ドメインと統合された PolarDB for MySQL データベースクラスターにログインします。プライマリアドレスを使用します。

    説明

    MySQL クライアントのバージョンが 8.0.26 以降であり、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
    [root@iZ2zee0l2f5hdwxs75m0urZ mysql-client]# ./mysql -h xxx rds.aliyuncs.com -P 3306 --default-auth=authentication_kerberos_client --plugin-dir=/root/mysql-client/plugin --user=polardbmtestuser
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 4374
    Server version: 8.0.13 Source distribution
    Copyright (c) 2000, 2024, Oracle and/or its affiliates.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql>