在 Kubernetes 叢集上執行的軟體工作負載需要身分識別,才能驗證和存取資源或與其他服務通訊。 針對在 Azure 外部執行的軟體工作負載,您必須使用應用程式認證,例如秘碼或憑證,來存取受 Microsoft Entra 保護的資源 (例如 Azure Key Vault 或 Azure BBlob 儲存體)。 這些認證會帶來安全性風險,必須安全存放並定期輪替。 認證到期也會有服務停機的風險。
工作負載身分識別同盟可讓您在 Microsoft Entra ID 中設定使用者指派的受控識別或應用程式註冊,以信任來自外部識別提供者 (IdP) 的權杖,例如 Kubernetes。 Microsoft Entra ID 中使用者指派的受控識別或應用程式註冊,會成為在已啟用 Arc 的 Kubernetes 叢集上執行之軟體工作負載的身分識別。 建立信任關係之後,您的工作負載就可以從已啟用 Arc 的 Kubernetes 叢集交換信任的權杖,以取得來自 Microsoft 身分識別平台的存取權杖。 您的軟體工作負載會使用該存取權杖來存取受 Microsoft Entra 保護的資源。 透過工作負載身分識別同盟,您可以消除手動管理認證的維護負擔,並消除洩漏秘碼或憑證過期的風險。
工作負載身分識別如何與已啟用 Azure Arc 的 Kubernetes 叢集搭配運作
已啟用 Azure Arc 的 Kubernetes 工作負載身分識別支援會使用服務帳戶權杖磁碟區投影 (也就是服務帳戶),讓工作負載 Pod 可以使用 Kubernetes 身分識別。 已發行 Kubernetes 權杖,而 OpenID Connect (OIDC) 同盟可讓 Kubernetes 應用程式根據批注的服務帳戶,使用 Microsoft Entra ID 安全地存取 Azure 資源。
已啟用 Arc 的 Kubernetes 叢集可作為權杖簽發者。 Microsoft Entra ID 會使用 OIDC 來探索公開簽署金鑰,並驗證服務帳戶權杖的真確性,然後再將其交換 Microsoft Entra 權杖。 您的工作負載可以使用 Azure 身分識別用戶端程式庫或 Microsoft 驗證程式庫 (MSAL),將投影到其磁碟區的服務帳戶權杖交換為 Microsoft Entra 權杖。
下表顯示 Microsoft Entra 工作負載 ID 所需的 OIDC 簽發者端點。
| 端點 | 描述 |
|---|---|
{IssuerURL}/.well-known/openid-configuration |
也稱為 OIDC 探索文件。 包含關於簽發者設定的中繼資料。 |
{IssuerURL}/openid/v1/jwks |
包含 Microsoft Entra ID 用來驗證服務帳戶權杖真確性的公開簽署金鑰。 |
服務帳戶標籤和註釋
Microsoft Entra 工作負載 ID 支援下列與服務帳戶相關的對應:
- 一對一:服務帳戶會參考 Microsoft Entra 物件。
- 多對一:多個服務帳戶會參考相同的 Microsoft Entra 物件。
- 一對多:服務帳戶會透過變更用戶端識別碼註釋來參考多個 Microsoft Entra 物件。 如需詳細資訊,請參閱如何將多個身分識別與 Kubernetes 服務帳戶建立同盟。
需求
已啟用 Azure Arc 的 Kubernetes 叢集支援從代理程式 1.21 版起的 Microsoft Entra 工作負載身分識別。
若要使用工作負載身分識別功能,您必須擁有 Azure CLI 2.64 版或更新版本,以及 az connectedk8s 1.10.0 版或更高版本。 更新您的 az connectedk8s 版本之前,請務必先更新您的 Azure CLI 版本。 如果您使用 Azure Cloud Shell,將會安裝最新版的 Azure CLI。
Microsoft Entra 工作負載 ID 特別適合搭配使用 Azure 身分識別用戶端程式庫或 Microsoft 驗證程式庫 (MSAL) 集合,以及應用程式註冊。 您的工作負載可以使用上述任何程式庫,以順暢地驗證和存取 Azure 雲端資源。
如需與熱門程式庫整合的詳細資訊,請參閱搭配 AKS 使用 Microsoft Entra 工作負載 ID。
目前的限制
請記住下列目前限制:
- 每個受控識別最多可以設定 20 個同盟身分識別認證。
- 初始新增同盟身分識別認證之後,需要幾秒鐘的時間才能傳播。
- 在某些區域中,不支援在使用者指派的受控識別上建立同盟身分識別認證。
後續步驟
- 了解如何在已啟用 Azure Arc 的 Kubernetes 叢集上啟用工作負載身分識別,並將您的應用程式設定為使用工作負載身分識別。
- 遵循已啟用 Azure Arc 的 Kubernetes 安全性手冊中的指導,協助以其他方式保護您的叢集。