バージョンアップ情報
SPIFFE情報
SPIFFEとは
SPIFFE(Secure Production Identity Framework For Everyone)はクラウドネイティブ環境においてソフトウェアを安全に識別、認証するための標準仕様です。SPIFFEが導入されたシステムでは、他のリソースへ通信する機能を持ったワークロードと呼ばれる単位で、統一された識別子と統一された認証方式で安全な相互認証を行うことが出来ます。
ワークロードの定義としては、例えばVMやコンテナ、WebアプリケーションやDBなどがあり、通信相手側もワークロードと呼ばれます。
SPIFFE はGlueCon 2016でKubernetesの共同創設者であるJoe Beda氏から発表された「The Original SPIFFE Design Doc」で提案されて始まったもので、SPIFFE自体はScytale、Google、Heptio、Tigeraのエンジニアにより策定されています。
2017年にはCNCF(Cloud Native Computing Foundation)のプロジェクトとして承認されました。
主な特徴
SPIFFEの特徴として、以下のような機能を備えています。
マルチプラットフォーム、プロバイダ対応 |
SPIFFEは異なるクラウドプロバイダやプラットフォーム上で稼働するアプリケーションやサービスに対して、信頼できるIDを発行することで、サービスの移植性の向上や、セキュリティを強化することが可能です。 |
---|---|
独自識別子(SPIFFE ID) |
SPIFFEは独自の識別子であるSPIFFE IDを発行し、これを使用することで異なるクラウドやサービス間での認証を行います。SPIFFE IDはサービス起動時に自動的に発行されるため、手動でのアイデンティティ管理が不要となります。 |
SVID(SPIFFE Verifiable Identity Document) |
SPIFFE IDを検証、認証するためにSPIFFEが発行する証明書で、X.509証明書形式のX.509 SVIDとJWT形式のJWT SVIDの2種類のSVIDが標準化されています。いずれもSPIFFE IDの信頼性を検証することができ、サービス間の安全な通信を確立することが可能です。 |
Trust Bundle |
SVIDを検証するための公開鍵としてワークロードがAPIへリクエストして取得する認証局(CA)ルート証明書の集合体です。これにより、異なるTrust Domainを持つワークロード同士での相互認証が可能になり、さらにOpenID Connect互換なシステムであれば外部のシステムとも連携が出来ます。 |
SPIFFE Workload API |
SPIFFE Workload APIはSVIDとTrust Bundleを取得するためのAPIです。Workload APIはプラットフォームに依存せず、カーネルレベルだけでなく、プロセスレベルでも実行中サービスを識別できるためKubernetesなどのコンテナスケジューラでの使用に適しています。 |
ユースケース
SPIFFEは、Zero Trust Networkを実現するためのサービス間認証の仕様であるためサービスメッシュやコンテナオーケストレーションシステムなどのマイクロサービスアーキテクチャにおけるセキュアな相互認証を提供します。
動作環境
SPIFFEはあくまで仕様なので、SPIFFEに準拠したソフトウェアを導入する必要があります。主なソフトウェアは以下の通りです。
- SPIRE
- Istio
- Consul
- Kuma
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。