인메시 인증서 관리
인메시 인증서 관리 (Managing In-Mesh Certificates)
자체 환경에서 사용하는 인증서의 유형을 관리해야 하는 사용자들을 위한 문서예요. ECC 사용, RSA 인증서의 비트 길이 강화, 서명 알고리즘 변경 등 인메시 통신을 위한 인증서 구성을 배워요.
출처: Istio 문서
본문
많은 사용자가 자신의 환경에서 사용하는 인증서 유형을 관리해야 해요. 예를 들어 일부 사용자는 타원 곡선 암호화(ECC)를 요구하고, 다른 사용자는 RSA 인증서에 더 강한 비트 길이를 사용해야 할 수 있어요. 환경 내에서 인증서를 구성하는 것은 대부분의 사용자에게 어려운 작업이 될 수 있어요.
이 문서는 인메시 통신에만 사용하기 위한 것이에요. Gateway에서 인증서를 관리하려면 Secure Gateways 문서를 참고하세요. istiod가 워크로드 인증서를 생성하는 데 사용하는 CA를 관리하려면 Plugin CA Certificates 문서를 참고하세요.
istiod
Istio가 루트 CA 인증서 없이 설치되면 istiod는 RSA 2048을 사용해 자체 서명된 CA 인증서를 생성해요.
자체 서명된 CA 인증서의 비트 길이를 변경하려면 istioctl에 제공하는 IstioOperator 매니페스트나, istio-discovery 차트의 Helm 설치 중 사용하는 values 파일을 수정해야 해요.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
pilot:
env:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
pilot:
env:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
Sidecar
sidecar는 인메시 통신을 위한 자체 인증서를 관리하므로, sidecar는 자신의 개인 키와 생성된 Certificate Signing Request(CSR)를 관리할 책임이 있어요. 이 목적으로 사용할 환경 변수를 주입하려면 sidecar 인젝터를 수정해야 해요.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
proxyMetadata:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
meshConfig:
defaultConfig:
proxyMetadata:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
apiVersion: apps/v1
kind: Deployment
metadata:
name: curl
spec:
...
template:
metadata:
...
annotations:
...
proxy.istio.io/config: |
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
spec:
...
서명 알고리즘
기본적으로 sidecar는 RSA 인증서를 생성해요. ECC로 변경하려면 ECC_SIGNATURE_ALGORITHM을 ECDSA로 설정해야 해요.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
proxyMetadata:
ECC_SIGNATURE_ALGORITHM: "ECDSA"
meshConfig:
defaultConfig:
proxyMetadata:
ECC_SIGNATURE_ALGORITHM: "ECDSA"
ECC_CURVE를 통해 P256과 P384만 지원돼요.
RSA 서명 알고리즘을 유지하면서 RSA 키 크기를 수정하고 싶다면 WORKLOAD_RSA_KEY_SIZE 값을 변경할 수 있어요.