View a markdown version of this page

連接 Azure 資源 - AWS DevOps 代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

連接 Azure 資源

Azure 資源整合可讓 AWS DevOps 代理程式在事件調查期間探索和調查 Azure 訂閱中的資源。代理程式使用 Azure Resource Graph 進行資源探索,並可跨 Azure 環境存取指標、日誌和組態資料。

此整合遵循兩個步驟:在 AWS 帳戶層級註冊 Azure,然後將特定 Azure 訂閱與個別客服人員空間建立關聯。

先決條件

連接 Azure 資源之前,請確定您已:

  • 存取 AWS DevOps 代理程式主控台

  • 可存取目標訂閱的 Azure 帳戶

  • 針對管理員同意方法:具有在 Microsoft Entra ID 中執行管理員同意許可的帳戶

  • 對於應用程式註冊方法:具有設定聯合身分憑證許可的 Entra 應用程式,以及在 AWS 您的帳戶中啟用傳出身分聯合

管理員同意方法使用以同意為基礎的流程搭配 AWS DevOps 代理程式受管應用程式。

步驟 1:開始註冊

  1. 登入 AWS 管理主控台並導覽至 AWS DevOps 代理程式主控台

  2. 前往功能提供者頁面

  3. 找到 Azure 雲端區段,然後按一下註冊

  4. 選取管理員同意註冊方法

  1. 檢閱請求的許可

  2. 按一下以繼續 - 系統會將您重新導向至 Microsoft Entra 管理員同意頁面

  3. 使用具有執行管理員同意許可的使用者主體帳戶登入

  4. 檢閱並授予對 AWS DevOps Agent 應用程式的同意

步驟 3:完成使用者授權

  1. 管理員同意後,系統會提示您輸入使用者授權,以驗證您的身分為授權租用戶的成員

  2. 使用屬於相同 Azure 租用戶的帳戶登入

  3. 授權之後,系統會將您重新導向回成功狀態的 AWS DevOps 代理程式主控台

步驟 4:指派角色

請參閱以下指派 Azure 角色。選取成員時搜尋 AWS DevOps 代理程式。

透過應用程式註冊註冊 Azure 資源

應用程式註冊方法使用您自己的 Entra 應用程式搭配聯合身分憑證。

步驟 1:開始註冊

  1. 在 AWS DevOps 代理程式主控台中,前往功能提供者頁面

  2. 找到 Azure 雲端區段,然後按一下註冊

  3. 選取應用程式註冊方法

步驟 2:建立和設定您的 Entra 應用程式

遵循主控台中顯示的指示,以:

  1. 在 AWS 帳戶中啟用傳出聯合身分 (在 IAM 主控台中,前往帳戶設定傳出聯合身分)

  2. 在 Microsoft Entra ID 中建立 Entra 應用程式,或使用現有的應用程式

  3. 在應用程式上設定聯合身分憑證

步驟 3:提供註冊詳細資訊

使用下列項目填寫註冊表單:

  • 租用戶 ID – Azure 租用戶識別符

  • 租用戶名稱 – 租用戶的顯示名稱

  • 用戶端 ID – 您建立之 Entra 應用程式的應用程式 (用戶端) ID

  • 對象 – 聯合登入資料的對象識別符

步驟 4:建立 IAM 角色

當您透過主控台提交註冊時,會自動建立 IAM 角色。它允許 AWS DevOps 代理程式擔任登入資料並叫用 sts:GetWebIdentityToken

步驟 5:指派角色

請參閱以下指派 Azure 角色。搜尋您在選取成員時建立的 Entra 應用程式。

步驟 6:完成註冊

  1. 在 AWS DevOps 代理程式主控台中確認組態

  2. 按一下提交以完成註冊

指派 Azure 角色

註冊後,授予應用程式對 Azure 訂閱的讀取存取權。管理員同意和應用程式註冊方法的此步驟相同。

  1. 在 Azure 入口網站中,導覽至您的目標訂閱

  2. 前往存取控制 (IAM)

  3. 按一下新增 > 新增角色指派

  4. 選取讀取器角色,然後按一下下一步

  5. 按一下選取成員,搜尋應用程式 (AWS DevOps Agent for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊)

  6. 選取應用程式,然後按一下檢閱 + 指派

  7. (選用) 若要讓代理程式存取 Azure Kubernetes Service (AKS) 叢集,請完成下列 AKS 存取設定。

AKS 存取設定 (選用)

步驟 1:Azure Resource Manager (ARM) 層級存取

Azure Kubernetes 服務叢集使用者角色指派給應用程式。

