SPIFFE Meetup Tokyo #2 LT: Envoy SDS

44e6e0e9bcc3d8279020aad563f16f34?s=47 taiki45
October 02, 2019

SPIFFE Meetup Tokyo #2 LT: Envoy SDS

44e6e0e9bcc3d8279020aad563f16f34?s=128

taiki45

October 02, 2019
Tweet

Transcript

  1. Taiki Ono SPIFFE Meetup Tokyo #2 Envoy SDS

  2. Envoy おさらい • LB/service discovery/retry, timeout/logging, metrics/TLS handling とか やってくれるいい感じプロキシー

    • App と同じ pod にデプロイ (side-car model) or app と同じホストにデプロ イして iptables とかで app からの/へのトラフィックを envoy にリダイレ クトする • 上の機能の設定を中央のマネージメントサーバーから配信することで全体に 散らばった envoy を統一的に管理する • このマネージメントサーバーと envoy 間の設定通信プロトコルを「xDS プロ トコル」と呼んでいる 2
  3. None
  4. None
  5. Envoy Architecture 5

  6. 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
  7. tls_ceritificates • Body: private_key, certificate_chain, password • データの指定: filename, inline_bytes,

    inline_string 7
  8. Static vs SDS • tls_certificates の情報をどう渡すかの違い • Static: Envoy が動く場所の

    FS に置いておいて file name で指定 • SDS: SDS サーバーに置いておいて inline bytes で配信 ◦ SDS サーバーに置いてある「どの ceritificate を使うか」を決めるのが “tls_certificate_sds_secret_configs.name” をキーにして決める 8
  9. Envoy Architecture 9 SDS server Certificates Trusted CA

  10. Go tetrate.io/about-us/careers/ !