Hypertext Transfer Protocol Secure(HTTPS)は、セキュリティ強化版の HTTP です。 HTTPS は Secure Socket Layer(SSL)と連携して、データ送信のセキュリティを確保します。 HTTPS は通信に HTTP を使用します。 SSL はデータの暗号化に使用されます。 データセキュリティを確保するために、HTTPS を有効にすることをお勧めします。 このトピックでは、Elasticsearch クラスターの HTTPS を有効にする方法について説明します。
前提条件
以下の操作を実行します。
Alibaba Cloud Elasticsearch クラスターを作成します。
詳細については、「Alibaba Cloud Elasticsearch クラスターを作成する」をご参照ください。
Elasticsearch クラスターへのアクセスに使用するクライアントのコードを変更します。 コードを変更しないと、クライアントを使用してクラスターにアクセスできません。
次のサンプルコードでは、オープンソースの Elasticsearch の REST クライアントが使用されています。 HTTPS を有効にした後、
httpsパラメーターをHttpHostに含める必要があります。たとえば、new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200, "https"));のようにします。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)); 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();
手順
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションペインで、[elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[elasticsearch クラスター] ページで、クラスターを見つけ、その ID をクリックします。
表示されるページの左側のナビゲーションペインで、[セキュリティ] をクリックします。
[ネットワーク設定] セクションで、[HTTPS を有効にする] をオンにします。
警告HTTPS を有効または無効にするプロセス中に、Elasticsearch クラスターで実行されているサービスが中断され、クラスターが再起動されます。有効化または無効化操作がビジネスに影響を与えないことを確認してください。
[注記] ダイアログボックスで、[HTTPS クライアントを作成しました] を選択し、[OK] をクリックします。
説明一部のバージョンの Elasticsearch クラスターでは、クライアントノードを購入する必要があります。[HTTPS を有効にする] をオンにしたときにクライアントノードを購入していない場合は、クライアントノードを購入するように求められます。指示に従ってクライアントノードを購入する必要があります。
Elasticsearch クラスターの作成時または Elasticsearch クラスターの構成のアップグレード時に、クライアントノードを購入できます。詳細については、「購入ページのパラメータ」および「クラスターの構成をアップグレードする」をご参照ください。
クライアントノードを購入する必要があるかどうかの詳細については、「クライアントノードを含まない Elasticsearch クラスターに対して HTTPS を有効にできますか?」をご参照ください。
操作を確認すると、Elasticsearch クラスターが再起動されます。 タスク ダイアログボックスで再起動の進行状況を確認できます。再起動が完了すると、HTTPS 経由で Elasticsearch クラスターにアクセスできます。
FAQ
Q:Elasticsearch クラスターの HTTPS を有効にした後、必要な証明書を取得するにはどうすればよいですか?
A:Alibaba Cloud Elasticsearch クラスターのセキュリティと安定性を確保するために、Alibaba Cloud Elasticsearch は証明書を公開していません。