SPIFFE および SPIRE とは
SPIFFE と SPIRE は、動的で多様なコンピューティング環境における ID 管理のためのオープンソース・プロジェクトです。
SPIFFE (「スピッフィ」と発音) は、Secure Production Identity Framework for Everyone の略です。ID の構造と、ID を暗号的に検証して信頼できると見なす方法を確立します。
SPIRE は、SPIFFE Runtime Environment の略です。SPIRE は SPIFFE のリファレンス実装です。
SPIFFE と SPIRE は連携して、複雑なハイブリッドクラウド環境でゼロトラスト・アーキテクチャを適用する方法を定義します。SPIFFE/SPIRE フレームワークは、以下のような多くのセキュリティ問題を解決します。
- Kubernetes 環境におけるクラウドネイティブ・アプリケーションのセキュリティの強化
- エッジコンピューティングの場所での認証の改善
- AI エージェントや、人間以外のその他のワークロードの ID 管理
SPIFFE および SPIRE はいずれも、Cloud Native Computing Foundation (CNCF) の卒業 (graduated) プロジェクトです。Red Hat は、エンタープライズ対応の SPIFFE/SPIRE 実装である Red Hat® ゼロトラスト・ワークロード ID マネージャーを、Red Hat OpenShift® Operator としてテクニカルプレビューで提供しています。
これが亀とどう関係しているのでしょうか?
SPIFFE の支持者はこれを「一番下の亀」問題の解決策と表現することがあります。SPIFFE プロジェクトの作成者も、このテクノロジーに関する書籍のタイトルに亀の比喩を使用しています。
さて、「一番下の亀」問題とは何でしょうか?
ある昔話の中で、ある登場人物が、巨大な亀が世界を背負っていると主張します。その亀は何に支えられているのかと尋ねられたその人物は、もう 1 匹のさらに大きな亀が支えていると言います。では、その大きな亀は何に支えられているのか?「ずっと下まで亀が続いているんです!」
コンピュータのセキュリティにも、この「一番下の亀」問題があります。パスワードやアプリケーション・プログラミング・インタフェース (API) キーなどのシークレットは、さまざまなプラットフォームやサービスが相互に信頼できるものであることを認識させるのに役立ちます。これらのシークレット情報を安全に保つには、秘密暗号化キーやそれらのキーを格納するシークレットリポジトリなど、セキュリティレイヤーを追加する必要があります。それらのシークレットリポジトリをどのように保護すればよいでしょうか?そのためには、さらなるシークレットを使います。もうおわかりでしょう。無限にシークレットが続きます。
SPIFFE 標準および SPIRE の実装は、「一番下の亀」を確立し、システム内のすべてのやり取りに基本レベルの信頼を提供することを目的としています。
SPIFFE と SPIRE が解決するもの
SPIFFE と SPIRE は、IT セキュリティを向上させる手段です。これらを組み合わせることで、検証済みの ID とのインタラクションにのみアクセスが許可されるフレームワークが形成されます。つまり、SPIFFE と SPIRE はワークロードの多要素認証 (MFA) と考えることができるでしょう。
SPIFFE:フレームワーク
SPIFFE は、さまざまな環境におけるサービスの暗号化 ID を発行および管理するための仕様を設定します。この標準の中核となるのは、ワークロードの ID として機能する短期間有効な認証情報、SPIFFE Verifiable Identity Document (SVID) です。
デフォルトでコンポーネントを信頼しないゼロトラスト・アーキテクチャにおいて SPIFFE を使用すると、シークレットに依存せずにワークロード認証を行うことができます。ワークロードが別のサービスとやり取りする必要がある場合、その SVID を提示できます。これは通常、X.509 証明書または JSON Web Token (JWT) の形式です。
これにより、他のワークロードは SVID をローカルで検証し、トランザクションごとに中央認証局に連絡することなく、信頼できるピアツーピア認証を実現できます。この最適化されたプロセスにより、標準化された検証可能な ID を通じて信頼を維持できるため、サービス通信が単純化され、保護されます。
SPIRE:ランタイム環境
SPIRE は、SPIFFE 規格を実装する方法を規定し、ワークロード (要求を行うアプリケーションまたはエージェント) とノード (サーバーまたはマシン) の間の信頼を確立する API をセットアップするプロセスを定義します。
SPIRE は、ワークロードとノードの両方の認証を考慮します。つまり、アプリケーションとリソースの両方が信頼できることを確認してから、署名証明書を発行します。
SPIRE サーバーは、SPIFFE ドメイン内で ID の署名局として機能します。また、レジストリ内のワークロードの ID も追跡します。
SPIRE サーバーに加えて SPIRE エージェントが、ワークロードが実行されている各ノードで実行されます。これらのエージェントは SVID のキャッシュを保持し、ワークロードの ID を証明します。SVID の検証は、カーネルレベルのイントロスペクションを使用してローカルで実行できます。つまり、ワークロードは、一部のアクションが認可されているかどうかを確認するために外部サービスを呼び出す必要がありません。
SPIRE はフェデレーションをサポートします。これを通じて、検証に必要な公開鍵と認証を含む信頼バンドルが異なるシステムで交換されます。
SPIFFE と SPIRE のユースケース
SPIFFE と SPIRE は、分散マルチクラウド環境での認証に役立ちます。一般的なユースケースには次のようなものがあります。
ハイブリッドクラウド環境での認証
ハイブリッド環境やマルチクラウド環境では、アプリケーションが複数のクラウドプロバイダーや管理境界にまたがることがあります。そのため、これらのドメイン間で信頼できる通信を実装しようとする場合、複雑さが増します。
SPIFFE フェデレーションを使用することで、さまざまな場所で実行されている SPIRE サーバーは、信頼バンドルを介して公開鍵と証明書を交換できます。信頼バンドルは、特定の SPIFFE 発行局が使用する公開鍵のコレクションの形式です。これにより、秘密鍵や複雑なネットワーク構成を使用せずに、異なるクラウドプロバイダーや管理上の境界を越えて、アプリケーションが信頼を確立できます。
Kubernetes および KubeVirt での ID 管理
Kubernetes 環境には通常、分離されたコンテナで実行されている、互いに連携する必要がある多数の小さなワークロードが含まれます。SPIFFE と SPIRE は、実行場所がネットワーク上のどこであっても、コンテナ化されたアプリケーションの認証を提供することで、Kubernetes 環境のセキュリティを向上させることができます。この強化されたセキュリティは、Red Hat OpenShift Virtualization など、KubeVirt に基づくソリューションで実行されている仮想マシンでも機能します。これにより、ゼロトラスト・アーキテクチャの主要原則である、きめ細かいアクセス制御が促進されます。
AI エージェント向けのワークフロー
AI エージェントは、指示を受け取って他のシステムとやり取りすることで目標を達成するものであり、今では一般的になりつつあります。しかし、機密情報を扱う場合、AI エージェントを活用するのは簡単ではありません。AI エージェントへのアクセス権を付与するには、マシンワークロードに対する強力で検証可能な ID が必要ですが、この作業はハイブリッドクラウド・プラットフォームではさらに複雑になります。SPIFFE と SPIRE は、検証可能な短期的な認証情報をソリューションの一部に提供することができます。これにより、AI サービスは制御された方法で機密データにアクセスできます。
サービスメッシュの信頼
サービスメッシュは、特にコンテナ化されたアプリケーションにおいて、サービス間の通信を処理するレイヤーです。SPIFFE および SPIRE の実装により、サービスメッシュに統合セキュリティ管理を追加することができ、サービスメッシュは暗号的に検証可能な ID を使用することができます。この信頼レベルにより、システム間の相互運用性が単純化されます。これは、サービスメッシュ内外の両方でポリシーを適用するのにも役立ちます。
エッジコンピューティングのセキュリティ
SPIFFE と SPIRE の ID コントロールプレーンはローカル環境まで拡張されるため、エッジコンピューティングに適していると言えます。暗号的に検証可能な SVID により、ネットワーク上のどこにでも強力な認証を実装でき、広範囲に分散したエッジサービスに対しても対応できます。
Kubernetes で SPIFFE と SPIRE を使用する方法
先進的なアプリケーションをクラウドで実行するには、ある程度の自動化が必要です。その代表的な選択肢が Kubernetes です。これは、コンテナでアプリケーションをデプロイ、管理、スケーリングするためのオープンソース・プラットフォームです。Kubernetes は Red Hat OpenShift の基盤です。
SPIFFE と SPIRE を ID コントロールプレーン (前述の「一番下の亀」) として使用すると、Kubernetes 全体において検証可能な ID を使用して作業できます。Kubernetes での SPIFFE と SPIRE について、知っておくべき重要なポイントが 3 つあります。
- SPIRE は、SPIFFE を実装するためのフレームワークです。Kubernetes クラスタ内に SPIRE コンポーネントをデプロイする必要があります。これには、ID と署名を管理する SPIRE サーバーや、各 Kubernetes ノードで 1 つを実行する必要がある SPIRE エージェントなどがあります。これらのコンポーネントは、基盤となる ID インフラストラクチャを作成し、クラスタが ID を暗号的に検証するように準備します。Red Hat のゼロトラスト・ワークロード ID マネージャーは、Red Hat OpenShift 環境でこれを支援します。
- SPIRE エージェントは、ノードとワークロードの両方の認証を実行します。エージェントは、アプリケーションの特性 (Kubernetes namespace、サービスアカウント、コンテナイメージなど) を調べて、アプリケーションの正当性を検証できます。
- 認証後、アプリケーションは SPIRE エージェントによって公開されているローカルの SPIFFE ワークロード API にアクセスし、固有の短期間有効な SVID を取得します。これらの SVID は、相互トランスポート層セキュリティ (mTLS) 接続の確立を支援し、サービス間の信頼できる通信を確保します。
Red Hat のゼロトラストセキュリティを選ぶ理由
Red Hat ソリューションは、包括的なセキュリティを念頭に置いて構築されています。それらのソリューションは、データ主権を実現しつつ、AI 駆動型のクラウドネイティブ・ワークロードのデプロイと管理をサポートする、ゼロトラスト基盤の構築に役立ちます。Red Hat のエキスパートが、マルチクラウド環境でゼロトラストの導入を開始できるよう支援します。
Red Hat のゼロトラスト・ワークロード ID マネージャーは、SPIFFE と SPIRE のインストールとライフサイクル管理を単純化する Red Hat OpenShift Operator です。既存のクラスタにインストールでき、Red Hat OpenShift 上で動作することが検証されています。また、インストールとトラブルシューティングに関する包括的なドキュメントでサポートされています。