第1章 カスタム証明書の追加
Red Hat Advanced Cluster Security for Kubernetes でカスタム TLS 証明書を使用する方法を学びます。証明書を設定した後、ユーザーと API クライアントは、Central に接続するときに証明書のセキュリティー警告をバイパスする必要はありません。
1.1. カスタムセキュリティー証明書の追加
インストール中、または既存の Red Hat Advanced Cluster Security for Kubernetes デプロイメントにセキュリティー証明書を適用できます。
1.1.1. カスタム証明書を追加するための前提条件
前提条件
- PEM でエンコードされた秘密鍵と証明書ファイルがすでに存在する必要がある。
証明書ファイルは、人間が読める形式のブロックで開始および終了する必要がある。以下に例を示します。
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----
証明書ファイルには、単一の (リーフ) 証明書または証明書チェーンのいずれかを含めることができる。
警告- 証明書が信頼されたルートによって直接署名されていない場合は、中間証明書を含む完全な証明書チェーンを提供する必要がある。
- チェーン内のすべての証明書は、リーフ証明書がチェーンの最初でルート証明書がチェーンの最後になるように順序付けられている必要がある。
- グローバルに信頼されていないカスタム証明書を使用している場合は、カスタム証明書を信頼するように Sensor を設定する必要もがあります。
1.1.2. 新規インストール中のカスタム証明書の追加
手順
Operator を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールする場合:
次のコマンドを入力して、Central サービスがインストールされる namespace に適切な TLS 証明書が含まれる
central-default-tls-cert
シークレットを作成します。oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
Helm を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールする場合:
カスタム証明書とそのキーを
values-private.yaml
ファイルに追加します。central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----
インストール中に設定ファイルを提供します。
$ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
roxctl
CLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールする場合は、インストーラーの実行時に証明書とキーファイルを提供します。非対話型インストーラーの場合は、
--default-tls-cert
および--default-tls-key
オプションを使用します。$ roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"
対話型インストーラーの場合、プロンプトの回答を入力するときに証明書とキーファイルを提供します。
... Enter PEM cert bundle file (optional): <cert.pem> Enter PEM private key file (optional): <key.pem> Enter administrator password (default: autogenerated): Enter orchestrator (k8s, openshift): openshift ...
1.1.3. 既存のインスタンスのカスタム証明書の追加
手順
Operator を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールした場合。
次のコマンドを入力して、Central サービスがインストールされている namespace に適切な TLS 証明書が含まれる
central-default-tls-cert
シークレットを作成します。oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
Helm を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールした場合:
カスタム証明書とそのキーを
values-private.yaml
ファイルに追加します。central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----
helm upgrade
コマンドを使用して、更新された設定ファイルを提供します。$ helm upgrade -n stackrox --create-namespace stackrox-central-services \ rhacs/central-services --reuse-values \1 -f values-private.yaml
- 1
value-private.yaml
ファイルには必要な設定値がすべて含まれているわけではないため、このパラメーターを使用する必要があります。
roxctl
CLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールした場合。PEM でエンコードされたキーと証明書ファイルから TLS シークレットを作成して適用します。
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
このコマンドを実行すると、Central は Pod を再起動しなくても、新しいキーと証明書を自動的に適用します。変更が反映されるまでに最大 1 分かかる場合があります。
1.1.4. 既存のインスタンスのカスタム証明書の更新
Central のカスタム証明書を使用する場合は、次の手順を実行して証明書を更新できます。
手順
既存のカスタム証明書のシークレットを削除します。
$ oc delete secret central-default-tls-cert
新規シークレットを作成します。
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
- Central コンテナーを再起動します。
1.1.4.1. Central コンテナーの再起動
Central コンテナーを強制終了するか、Central Pod を削除して、Central コンテナーを再起動できます。
手順
次のコマンドを実行して、Central コンテナーを強制終了します。
注記OpenShift Container Platform が変更を伝播し、Central コンテナーを再始動するまで、少なくとも 1 分間待機する必要があります。
$ oc -n stackrox exec deploy/central -c central -- kill 1
または、次のコマンドを実行して Central Pod を削除します。
$ oc -n stackrox delete pod -lapp=central