第10章 Zero Trust Workload Identity Manager
10.1. Zero Trust Workload Identity Manager の概要 リンクのコピーリンクがクリップボードにコピーされました!
Zero Trust Workload Identity Manager はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Zero Trust Workload Identity Manager は、Secure Production Identity Framework for Everyone (SPIFFE) と SPIFFE Runtime Environment (SPIRE) を活用して、分散システム向けの包括的な Identity Management ソリューションを提供するものです。SPIFFE と SPIRE は、ワークロードアイデンティティーを標準化し、ワークロードが同じクラスター上または別の環境にある他のサービスと通信できるようにします。
Zero Trust Workload Identity Manager は、有効期間が長く手動で管理されるシークレットを、暗号的に検証可能なアイデンティティーに置き換えます。強力な認証を提供し、相互に通信しているワークロードが、自らが主張するとおりの本物であることが保証されます。SPIRE は、SPIFFE Verifiable Identity Document (SVID) の発行、ローテーション、失効を自動化し、シークレットを管理する開発者と管理者の作業負荷を軽減します。
SPIFFE は、オンプレミス環境、クラウド環境、ハイブリッド環境など、さまざまなインフラストラクチャーで動作します。SPIFFE のアイデンティティーは暗号化に対応しており、監査とコンプライアンスの基盤を提供します。
Zero Trust Workload Identity Manager アーキテクチャーのコンポーネントは次のとおりです。
10.1.1. SPIFFE リンクのコピーリンクがクリップボードにコピーされました!
Secure Production Identity Framework for Everyone (SPIFFE) は、分散システム内のソフトウェアワークロード間の信頼を確立するための標準化された方法を提供します。SPIFFE は、SPIFFE ID と呼ばれる一意の ID を割り当てます。この ID は、信頼ドメインとワークロード ID を含む Uniform Resource Identifiers (URI) です。
SPIFFE ID は、SPIFFE Verifiable Identity Document (SVID) に含まれています。SVID は、ワークロードが他のワークロードに対してアイデンティティーを検証し、ワークロードが相互に通信できるようにするために使用されます。SVID には次の 2 つの主な形式があります。
- X.509-SVID: SPIFFE ID がサブジェクト代替名 (SAN) フィールドに埋め込まれている X.509 証明書。
-
JWT-SVID: SPIFFE ID が
sub
クレームとして含まれる JSON Web Tokens (JWT)。詳細は、SPIFFE の概要 を参照してください。
10.1.2. SPIRE サーバー リンクのコピーリンクがクリップボードにコピーされました!
SPIRE サーバーは、信頼ドメイン内で SPIFFE アイデンティティーを管理および発行する役割を担います。登録エントリー (SPIFFE ID を発行する条件を決定するセレクター) と署名鍵を格納します。SPIRE サーバーは SPIRE エージェントと連携し、ノードプラグインを介してノードアテステーションを実行します。詳細は、SPIRE サーバーについて を参照してください。
10.1.3. SPIRE エージェント リンクのコピーリンクがクリップボードにコピーされました!
SPIRE エージェントはワークロードのアテステーションを担当し、SPIFFE Workload API を通じて認証を要求するときに、ワークロードに検証済みのアイデンティティーを確実に付与します。これは、設定済みのワークロードアテスタープラグインを使用することで実現されます。Kubernetes 環境では、Kubernetes ワークロードアテスタープラグインが使用されます。
SPIRE と SPIRE エージェントは、ノードプラグインを介してノードアテステーションを実行します。プラグインは、エージェントが稼働するノードのアイデンティティーを確認するために使用されます。詳細は、SPIRE エージェントについて を参照してください。
10.1.4. アテステーション リンクのコピーリンクがクリップボードにコピーされました!
アテステーションは、SPIFFE ID と SVID を発行する前に、ノードとワークロードのアイデンティティーを検証するプロセスです。SPIRE サーバーは、ワークロードの属性と SPIRE エージェントが稼働するノードの属性を収集し、それらをワークロードの登録時に定義された一連のセレクターと比較します。比較が成功した場合、エンティティーに認証情報が提供されます。これにより、信頼ドメイン内の正当かつ予期されるエンティティーにのみ、暗号化アイデンティティーが確実に付与されます。SPIFFE/SPIRE には、主に次の 2 種類のアテステーションがあります。
- ノードアテステーション: ノード上で稼働する SPIRE エージェントを信頼し、ワークロードのアイデンティティーを要求する権限を付与する前に、システム上のマシンまたはノードのアイデンティティーを検証します。
- ワークロードアテステーション: アテステーションにより検証されたノード上で稼働する SPIRE エージェントが、そのノード上のアプリケーションやサービスに SPIFFE ID と SVID を提供する前に、そのアプリケーションやサービスのアイデンティティーを検証します。詳細は、アテステーション を参照してください。
10.1.5. Zero Trust Workload Identity Manager のワークフロー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift クラスターにおける Zero Trust Workload Identity Manager のワークフローの概要を以下に示します。
- SPIRE、SPIRE エージェント、SPIFFE CSI ドライバー、および SPIRE OIDC ディスカバリープロバイダーのオペランドが、関連付けられているカスタムリソース定義 (CRD) を介して Zero Trust Workload Identity Manager によってデプロイおよび管理されます。
- 次に、関連する Kubernetes リソースに監視が登録され、必要な SPIRE CRD がクラスターに適用されます。
-
ZeroTrustWorkloadIdentityManager の CR (
cluster
という名前のリソース) が、コントローラーによってデプロイおよび管理されます。 SPIRE サーバー、SPIRE エージェント、SPIFFE CSI ドライバー、および SPIRE OIDC ディスカバリープロバイダーをデプロイするために、特定のタイプのカスタムリソースを作成し、
cluster
という名前を付ける必要があります。カスタムリソースのタイプは次のとおりです。-
SPIRE サーバー -
SpireServer
-
SPIRE エージェント -
SpireAgent
-
SPIFFE CSI ドライバー -
SpiffeCSIDriver
-
SPIRE OIDC ディスカバリープロバイダー -
SpireOIDCDiscoveryProvider
-
SPIRE サーバー -
- ノードが起動すると、SPIRE エージェントが初期化され、SPIRE サーバーに接続します。
- エージェントがノードアテステーションのプロセスを開始します。エージェントは、ラベル名や namespace などのノードのアイデンティティーに関する情報を収集します。エージェントは、アテステーションを通じて収集した情報を SPIRE サーバーにセキュアに提供します。
- 次に、SPIRE サーバーが、設定済みのアテステーションポリシーと登録エントリーに照らしてこの情報を評価します。成功した場合、サーバーはエージェントの SVID とトラストバンドル (CA 証明書) を生成し、これをセキュアにエージェントに送り返します。
- ノードでワークロードが起動します。ワークロードにはセキュアなアイデンティティーが必要です。ワークロードはエージェントの Workload API に接続し、SVID を要求します。
- エージェントが要求を受信し、ワークロードアテステーションを開始してワークロードに関する情報を収集します。
- エージェントが情報を収集した後、その情報が SPIRE サーバーに送信されます。サーバーは設定された登録エントリーを確認します。
- エージェントがワークロードの SVID とトラストバンドルを受信し、それをワークロードに渡します。ワークロードは、他の SPIFFE 対応デバイスに SVID を提示して通信できるようになります。