Alibaba Cloud Elasticsearch では、Elasticsearch クラスターの Active Directory(AD)ユーザー認証を設定できます。 これにより、Elasticsearch ロールが割り当てられている AD レルムのユーザーを使用してクラスターにアクセスできます。 このトピックでは、Alibaba Cloud Elasticsearch クラスターの AD ユーザー認証を設定する方法について説明します。
前提条件
Alibaba Cloud Elasticsearch クラスターが作成されていること。この例では、Elasticsearch V7.10 クラスターが作成されています。
詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。
Elasticsearch クラスターと同じ仮想プライベートクラウド(VPC)内にあり、Windows オペレーティングシステムを実行する Elastic Compute Service(ECS)インスタンスで AD レルムが作成および設定されていること。この例では、Windows Server 2012 オペレーティングシステムが使用されています。さらに、データが準備されていること。
この例では、ccy1 ユーザーと ccy.com ルートレルムが使用されています。
制限事項
2020 年 10 月以降、異なるリージョンにおける Alibaba Cloud Elasticsearch のネットワークアーキテクチャが調整されました。この調整は、クラスターに次の影響を与えます。
元のネットワークアーキテクチャにデプロイされているクラスターをインターネットに接続する場合、SNAT が有効になっている ECS インスタンスを使用するか、NGINX プロキシを使用してリクエストを転送できます。
新しいネットワークアーキテクチャでは、AD ユーザー認証機能が制限されています。 PrivateLink サービスを使用して、VPC 間のプライベート接続を確立できます。 詳細については、「Elasticsearch クラスターのプライベート接続の設定」をご参照ください。 新しいネットワークアーキテクチャにデプロイされているクラスターをインターネットに接続する場合は、NGINX プロキシを設定してリクエストを転送します。
元のネットワークアーキテクチャでは、シングルゾーン Elasticsearch クラスターのみが AD ユーザー認証をサポートしています。
ネットワークアーキテクチャの詳細については、「[お知らせ] ネットワークアーキテクチャの調整」をご参照ください。
手順
手順 1:(オプション)エンドポイントのドメイン名を取得する
2020 年 10 月以降に作成された Elasticsearch クラスターは、新しいネットワークアーキテクチャにデプロイされます。 これらの Elasticsearch クラスターは、Elasticsearch サービスアカウントの VPC 内にあります。 Elasticsearch クラスターが新しいネットワークアーキテクチャにデプロイされている場合は、PrivateLink サービスを使用して、VPC とお客様の VPC 間のプライベート接続を確立する必要があります。 その後、後で使用するために、関連するエンドポイントのドメイン名を取得します。 エンドポイントのドメイン名を取得するには、次の手順を実行します。
- 作成された Elasticsearch クラスターと同じ VPC 内にあり、PrivateLink サービスをサポートする Classic Load Balancer(CLB)インスタンスを作成します。
詳細については、「手順 1:CLB インスタンスを作成および設定する」をご参照ください。
CLB インスタンスを設定します。
設定中に、Lightweight Directory Access Protocol(LDAP)サーバーをバックエンドサーバーとして、ポート 389 をリスニングポートとして指定する必要があります。
詳細については、「Elasticsearch クラスターのプライベート接続の設定」をご参照ください。
- エンドポイントサービスを作成します。
詳細については、「手順 2:エンドポイントサービスを作成する」をご参照ください。
- Elasticsearch クラスターへのプライベート接続を設定します。
詳細については、「手順 3:Elasticsearch クラスターのプライベート接続を作成する」をご参照ください。
- エンドポイントサービスにアクセスするために使用されるエンドポイントのドメイン名を取得します。
詳細については、「Elasticsearch クラスターのプライベート接続の設定」をご参照ください。
説明 取得したドメイン名を記録します。これは後続の設定で使用されます。
手順 2:AD ユーザー認証を設定する
Elasticsearch クラスターは、そのセキュリティ機能を使用して AD レルムと通信し、ユーザーを認証します。 セキュリティ機能は、LDAP に基づいて AD レルムと通信します。 AD レルムは、LDAP レルムに似ています。 LDAP ディレクトリと同様に、AD レルムはユーザーとグループを階層的に格納します。 AD レルムは、LDAP バインドリクエストを送信することでユーザーを認証します。 ユーザーが認証に合格すると、AD レルムは AD レルム内でユーザーのエントリを検索します。 AD レルムがエントリを見つけると、AD レルムはエントリの tokenGroups 属性からユーザーのグループメンバーシップを取得します。 詳細については、「Active Directory レルムの設定」を参照してください。
V6.X、V7.X、または V8.X の Elasticsearch クラスター
AD ユーザー認証を設定するには、クラスターの YML 設定ファイルに次の設定を追加します。 詳細については、「YML ファイルの設定」をご参照ください。
他のバージョンの Elasticsearch クラスター
クラスターの YML 設定ファイルに次の設定を追加します。 YML 設定ファイルを修正できず、クラスターを再起動できない場合は、チケットを送信して、テクニカルサポート担当者に設定を依頼できます。
xpack.security.authc.realms.active_directory.my_ad.order: 2
xpack.security.authc.realms.active_directory.my_ad.domain_name: ccy.com
xpack.security.authc.realms.active_directory.my_ad.url: ldap://ep-bp1i321219*********-cn-hangzhou-h.epsrv-bp15571d5ps*********.cn-hangzhou.privatelink.aliyuncs.com:389
xpack.security.authc.realms.active_directory.my_ad.bind_dn: cc**@ccy.com
xpack.security.authc.realms.active_directory.my_ad.bind_password: your_password
パラメーター | 説明 |
order | AD レルムの優先順位。 優先順位によって、ユーザー認証中に AD レルムがチェックされる順序が決まります。 説明 Elasticsearch V8.X クラスターの場合、このパラメーターの値は、異なるリクエスト間で一意である必要があります。 このパラメーターを 2 に設定することをお勧めします。 |
domain_name | ルートレルムの名前。 |
url | AD レルムと ECS インスタンス間のプライベートネットワーク接続を確立するために使用される URL とポート番号。 詳細については、「Active Directory レルムの設定」を参照してください。 重要 クラスターが新しいネットワークアーキテクチャにデプロイされている場合、このパラメーターを |
bind_dn | 検索を実行するために使用されるユーザーの識別名(DN)。 |
bind_password | ユーザーの認証に使用されるパスワード。 |
手順 3:ユーザーをロールにマッピングする
Elasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
説明異なるバージョンのクラスターでの操作は異なる場合があります。 コンソールでの実際の操作が優先されます。
指示に従って Kibana コンソールのホームページに移動し、[dev Tools] をクリックします。
[コンソール] タブで、次のコマンドを実行して、AD レルムの ccy1 ユーザーを管理者ロールにマッピングします。
PUT /_security/role_mapping/basic_users { "roles": [ "superuser" ], "enabled": true, "rules": { "any": [ { "field": { "groups": "cn=ali,dc=ccy,dc=com" } }, { "field": { "dn": "cn=ccy1,cn=ali,dc=ccy,dc=com" } } ] } }
手順 4:結果を確認する
ccy1 ユーザーを使用して、Elasticsearch クラスターの Kibana コンソールにログインします。
指示に従って Kibana コンソールのホームページに移動し、[dev Tools] をクリックします。
[コンソール] タブで、次のコマンドを実行して、ccy1 ユーザーに関連操作を実行する権限があるかどうかを確認します。
GET _cat/indices
ccy1 ユーザーに権限が付与されている場合、次の図に示す結果が返されます。