7.3. OpenShift Serverless トランスポート暗号化のセットアップ


前提条件

  • クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
  • {oc-first} をインストールします。
  • cert-manager Operator for Red Hat OpenShift をインストールします。
  • OpenShift Serverless Operator をインストールしている。
重要

Red Hat OpenShift 用の cert-manager Operator をインストールする前に OpenShift Serverless Operator をインストールする場合は、knative-serving namespace でコントローラーとアクティベーターのデプロイメントを再起動する必要があります。これらのデプロイメントを再起動しないと、Knative は必要な cert-manager リソースを作成できなくなり、Knative Service が保留となり、Knative Serving cert-manager 統合を有効にできなくなります。

7.3.1. SelfSigned クラスター発行者の設定

次の手順では、ルート証明書として SelfSigned 発行者を使用します。この方法の影響と制限については、SelfSigned cert-manager のドキュメント を参照してください。

独自の会社固有の秘密鍵インフラストラクチャー (PKI) を管理する場合は、CA 発行者を使用します。詳細は、CA 発行者に関する cert-manager ドキュメント を参照してください。

手順

  1. SelfSigned ClusterIssuer カスタムリソース (CR) を作成します。

    ClusterIssuer CR の例

    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: knative-serving-selfsigned-issuer
    spec:
      selfSigned: {}

  2. 次のコマンドを実行して ClusterIssuer CR を適用します。

    $ oc apply -f <filename>
  3. ClusterIssuer CR を参照するルート証明書を作成します。

    ルート証明書の例

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: knative-serving-selfsigned-ca
      namespace: cert-manager 1
    spec:
      secretName: knative-serving-ca 2
    
      isCA: true
      commonName: selfsigned-ca
      privateKey:
        algorithm: ECDSA
        size: 256
    
      issuerRef:
        name: knative-serving-selfsigned-issuer
        kind: ClusterIssuer
        group: cert-manager.io

    1
    Red Hat OpenShift namespace の cert-manager Operator (デフォルトでは cert-manager)。
    2
    後で Knative Serving の ClusterIssuer CR に使用されるシークレット名。
  4. 次のコマンドを実行して Certificate CR を適用します。

    $ oc apply -f <filename>

7.3.2. Serving で使用する ClusterIssuer の作成

Serving による証明書の使用を有効にするには、クラスター発行者を作成する必要があります。

手順

  1. Serving 用の knative-serving-ca-issuer ClusterIssuer を作成します。

    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: knative-serving-ca-issuer
    spec:
      ca:
        secretName: knative-serving-ca 1
    1
    新しい証明書の OpenShift Serverless Serving コンポーネントで使用できる証明書を含む、Red Hat OpenShift namespace の cert-manager Operator 内のシークレット名 (デフォルトでは cert-manager)。
  2. 次のコマンドを実行して ClusterIssuer リソースを適用します。

    $ oc apply -f <filename>

7.3.3. トランスポート暗号化の設定

トランスポート暗号化の設定には、以下の 2 つの部分があります。

  1. 使用する ClusterIssuer 発行者を指定します。

    • clusterLocalIssuerRef: Ingress に使用される cluster-local-domain 証明書の発行者
    • systemInternalIssuerRef: Knative 内部コンポーネントによって使用される system-internal-tls 証明書の発行者
  2. 使用するトランスポート暗号化機能を指定します。

    • cluster-local-domain-tls: cluster-local ドメインのトランスポート暗号化機能の有効化
    • system-internal-tls: OpenShift Serverless Serving 内部コンポーネントのトランスポート暗号化機能を有効にします。

手順

  1. KnativeServing リソースでのトランスポート暗号化の有効化

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      ...
      config:
        certmanager:
          clusterLocalIssuerRef: |
            kind: ClusterIssuer
            name: knative-serving-ca-issuer 1
          systemInternalIssuerRef: |
            kind: ClusterIssuer
            name: knative-serving-ca-issuer 2
        network:
          cluster-local-domain-tls: Enabled 3
          system-internal-tls: Enabled 4
    1
    各機能のクラスター発行者を定義します。同じまたは個別のクラスター発行者を使用できます。
    2
    クラスター発行者を定義します。
    3
    cluster-local-domain-tls 機能を有効にします。この機能と他の機能は個別に有効または無効にできます。
    4
    system-internal-tls 機能を有効にします。
  2. 次のコマンドを実行して、KnativeServing リソースを適用します。

    $ oc apply -f <filename>
  3. 必要に応じて、Ingress Controller の defaultCertificate 値を変更します。

    apiVersion: operator.openshift.io/v1
    kind: IngressController
     ...
    spec:
      defaultCertificate:
        name: ca-ingress-cert
  4. defaultCertificate 値を変更した場合は、KnativeServing カスタムリソースの openshift-Ingress-default-certificate フィールドにカスタム証明書名を指定する必要があります。

    たとえば、カスタム証明書名が ca-ingress-cert の場合、次の設定を追加します。

    ...
    spec:
      config:
        network:
          system-internal-tls: Enabled
          openshift-ingress-default-certificate: "ca-ingress-cert"
    ...
  5. cluster-local-domain-tls または system-internal-tls を有効にした場合は、次のコマンドを実行して Controller コンポーネントを再起動します。

    重要

    cluster-local-domain-tls または system-internal-tls 機能のいずれかが有効になっている場合は、Knative Serving cert-manager インテグレーションを有効にするために、Controller コンポーネントを再起動する必要があります。

    $ oc rollout restart deploy/controller -n knative-serving
  6. system-internal-tls を有効にした場合は、次のコマンドを実行して Activator コンポーネントを再起動します。

    重要

    system-internal-tls 機能が有効化されている場合、Activator コンポーネントを再起動して内部 Web サーバーを再設定する必要があります (ランタイム時にはできないため)。

    $ oc rollout restart deploy/activator -n knative-serving
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.