Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TLS暗号化による管理およびコントロールプレーン認証の設定

概要 このトピックでは、Kubernetesがオーケストレーションされた環境で、CN2リリース22.4以降のTLS暗号化を使用して管理プレーンとコントロールプレーン認証を設定する方法について説明します。

概要

CN2は、TLS暗号化による管理およびコントロールプレーン認証をサポートしています。TLSプロトコルは、証明書の交換、相互認証、およびネゴシエートする暗号方式に使用され、改ざんや傍受の可能性からストリームを保護します。

証明書は、CN2を起動するために使用される導入の一部です。Kubernetes では、すべての証明書はシークレットに変換されます。デフォルトでは、Contrail コントロール プレーンと vRouter の証明書とシークレットが CRD で自動的に ContrailCertificateManager 生成されます。必要に応じて、Sandesh や Contrail API サーバーなどの他のコンポーネントの証明書を作成することもできます。

以下のいずれかのツールを使用して証明書を生成できます。

  • cert-manager(デフォルト):cert-manager ツールにより、Kubernetes クラスタでリソース タイプとして証明書が追加され、これらの証明書の取得、更新、使用のプロセスが簡素化されます。デフォルトでは、この証明書は 10 年間有効で、有効期限の 15 日前に自動的に更新されます。

  • go-crypto:go-cryptoは、証明書の生成に使用できる暗号化パッケージです。このパッケージは、コンテナを使用しない軽量ジェネレータです。デフォルトでは、証明書は 10 年間有効ですが、自動的に更新されません。

考慮 事項

設定を開始する前に、この考慮事項の一覧を参照してください。

  • 証明書が更新されたら、ポッドを再起動する必要があります。

  • 証明書が提供された場合でも、ContrailコントロールプレーンとvRouterでTLS暗号化を有効にする必要があります。

  • 独自の認証局 (CA) を作成している場合、そのシークレットには キー tls.crttls.keyが含まれている必要があります。

ContrailコントロールプレーンとvRouterのTLS暗号化を設定する

この手順の手順に従って、Contrail コントロール プレーンと vRouter に TLS 暗号化を簡単に設定します。

メモ:

デフォルトでは、XMPPではTLS暗号化が有効になり、制御用のイントロスペクションとvRouterが有効になっています。TLS ベースの XMPP は、ネットワーク環境で発生するすべての XMPP 通信のセキュリティーを強化するために使用されます。必要に応じて、コントロールファイルとvRouter YAMLファイルのスペックフィールドで 変数を指定することで、TLS暗号化を無効にすることができます。例えば:

Contrail コントロール プレーンと vRouter の TLS 暗号化を設定するには、次の手順にしたがってください。

  1. cert-manager または go-cryptogeneratortypeContrailCertificateManager指定します。デフォルトのジェネレータは.cert-manager
    Kubernetes では、すべての証明書はシークレットに変換されます。証明書を生成すると、ファイルを適用 deployment.yaml するときにシークレットが自動的に作成されます。
    以下の例は、制御用および go-crypto vRouter 用に cert-manager作成された証明書を示しています。

    cert-manager の使用例:

    gocryptoの使用例:
  2. deployment.yaml ファイルを適用して証明書を生成します。
  3. 設定を確認します。

    以下 kubectl のコマンドを実行して、証明書とシークレットが正常に生成されたことを確認します。

    デフォルトでは、 で証明書とシークレットが自動的に生成されます ContrailCertificateManager。また、他のコンポーネントのシークレットを作成したり、独自の CA を作成することもできます。
    他のコンポーネントのシークレットを作成するには、 または のいずれかで cert-manager 使用するコンポーネントを指定します gocrypto。複数のコンポーネントに 1 つのシークレットを使用できます。

    利用可能なコンポーネントは次のとおりです。

    • control-xmpp

    • vrouter-sandesh

    • control-sandesh

    • contrail-api-server

    • vrouter-xmpp

    を入力casecretContrailCertificateManagerしなかった場合は、自己署名証明書が自動的に作成されます。この自己署名証明書は 10 年間有効です。

    必要に応じて、次の例に示すように、独自の CA 証明書を指定できます。シークレットには キー と tls.keytls.crt含まれている必要があります。

    コマンドを kubectl apply -f ca-key-pair.yaml 実行してシークレットを適用します。