Azure Red Hat OpenShift 與託管控制平面會使用使用者指派的管理身份,授予 OpenShift 叢集營運商執行叢集操作所需的 Azure 權限。 你必須先建立這些受管理身份,並在建立叢集前指派正確的 Azure 角色。
本文說明了 Azure Red Hat OpenShift 中託管身份如何運作,並以託管控制平面為基礎,列出所有必要的身份,並說明每個身份所需的角色分配。
Azure Red Hat OpenShift 中使用託管控制平面的受控識別運作方式
在 Azure Red Hat OpenShift 中,管理基礎設施的 OpenShift 叢集營運商會作為獨立元件運作,每個元件都需要自己的 Azure 權限。 每個操作員不共享單一憑證,而是擁有自己由使用者指派的管理身份,僅擁有所需的權限。
受管理身份分為三大類:
- 控制平面操作員身份 - 由 Red Hat Azure 帳號中運行於託管控制平面上的 OpenShift 操作員使用。 這些營運商管理叢集範圍的基礎設施,如節點配置、網路配置及入口。
- 資料平面操作員身份 - 由在你 Azure 帳號工作節點上運行的 OpenShift 操作員使用。 三個運算元(磁碟儲存體、File Storage 和 Image Registry)除了控制平面身份外,還需要獨立的資料平面身份。
- 服務受控識別 - Azure Red Hat OpenShift 託管控制平面服務本身所使用的單一身分識別。 此身份允許叢集操作員的管理身份,並為資料平面操作員身份建立聯邦憑證。
欲了解更多 OpenShift 叢集操作員的資訊,請參閱 OpenShift 容器平台文件中的 叢集操作 員。
必要的受控識別
一個帶有託管控制平面叢集的 Azure Red Hat OpenShift 需要 13 個使用者指派的受管理身份:控制平面操作員 9 個,資料平面操作員 3 個,服務本身 1 個。
控制平面操作員身份包含一個 KMS 操作員的身份,該操作員存取 Azure Key Vault 中客戶管理的 etcd 加密金鑰。
叢集必須在同一訂閱和地點擁有這些受管理身份。
你需要在資源群組上取得貢獻者與使用者存取管理員權限,或稱擁有者權限,才能建立身份及其角色分配。
控制平面操作員身分
你需要為以下控制平面操作員各有一個由使用者指派的管理身份:
| Operator | Description |
|---|---|
| OpenShift Cluster API 提供者 | 管理叢集的節點、網路與磁碟。 |
| OpenShift 控制平面操作員 | 讀取 OpenShift 叢集所需的資源。 |
| OpenShift 雲端控制器管理員 | 管理負載平衡器與節點生命週期的雲端供應商整合。 |
| OpenShift 叢集入口操作員 | 透過負載平衡器與 DNS 管理外部叢集服務存取。 |
| OpenShift 磁碟儲存操作員 | 管理叢集的 Azure Disk 持久磁碟。 |
| OpenShift 檔案儲存運算元 | 管理叢集的 Azure 檔案儲存體 持久磁碟。 |
| OpenShift 影像登錄操作員 | 管理叢集內建的容器映像登錄檔。 |
| OpenShift 網路營運商 | 管理叢集的雲端網路配置。 |
你也必須具備 KMS Operator 的身分:
| Operator | Description |
|---|---|
| 金鑰管理服務(KMS) | 存取 Azure Key Vault 中由客戶管理的加密金鑰。 |
資料平面運算子身份
三個運算元除了控制平面身份外,還需要獨立的資料平面身份。 您必須為下列每個資料平面運算子各指派一個由使用者指派的受控識別:
| Operator | Purpose |
|---|---|
| OpenShift 磁碟儲存操作員 | 從工作節點管理 Azure 磁碟操作。 |
| OpenShift 檔案儲存運算元 | 管理來自工作節點的 Azure 檔案儲存體 作業。 |
| OpenShift 影像登錄操作員 | 管理來自工作節點的映像登錄作業。 |
服務受控識別
您必須有一個由使用者指派的管理身份,才能使用 Azure Red Hat OpenShift 與託管控制平面服務。 此身份執行叢集管理操作,啟用叢集操作員的管理身份,並為資料平面操作員身份建立聯邦憑證。
角色分配
為每個管理身份指派一個或多個 Azure 角色,且設定在正確的範圍內。 在建立叢集之前,先建立所有角色分配。 以下表格中提及的範圍(子網路、VNet 與網路安全群組)即為 你規劃叢集網路時所規劃的相同網路資源。
控制平面操作員角色分配
下表列出每個控制平面操作員身份所需的角色指派,以及該角色被指派的範圍。
| 受管理的識別 | 角色 | Scope |
|---|---|---|
| OpenShift Cluster API 提供者 | Azure Red Hat OpenShift 託管控制平面的 Cluster API 提供者 | VNet 與子網 |
| OpenShift 控制平面操作員 | Azure Red Hat OpenShift 代管控制平面控制平面 Operator | 子網與網路安全組 |
| OpenShift 雲端控制器管理員 | Azure Red Hat OpenShift Cloud Controller Manager | VNet、子網與網路安全群組 |
| OpenShift 叢集入口操作員 | Azure Red Hat OpenShift Cluster Ingress Operator | VNet 與子網 |
| OpenShift 磁碟儲存操作員 | None | N/A |
| OpenShift 檔案儲存運算元 | Azure Red Hat OpenShift File Storage Operator | VNet、子網與網路安全群組 |
| OpenShift 影像登錄操作員 | Azure Red Hat OpenShift 映像登錄操作員 | VNet |
| OpenShift 網路營運商 | Azure Red Hat OpenShift Network Operator | VNet 與子網 |
KMS 身份還需要以下角色指派:
| 受管理的識別 | 角色 | Scope |
|---|---|---|
| 金鑰管理服務(KMS) | 金鑰保存庫 密碼編譯使用者 | Azure Key Vault |
資料平面操作員角色分配
下表列出資料平面操作員身份所需的角色指派。
| 受管理的識別 | 角色 | Scope |
|---|---|---|
| OpenShift 磁碟儲存操作員 | None | N/A |
| OpenShift 檔案儲存運算元 | Azure Red Hat OpenShift File Storage Operator | VNet、子網與網路安全群組 |
| OpenShift 影像登錄操作員 | Azure Red Hat OpenShift 映像登錄操作員 | VNet |
服務管理身份角色指派
服務管理身份需要在不同範圍內分配多個角色。
服役角色分配
在以下範圍內,將 Azure Red Hat OpenShift 與託管控制平面的服務角色指派給服務管理身份:
- VNet
- 子網路
- 網路安全性群組
讀者角色分配
在每個控制平面操作員管理身份上,將 讀取 器角色指派給服務管理身份。 此角色賦予服務在叢集配置期間讀取每個操作員身份屬性的能力。
同盟憑證角色指派
在每個資料平面營運者管理身份上,將 Azure Red Hat OpenShift 聯邦憑證角色指派給服務管理身份。 此角色賦予服務建立聯邦憑證的能力,使資料平面操作員能透過工作負載身份進行認證。