spiffe
背景
現在のコンテナやFunctionが動的にデプロイされる世界では、IPアドレスのようなネットワークアドレスは認証においては意味をなさない
ネットワークアドレスではなくワークロードに対して認証の識別子を与える
「ネットワーク境界での保護」を行わない
内部のネットワークも全て脅威にさらされているとして扱う
異なる様々システム間での認証できる統一的な方法を提供すること
SPIFFE
SPIFFE ID
SVID (SPIFFE ID Verification Identity Document)
SPIFFE ID を含む検証可能なドキュメント
Workload API
https://gyazo.com/f36f40c958206c16db91207132406f5f
https://gyazo.com/14388a85fe35a1a020a6a3e32771e4ca
SPIRE
SPIFFE の参照実装
SPIRE Agent と SPIRE Server
Agent は Workload API を提供する
Node の Attestationと Workload の Attestation という二つのステップ
検証とSVIDの発行
Workload
Unix の場合はプロセス、k8sの場合はPod、など抽象的な実行単位
Node Attestation
Node は AWSでいうと EC2 インスタンス
https://gyazo.com/13a9984063d964bf45b23adc2121c7cb
Workload Registration
事前にWorkloadを識別するための情報をSPIRE Server に登録しておく
Registration Entry
a SPIFFE ID
a set of one or more selectors
a parent ID
Workload Attestation
プロセスなどの情報を収集する
Registration で登録された Workload情報と比較し、一致したSVIDをWorkloadに返す
https://gyazo.com/7d27e7cc621831f0c7017e3f08eaa14d
Envoy と
Observabiliry におけるSPIFFE ID
Log, Metrics, Tracing において、SPIFFE IDを識別子として使う
IP や InstanceIDよりも、Workloadを識別するIDとして適切
ハードコードされたIDやラベルとは異なり、割り当てを変更しやすい