이 주제에서는 ingressgateway에서 단방향 TLS와 mTLS를 사용 설정하는 방법을 설명합니다.
단방향 TLS 구성
단방향 TLS를 사용하여 인그레스 게이트웨이에서 API 프록시 엔드포인트를 보호합니다. 단방향 TLS를 사용 설정하려면 다음 옵션의 설명대로 TLS 인증서/키 쌍 또는 Kubernetes 보안 비밀을 사용하여 인그레스를 구성합니다.
옵션 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 보안 비밀
Kubernetes 보안 비밀을 만들고 재정의 파일에 추가합니다.
- 다음 두 네임스페이스 중 하나에 보안 비밀을 만듭니다.
apigee
네임스페이스(Apigee 인그레스 게이트웨이를 사용하는 경우)istio-system
네임스페이스(고객 설치 Anthos Service Mesh를 사용하는 경우)
Apigee 인그레스 게이트웨이
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
- 재정의 파일의
virtualhosts
속성을 구성합니다.virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
mTLS 구성
단방향 TLS 대신 인그레스 게이트웨이에서 mTLS를 구성할 수 있습니다. 다음 설명처럼 mTLS를 구성하는 옵션에는 두 가지가 있습니다.
옵션 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 보안 비밀
Kubernetes 보안 비밀 두 개를 만듭니다. 첫 번째 보안 비밀은 SSL 인증서/키 쌍용이고 두 번째 보안 비밀은 CA용입니다. 그런 다음 재정의 파일에 추가합니다.
- 다음 두 네임스페이스 중 하나에 Kubernetes 보안 비밀 두 개를 만듭니다.
apigee
네임스페이스(Apigee 인그레스 게이트웨이를 사용하는 경우)istio-system
네임스페이스(고객 설치 Anthos Service Mesh를 사용하는 경우)
Apigee 인그레스 게이트웨이
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
- CA의 보안 비밀을 만듭니다.
Apigee 인그레스 게이트웨이
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