在 Azure 入口網站中,前往訂閱 → 選取訂閱 → 存取控制 (IAM)新增角色指派 → 選取 Azure Kubernetes 服務叢集使用者角色 → 指派給應用程式 (AWS DevOps Agent for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊)。

這涵蓋訂閱中的所有 AKS 叢集。若要限定特定叢集的範圍,請改為在資源群組或個別叢集層級指派 。

步驟 2:Kubernetes API 存取

根據叢集的身分驗證組態選擇一個選項:

選項 A:Kubernetes 的 Azure 角色型存取控制 (RBAC) (建議)

  1. 如果尚未啟用,請在叢集上啟用 Azure RBAC:Azure 入口網站 → AKS 叢集 → 設定安全組態身分驗證和授權 → 選取 Azure RBAC

  2. 指派唯讀角色:Azure 入口網站 → 訂閱 → 選取訂閱 → 存取控制 (IAM)新增角色指派 → 選取 Azure Kubernetes Service RBAC 讀取器 → 指派給應用程式

這涵蓋訂閱中的所有 AKS 叢集。

選項 B:Azure Active Directory (Azure AD) + Kubernetes RBAC

如果您的叢集已使用預設的 Azure AD 身分驗證組態,且您不想啟用 Azure RBAC,請使用此選項。這需要每個叢集kubectl的設定。

  1. 將下列資訊清單儲存為 devops-agent-reader.yaml

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: devops-agent-reader rules: - apiGroups: [""] resources: ["namespaces", "pods", "pods/log", "services", "events", "nodes"] verbs: ["get", "list"] - apiGroups: ["apps"] resources: ["deployments", "replicasets", "statefulsets", "daemonsets"] verbs: ["get", "list"] - apiGroups: ["metrics.k8s.io"] resources: ["pods", "nodes"] verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: devops-agent-reader-binding subjects: - kind: User name: "<SERVICE_PRINCIPAL_OBJECT_ID>" apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: devops-agent-reader apiGroup: rbac.authorization.k8s.io
  1. <SERVICE_PRINCIPAL_OBJECT_ID> 以服務主體的物件 ID 取代 。若要尋找它:Azure Portal → Entra ID → 企業應用程式 → 搜尋應用程式名稱 (AWS DevOps Agent for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊)。

  2. 套用至每個叢集:

az aks get-credentials --resource-group <rg> --name <cluster-name> kubectl apply -f devops-agent-reader.yaml

最低權限自訂角色 (選用)

若要加強存取控制,您可以建立自訂 Azure 角色,範圍僅限於資源提供者 AWS DevOps 代理程式使用的 ,而非廣泛的讀取器角色:

{ "Name": "AWS DevOps Agent - Azure Reader", "Description": "Least-privilege read-only access for AWS DevOps Agent incident investigations.", "Actions": [ "Microsoft.AlertsManagement/*/read", "Microsoft.Compute/*/read", "Microsoft.ContainerRegistry/*/read", "Microsoft.ContainerService/*/read", "Microsoft.ContainerService/managedClusters/commandResults/read", "Microsoft.DocumentDB/*/read", "Microsoft.Insights/*/read", "Microsoft.KeyVault/vaults/read", "Microsoft.ManagedIdentity/*/read", "Microsoft.Monitor/*/read", "Microsoft.Network/*/read", "Microsoft.OperationalInsights/*/read", "Microsoft.ResourceGraph/resources/read", "Microsoft.ResourceHealth/*/read", "Microsoft.Resources/*/read", "Microsoft.Sql/*/read", "Microsoft.Storage/*/read", "Microsoft.Web/*/read" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/{your-subscription-id}" ] }

將訂閱與客服人員空間建立關聯

在帳戶層級註冊 Azure 之後,請將特定訂閱與您的 代理程式空間建立關聯:

  1. 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間

  2. 前往功能索引標籤

  3. 次要來源區段中,按一下新增

  4. 選取 Azure

  5. 提供您要關聯的 Azure 訂閱的訂閱 ID

  6. 按一下新增以完成關聯

您可以將多個訂閱與相同的代理程式空間建立關聯,讓代理程式在您的 Azure 環境中可見性。

管理 Azure 資源連線

  • 檢視連線訂閱 – 在功能索引標籤中,次要來源區段會列出所有連線的 Azure 訂閱。

  • 移除訂閱 – 若要中斷訂閱與客服人員空間的連線,請在次要來源清單中選取訂閱,然後按一下移除。這不會影響帳戶層級註冊。

  • 移除註冊 – 若要完全移除 Azure 雲端註冊,請前往功能提供者頁面並刪除註冊。必須先移除所有 Agent Space 關聯。