このドキュメントでは、Elasticsearch インスタンスのパスワード、パブリックネットワークホワイトリスト、VPC ホワイトリスト、および HTTPS プロトコルなど、Alibaba Cloud Elasticsearch のセキュリティ設定について説明します。

Elasticsearch インスタンスのインスタンス管理ページに移動します。左側のナビゲーションウィンドウで、 [セキュリティ] を選択します。 [ネットワーク設定] セクションでは、次のタスクを実行できます。Elasticsearch クラスターネットワーク設定ページ

Elasticsearch インスタンスのパスワードをリセットする

重要
  • この操作は、 elastic アカウントのパスワードをリセットします。
  • パスワードをリセットした後、elastic アカウントを使用している場合、新しいパスワードを使用して Alibaba Cloud Elasticsearch インスタンス、または Kibana コンソールにログインする必要があります。 パスワードのリセット操作では、他のアカウントのパスワードはリセットされません。 elastic アカウントを使用して Elasticsearch インスタンスにログインしないことを推奨します。
  • [リセット] をクリックし、新しいパスワードを入力して、操作を確認します。 システムは、新しいパスワードを有効にするためにインスタンスを再起動する必要はありません。
[セキュリティ] ページで、[ES クラスターのアクセスパスワード] の右側にある[リセット] をクリックします。 elastic アカウントの新しいパスワードを入力し、[OK] をクリックしてパスワードをリセットします。 パスワードのリセット

パスワードをリセットした後、新しいパスワードが有効になるまで約 5 分かかります。

VPC ホワイトリスト

VPC ネットワークの ECS インスタンスから Alibaba Cloud Elasticsearch インスタンスにアクセスする必要がある場合、ECS インスタンスの IP アドレスを Elasticsearch インスタンスの VPC ホワイトリストに追加する必要があります。

[更新] をクリックし、[VPC ホワイトリスト] ダイアログボックスに IP アドレスを入力し、 [OK] をクリックします。

IP アドレスと CIDR ブロックをそれぞれ192.168.0.1 および 192.168.0.0/24 の形式で追加できます。 これらの IP アドレスと CIDR ブロックをコンマ (,) で区切ります。 127.0.0.1 を入力し、すべての IPv4 アドレスを禁止するか、 0.0.0.0/0 を入力してすべての IPv4 アドレスを許可します。

  • デフォルトでは、すべてのイントラネット IPv4 アドレスは Elasticsearch へのアクセスを許可されています。
  • VPC ホワイトリストは、VPC ネットワークのイントラネットアドレスからのアクセスを制御するために使用されます。

インターネットアドレス

[インターネットアドレス] スイッチをクリックして、インターネットアドレスを有効にします。 この機能を有効にすると、スイッチが 色で表示されます。 デフォルトでは、スイッチは灰色で表示されます。これは、インターネットアドレスが無効になっていることを示しています。 インターネットから Alibaba Cloud Elasticsearch インスタンスに接続するには、インスタンスのインターネットアドレスを有効にする必要があります。

パブリック IP アドレスのホワイトリスト

パブリック IP アドレスのホワイトリストを設定する前に、[インターネットアドレス] スイッチをクリックし、インターネットアドレスを有効にします。 インターネットアドレス機能は、デフォルトで、すべてのインターネットアドレスを禁止しています。

インターネットから Alibaba Cloud Elasticsearch インスタンスに接続するには、クライアントの IP アドレスをパブリック IP アドレスのホワイトリストに追加する必要があります。

IP アドレスと CIDR ブロックをそれぞれ192.168.0.1 および 192.168.0.0/24 の形式で追加できます。 これらの IP アドレスと CIDR ブロックをコンマ (,) で区切ります。 127.0.0.1 を入力して、すべての IPv4 アドレスを禁止するか、 0.0.0.0/0 を入力してすべての IPv4 アドレスを許可します。

Elasticsearch インスタンスが中国 (杭州) リージョンにデプロイされている場合、IPv6 アドレスと CIDR ブロックをホワイトリストにそれぞれ次の形式で追加できます。2401:b180:1000:24::5 および 2401:b180:1000::/48::1 を入力して、すべての IPv6 アドレスを禁止するか、 ::/0 を入力してすべての IPv6 アドレスを許可します。

HTTPS を有効にする

HTTPS (Hypertext Transfer Protocol Secure) は、HTTP のセキュアバージョンです。 HTTPS は Secure Socket Layer (SSL) を使用して、データ送信のセキュリティを保証します。 つまり、HTTPS は通信に HTTP を使用します。 SSL はデータの暗号化に使用されます。

手順

重要
  • Alibaba Cloud Elasticsearch では、HTTPS を有効または無効にすることができます。 データを保護するには、HTTPS を有効にすることを推奨します。
  • HTTPS を有効にする前に、クライアントノードを購入する必要があります。
  1. Alibaba Cloud Elasticsearch コンソール にログインし 、[インスタンス ID/名前] > [セキュリティ] をクリックします。次に、 [HTTPS] スイッチをクリックします。
    重要
    • HTTPS を有効にした後、HTTPS クライアントを使用して Elasticsearch インスタンスに接続する必要があります。 HTTP クライアントを使用してインスタンスに接続することはできません。 詳細については、 「HTTP および HTTPS クライアントのサンプルコード」をご参照ください。
    • HTTPS を有効または無効にするには、システムがインスタンスを再起動する必要があります。 再起動プロセス中に、インスタンスのワークロードが中断されます。 HTTPS を有効または無効にする前に、ワークロードが悪影響を受けないことを確認してください。
  2. [操作確認] メッセージボックスで、 [HTTPS クライアントを作成した] チェックボックスをオンにし、[OK] をクリックします。
    クライアントノードを購入していない場合、 [HTTPS] スイッチをクリックすると、クライアントノードの購入を促すメッセージが表示されます。 指示に従ってクライアントノードを購入できます。
    HTTPS の有効化または無効化を確認した後、システムはインスタンスを再起動します。 右上隅の [タスク] アイコンをクリックして、進行状況を確認できます。 インスタンスの再起動後、HTTPS を使用してインスタンスに接続できます。

HTTP および HTTPS クライアントのサンプルコード

公式の Elasticsearch REST クライアントを例にした場合、HTTP クライアントと HTTPS クライアントを作成するためのサンプルコードは次のとおりです。 Elasticsearch インスタンスで HTTPS が無効になっている場合は、HTTP クライアントを使用します。 Elasticsearch インスタンスで HTTPS が有効になっている場合は、HTTPS クライアントを使用します。
  • HTTP クライアントを作成するためのサンプルコード
    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "Your password"));
    RestClientBuilder restClientBuilder = RestClient.builder(
                new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200));
            RestClient restClient = restClientBuilder.setHttpClientConfigCallback(
                new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                }).build();
  • HTTPS クライアントを作成するためのサンプルコード
    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "Your password"));
    RestClientBuilder restClientBuilder = RestClient.builder(
                new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200, "https"));
            RestClient restClient = restClientBuilder.setHttpClientConfigCallback(
                new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                }).build();

前述の例に示すように、HTTPS を有効にした後、 https パラメーターを HttpHost: new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200, "https")); に含める必要があります。

Elasticsearch インスタンス間の相互接続

Elasticsearch インスタンスを相互接続して、クラスター間の検索に対応できます。 詳細については、「Elasticsearch インスタンス間の相互接続」をご参照ください。