11.4. コントロールプレーンの TLS セキュリティープロファイルの設定

コントロールプレーンの TLS セキュリティープロファイルを設定するには、APIServer カスタムリソース (CR) を編集して、事前定義済みまたはカスタムの TLS セキュリティープロファイルを指定します。APIServer CR に TLS セキュリティープロファイルを設定すると、設定は以下のコントロールプレーンのコンポーネントに伝播されます。

  • Kubernetes API サーバー
  • Kubernetes コントローラーマネージャー
  • Kubernetes スケジューラー
  • OpenShift API サーバー
  • OpenShift OAuth API サーバー
  • OpenShift OAuth サーバー
  • etcd

TLS セキュリティープロファイルが設定されていない場合には、TLS セキュリティープロファイルは Intermediate になります。

注記

Ingress コントローラーのデフォルトの TLS セキュリティープロファイルは API サーバーの TLS セキュリティープロファイルに基づいています。

Old TLS のセキュリティープロファイルを設定するサンプル APIServer CR

apiVersion: config.openshift.io/v1
kind: APIServer
 ...
spec:
  tlsSecurityProfile:
    old: {}
    type: Old
 ...

TLS セキュリティープロファイルは、コントロールプレーンのコンポーネントとの通信に必要な TLS の最小バージョンと TLS 暗号を定義します。

設定した TLS セキュリティープロファイルは、Spec.Tls Security ProfileAPIServer カスタムリソース (CR) で確認できます。Custom TLS セキュリティープロファイルの場合には、特定の暗号と最小 TLS バージョンが一覧表示されます。

注記

コントロールプレーンは、最小 TLS バージョンとして TLS 1.3 をサポートしません。Modern プロファイルは TLS 1.3 を必要とするため、サポート対象外です。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. デフォルトの APIServer CR を編集して TLS セキュリティープロファイルを設定します。

    $ oc edit APIServer cluster
  2. spec.tlsSecurityProfile フィールドを追加します。

    Custom プロファイルの APIServer CR のサンプル

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
      name: cluster
    spec:
      tlsSecurityProfile:
        type: Custom 1
        custom: 2
          ciphers: 3
          - ECDHE-ECDSA-CHACHA20-POLY1305
          - ECDHE-RSA-CHACHA20-POLY1305
          - ECDHE-RSA-AES128-GCM-SHA256
          - ECDHE-ECDSA-AES128-GCM-SHA256
          minTLSVersion: VersionTLS11

    1
    TLS セキュリティープロファイルタイプ (OldIntermediate、または Custom) を指定します。デフォルトは Intermediate です。
    2
    選択したタイプに適切なフィールドを指定します。
    • old: {}
    • intermediate: {}
    • custom:
    3
    custom タイプには、TLS 暗号のリストと最小許容 TLS バージョンを指定します。
  3. 変更を適用するためにファイルを保存します。

検証

  • TLS セキュリティープロファイルが APIServer CR に設定されていることを確認します。

    $ oc describe apiserver cluster

    出力例

    Name:         cluster
    Namespace:
     ...
    API Version:  config.openshift.io/v1
    Kind:         APIServer
     ...
    Spec:
      Audit:
        Profile:  Default
      Tls Security Profile:
        Custom:
          Ciphers:
            ECDHE-ECDSA-CHACHA20-POLY1305
            ECDHE-RSA-CHACHA20-POLY1305
            ECDHE-RSA-AES128-GCM-SHA256
            ECDHE-ECDSA-AES128-GCM-SHA256
          Min TLS Version:  VersionTLS11
        Type:               Custom
     ...

  • TLS セキュリティープロファイルが etcd CR に設定されていることを確認します。

    $ oc describe etcd cluster

    出力例

    Name:         cluster
    Namespace:
     ...
    API Version:  operator.openshift.io/v1
    Kind:         Etcd
     ...
    Spec:
      Log Level:         Normal
      Management State:  Managed
      Observed Config:
        Serving Info:
          Cipher Suites:
            TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
          Min TLS Version:           VersionTLS12
     ...