SPIFFE 仕様全部読んでく - 全体概要

SPIFFE に個人的に興味を持ち始めたので、https://github.com/spiffe/spiffe/blob/main/standards/ にある仕様を全部読んで簡単にまとめてく。 尚、学習中であるため解釈が間違っている可能性は存分にあります。

ざっくりまとめた各仕様のリンク先

TODO

ざっくりまとめ

原文: https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE.md

  • SPIFFE を構築する 3 つの主要コンポーネント
    • identity namespace の標準化: SPIFFE ID
    • 発行された ID の提示と検証の方法: SPIFFE Verifiable Identity Document(SVID)
    • ID の取得、発行のための API を規定: Workload API

SPIFFE ID

  • ワークロードを識別するための ID の形式を規定している
    • URI 形式(RFC3986)で表現される
    • spiffe://trust-domain/path
      • trust-domain
        • ID の発行者を示す
        • e.g. cluster.local
      • path
        • trust-domain 内のワークロードを識別するためのパス
        • Istio では、ワークロードが実行される Service Account を使ってパスを決定している模様
        • e.g. ns/hoge/sa/fuga

SVID(SPIFFE Verifiable Identity Document)

  • SPIFFE ID 搭載した検証可能なドキュメントのこと
  • X.509 or (JWS 形式の)JWT で表現される
    • X.509-SVID
    • JWT-SVID
  • 各詳細は、別のまとめを参照

Workload API

  • 大別すると以下の 2 つの API から成り立つ
    • SVID(SPIFFE Verifiable Identity Document)を提供する API
    • CA bundle を提供する API