Ingress ゲートウェイでの TLS と mTLS の構成

このトピックでは、Ingress ゲートウェイで一方向 TLS と mTLS を有効にする方法について説明します。

一方向 TLS の構成

一方向 TLS を使用して、Ingress ゲートウェイで API プロキシ エンドポイントを保護します。一方向 TLS を有効にするには、以下のオプションで説明するように、TLS 証明書と鍵のペアまたは Kubernetes Secret を使用して Ingress を構成します。

オプション 1: 鍵 / 証明書のペア

オーバーライド ファイルの virtualhosts プロパティで、SSL 証明書と鍵ファイルを指定します。

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

ここで、$ENVIRONMENT_GROUP_NAME は対応するホスト エイリアスを持つ環境グループの名前です。$CERT_FILE$KEY_FILE は TLS 鍵と証明書ファイルです。TLS 証明書を作成するをご覧ください。

オプション 2: Kubernetes Secret

Kubernetes Secret を作成し、オーバーライド ファイルに追加します。

  1. Secret を apigee Namespace に作成します。
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. オーバーライド ファイルで virtualhosts プロパティを構成します。
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME
  3. mTLS の構成

    一方向 TLS の代わりに、Ingress ゲートウェイで mTLS を構成できます。以下で説明するように、mTLS を構成するオプションは 2 種類あります。

    オプション 1: 鍵 / 証明書のペアと CA ファイル

    認証局の証明書を含む TLS 証明書データを指定します。

    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL
        caCertPath: "$CA_FILE"
        sslCertPath: "$CERT_FILE"
        sslKeyPath: "$KEY_FILE"

    ここで、$ENVIRONMENT_GROUP_NAME は対応するホスト エイリアスを持つ環境グループの名前です。$CA_FILE は認証局証明書を含む TLS 証明書データ(CA バンドル ファイル)を指定します。$CERT_FILE$KEY_FILE は TLS 鍵と証明書のファイルです。TLS 証明書を作成するをご覧ください。

    オプション 2: Kubernetes Secret

    Kubernetes Secret を 2 つ作成します。1 つ目の Secret は SSL 証明書 / 鍵のペア用で、2 つ目の Secret は CA 用です。次に、これらをオーバーライド ファイルに追加します。

    1. apigee 名前空間に 2 つの Kubernetes Secret を作成します。
      kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
        --from-file=key=$KEY_FILE \
        --from-file=cert=$CERT_FILE
    2. CA 用の Secret を作成します。
      kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME-cacert  \
        --from-file=cacert=$CA_FILE
    3. オーバーライド ファイルで virtualhosts プロパティを構成します。
      virtualhosts:
        - name: $ENVIRONMENT_GROUP_NAME
          tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
          sslSecret: $SECRET_NAME