受管理的工作負載身分總覽

受管理的工作負載身分功能是 Identity and Access Management API 的一部分。 代管工作負載身分會自動佈建及管理憑證授權單位服務的 X.509 憑證,簡化 mTLS 作業。

代管 Workload Identity 是以適用於所有人的安全正式環境身分架構 (SPIFFE) 標準為基礎,這個架構可使用專屬 SPIFFE ID 識別、驗證工作負載,並確保工作負載之間的通訊安全。

本頁面將討論代管型 Workload Identity,並說明如何將代管型身分指派給負載平衡器,以進行 mTLS 驗證。如要進一步瞭解其他工作負載的受管理工作負載身分,請參閱「受管理的工作負載身分總覽」。

SPIFFE ID

受控識別項會以 SPIFFE ID 表示。SPIFFE ID 是 URI,可明確識別工作負載。如果是後端 mTLS,工作負載就是負載平衡器的後端服務。格式如下:

spiffe://TRUST_DOMAIN_NAME/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

TRUST_DOMAIN_NAME 進一步擴展如下:

WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog

為整合所有項目,Compute Engine 工作負載 (例如負載平衡器的後端服務資源) 可以擁有受管理的身分,如下所示:

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

以下章節說明不同的受管理工作負載身分識別資源。

代管型 Workload Identity 資源階層

如要為負載平衡器設定代管 Workload Identity,請建立下列資源。本文的後續章節將說明這些資源。

  • Workload Identity 集區
  • 命名空間
  • 代管型 Workload Identity
  • 認證政策

Workload Identity 集區

受管理的工作負載身分是在工作負載身分集區中定義,該集區可做為信任網域。

信任網域代表邏輯安全邊界,工作負載可使用 SPIFFE ID 相互驗證及授權。同一信任網域中的所有工作負載會共用信任根,因此工作負載可以驗證彼此的身分。

如要使用受管理的身分,您必須以 TRUST_DOMAIN 模式設定工作負載身分集區。集區中的所有身分都包含單一命名空間和個別工作負載 ID。

在下圖中,負載平衡器和後端屬於同一個信任網域,共用相同的根憑證。根憑證用於建立信任鏈,並驗證信任網域內工作負載的身分。

根據預設,同一信任網域內的工作負載可以使用受管理的工作負載身分相互驗證。如要讓不同信任網域中的工作負載相互驗證,您必須在工作負載身分集區中明確宣告信任關係。如要這麼做,請建立內嵌信任設定,以辨識及接受來自其他信任網域的憑證。

代管型 Workload Identity 資源階層。
受管理的工作負載身分識別資源階層 (按一下即可放大)。

命名空間

在 workload identity pool 中,受管理的工作負載身分會整理成稱為「命名空間」的管理邊界。命名空間可協助您整理及授予相關工作負載身分的存取權。

代管型 Workload Identity

代管型 Workload Identity 或代管型身分是 workload identity pool 中設定的工作負載 ID。附加至 Google Cloud 資源。每個代管身分都會透過命名空間和個別工作負載 ID 進行不重複的識別。

為達成後端 mTLS,受管理的身分會附加至負載平衡器的後端服務資源。

受管理身分的值是完整指定的 SPIFFE ID,必須符合下列格式:

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

認證政策

如要為 Compute Engine 資源使用受管理的工作負載身分,您必須設定驗證政策。

工作負載認證政策包含規則,可指定哪些工作負載可取得代管工作負載身分的 X.509 憑證。認證政策會使用可驗證的工作負載屬性 (例如專案 ID 或資源名稱),確保只有受信任的工作負載可以使用特定代管身分。

後續步驟