この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

TLS設定

デフォルトのTLS設定を変更することは、選択したインストール方法に依存します。

高可用性のKubernetesクラスターでRancherを実行する

Rancher管理のKubernetesクラスターをインストールすると、TLSはクラスターのイングレスコントローラーでオフロードされます。TraefikはK3sのデフォルトイングレスであり、RKE2でも使用できます。詳細については、 TLSオプションを参照してください。

単一のDockerコンテナでRancherを実行する

デフォルトのTLS設定は、TLS 1.2および安全なTLS暗号スイートのみを受け入れます。次の環境変数を設定することで、これを変更できます:

パラメータ 説明 デフォルト 使用可能なオプション

CATTLE_TLS_MIN_VERSION

最小TLSバージョン

1.2

1.0, 1.1, 1.2, 1.3

CATTLE_TLS_CIPHERS

許可されたTLS暗号スイート

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

Golang TLS定数を参照してください。

エージェントTLS強制

agent-tls-mode`設定は、Rancherのエージェント(`cluster-agentfleet-agent、および`system-agent`)がRancherの証明書を検証する方法を制御します。

値が`strict`に設定されている場合、Rancherのエージェントは`cacerts`設定に含まれる認証局によって生成された証明書のみを信頼します。 値が`system-store`に設定されている場合、Rancherのエージェントは、オペレーティングシステムの信頼ストアに含まれる公開証明書機関によって生成された任意の証明書を信頼し、Let’s Encryptなどの機関によって署名された証明書も含まれます。これはセキュリティリスクとなる可能性があります。なぜなら、ユーザーの制御外にあるこれらの外部機関によって生成された任意の証明書が、この状態では有効と見なされるからです。

`strict`オプションはより高いセキュリティレベルを有効にしますが、Rancherがエージェントに表示される証明書を生成したCAにアクセスすることを要求します。特定の証明書設定(特に外部証明書)の場合、これは自動ではなく、追加の設定が必要です。どのシナリオが追加の設定を必要とするかについての詳細は、インストールガイドを参照してください。

Rancher v2.9.0以降では、この設定は新しいインストールでデフォルトで`strict`に設定されます。以前のRancherバージョンからインストールまたはアップグレードするユーザーの場合、`system-store`に設定されています。

設定変更の準備

各クラスターには、ステータスフィールドに`AgentTlsStrictCheck`という条件が含まれています。`AgentTlsStrictCheck`が`"True"`に設定されている場合、これはクラスターのエージェントが`strict`モードで操作する準備ができていることを示します。Rancher UIまたは以下のようなkubectlコマンドを使用して、各クラスターが準備できているか手動で確認できます。

## the below command skips ouputs $CLUSTER_NAME,$STATUS for all non-local clusters
kubectl get cluster.management.cattle.io -o jsonpath='{range .items[?(@.metadata.name!="local")]}{.metadata.name},{.status.conditions[?(@.type=="AgentTlsStrictCheck")].status}{"\n"}{end}'

設定の変更

Rancher UIまたは`agentTLSMode` helmチャートオプションを使用して設定を変更できます。

Helmチャートを通じて値を指定する場合、Helmでのみ値を変更できます。

証明書のセットアップに応じて、証明書を署名した認証局をアップロードするなど、追加のアクションが必要になる場合があります。設定を変更する前に、インストールガイドを確認して、セットアップに適用される追加の要件があるかどうかを確認してください。

UIを通じて設定の値を変更するには、*グローバル設定*ページに移動し、ページの下部近くにある`agent-tls-mode`設定を見つけます。UIを通じて設定を変更すると、Rancherは最初にすべてのダウンストリームクラスターが条件`AgentTlsStrictCheck`を`"True"`に設定していることを確認してからリクエストを許可します。これにより、証明書の不一致による障害が防止されます。

設定の検証チェックをオーバーライドする

場合によっては、すべてのエージェントが新しいTLS設定を受け入れられることを確認するチェックをオーバーライドしたいことがあります。

Rancherは、ダウンストリームクラスターのすべてのステータスを確認して、障害を防ぎます。このチェックをオーバーライドすることは推奨されず、十分な注意を払って行うべきです。

  1. 管理者として、ローカルクラスタのためのkubeconfigを生成します。以下の例では、これが`local_kubeconfig.yaml`ファイルに保存されました。

  2. 現在の設定を取得し、`setting.yaml`に保存します:

    kubectl get setting agent-tls-mode -o yaml --kubeconfig=local_kubeconfig.yaml > setting.yaml
  3. setting.yaml`ファイルを更新し、`value`を`strict`に置き換えます。`cattle.io/force: "true" アノテーションを追加すると、クラスター条件チェックが上書きされ、慎重に行うべきです。

任意の値(例えば "false" を含む)を持つ cattle.io/force アノテーションを含めると、クラスター条件チェックが上書きされます。

apiVersion: management.cattle.io/v3
customized: false
default: strict
kind: Setting
metadata:
  name: agent-tls-mode
  annotations:
    cattle.io/force: "true"
source: ""
value: strict
  1. 設定の新しいバージョンを適用してください。

    kubectl apply -f setting.yaml --kubeconfig=local_kubeconfig.yaml