このトピックでは、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 を作成し、オーバーライド ファイルに追加します。
- Secret を次の 2 つの名前空間のいずれかに作成します。
- Apigee Ingress ゲートウェイを使用している場合の、
apigee
名前空間。 - インストールした Anthos Service Mesh を使用している場合、
istio-system
名前空間。
Apigee Ingress ゲートウェイ
kubectl create -n apigee secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Apigee Ingress ゲートウェイを使用している場合の、
- オーバーライド ファイルで
virtualhosts
プロパティを構成します。virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
mTLS の構成
一方向 TLS の代わりに、Ingress ゲートウェイで mTLS を構成できます。以下で説明するように、mTLS を構成するオプションは 2 種類あります。
オプション 1: 鍵 / 証明書のペアと CA ファイル
オーバーライド ファイルの virtualhosts
プロパティで、SSL 証明書と鍵ファイルを含む認証局(CA)証明書を指定します。
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
tlsMode: MUTUAL
caCertPath: "$CA_FILE"
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
ここで、$ENVIRONMENT_GROUP_NAME は対応するホスト エイリアスが割り当てられた環境グループの名前、$CA_FILE は承認済みの証明書、$CERT_FILE と $KEY_FILE は TLS 鍵と証明書ファイルです。TLS 証明書を作成するをご覧ください。
オプション 2: Kubernetes Secret
Kubernetes Secret を 2 つ作成します。1 つ目の Secret は SSL 証明書 / 鍵のペア用で、2 つ目の Secret は CA 用です。次に、これらをオーバーライド ファイルに追加します。
- 次の 2 つの名前空間のいずれかに Kubernetes Secret を 2 つ作成します。
- Apigee Ingress ゲートウェイを使用している場合の、
apigee
名前空間。 - インストールした Anthos Service Mesh を使用している場合、
istio-system
名前空間。
Apigee Ingress ゲートウェイ
kubectl create -n apigee secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Apigee Ingress ゲートウェイを使用している場合の、
- CA 用の Secret を作成します。
Apigee Ingress ゲートウェイ
kubectl create -n apigee secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
- オーバーライド ファイルで
virtualhosts
プロパティを構成します。virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: MUTUAL # Note: Be sure to specify MUTUAL sslSecret: $SECRET_NAME