SPIFFE Meetup Tokyo #2 https://spiffe-jp.connpass.com/event/142393/
Taiki OnoSPIFFE Meetup Tokyo #2Envoy SDS
View Slide
Envoy おさらい● LB/service discovery/retry, timeout/logging, metrics/TLS handling とかやってくれるいい感じプロキシー● App と同じ pod にデプロイ (side-car model) or app と同じホストにデプロイして iptables とかで app からの/へのトラフィックを envoy にリダイレクトする● 上の機能の設定を中央のマネージメントサーバーから配信することで全体に散らばった envoy を統一的に管理する● このマネージメントサーバーと envoy 間の設定通信プロトコルを「xDS プロトコル」と呼んでいる2
Envoy Architecture5
Envoy と TLS config● Per-cluster: outgoing requests○ tls_context: auth.UpstreamTlsContext■ Common_tls_context: auth.CommonTlsContext● Per-listener-filter-chain: incoming requests○ tls_context: auth.DownstreamTlsContext■ Common_tls_context: auth.CommonTlsContext■ Require_client_certificate: Bool● auth.CommonTlsContext○ tls_certificates or tls_certificate_sds_secret_config○ validation_context or validation_context_sds_secret_config■ 証明書を検証する時の設定 (e.g. trusted_ca)6
tls_ceritificates● Body: private_key, certificate_chain, password● データの指定: filename, inline_bytes, inline_string7
Static vs SDS● tls_certificates の情報をどう渡すかの違い● Static: Envoy が動く場所の FS に置いておいて file name で指定● SDS: SDS サーバーに置いておいて inline bytes で配信○ SDS サーバーに置いてある「どの ceritificate を使うか」を決めるのが“tls_certificate_sds_secret_configs.name” をキーにして決める8
Envoy Architecture9SDS serverCertificatesTrusted CA
Go tetrate.io/about-us/careers/ !