檢視次數:
設定檔適用性:級別 1
在 Azure Kubernetes Service (AKS) 叢集中,azure.json 檔案是由 Kubernetes 雲端提供者整合 Azure 所使用的配置檔案。此檔案包含關鍵細節,使 Kubernetes 叢集能夠有效地與 Azure 資源互動。它是 Azure 雲端提供者配置的一部分,讓 Kubernetes 元件能夠與 Azure 服務進行通訊,以實現負載平衡器、儲存和網路等功能。
確保檔案的擁有者是root:root
AKS 中的 azure.json 檔案通常包括:
  • Tenant ID: AKS 叢集所在的 Azure 租戶 ID。
  • Subscription ID: 用於計費和資源管理的 Azure 訂閱 ID。
  • AAD Client ID: Kubernetes 雲端提供者用來與 Azure 資源互動的 Azure Active Directory (AAD) 應用程式用戶端 ID。
  • AAD Client Secret: AAD 應用程式的密鑰。
  • Resource Group: AKS 叢集資源所在的資源群組名稱。
  • 位置: 部署 AKS 叢集的 Azure 區域。
  • VM Type: 指定叢集使用的 VM 類型(例如,標準 VM 或虛擬機器規模設定)。
  • Subnet Name, Security Group Name, Vnet Name, and Vnet Resource Group: 叢集的網路詳細資訊。
  • Route Table Name: 叢集的路由表名稱。
  • Storage Account Type: 用於 Kubernetes 永續性磁碟區的預設儲存帳戶類型。
注意
注意
請參閱 Azure AKS 文件以獲取預設值。

稽核

Method 1
  1. SSH到工作節點。
  2. 檢查 Kubelet 服務是否正在運行:
    sudo systemctl status kubelet
    輸出應返回 Active: active (running) since..
  3. 在每個節點上運行以下命令以找到適當的 Kubelet 配置檔:
    ps -ef | grep kubelet
    上述命令的輸出應返回類似於 --config /etc/kubernetes/azure.json 的內容,這是 Kubelet 配置檔案的位置信息。
  4. 執行下列命令:
    stat -c %U:%G /etc/kubernetes/azure.json
    上述命令的輸出是 Kubelet 配置文件的所有權。
  5. 確認所有權已設定為 root:root
Method 2
建立並執行特權 Pod
  1. 您將需要運行一個具有足夠權限以訪問主機檔案系統的 Pod。這可以通過部署一個使用 hostPath 卷將節點的檔案系統掛載到 Pod 的 Pod 來實現。
    範例 Pod 定義:
           apiVersion: v1
           kind: Pod
           metadata:
           name: file-check
           spec:
           volumes:
           - name: host-root
           hostPath:
           path: /
           type: Directory
           containers:
           - name: nsenter
           image: busybox
           command: ["sleep", "3600"]
           volumeMounts:
           - name: host-root
           mountPath: /host
           securityContext:
           privileged: true
          
  2. 將此保存到檔案中(例如,file-check-pod.yaml)並創建 Pod:
    kubectl apply -f file-check-pod.yaml
  3. 一旦 Pod 運行,您可以執行進入以檢查節點上的文件所有權:
    kubectl exec -it file-check -- sh
  4. 現在您在 Pod 的 shell 中,但您可以透過 /host 目錄存取節點的檔案系統,並檢查檔案的擁有權:
    ls -l /host/etc/kubernetes/azure.json
  5. 驗證檔案是否存在,並確認其擁有者為root root

矯正性處理

執行以下指令(根據在稽核步驟中識別的設定檔檔案位置):
chown root:root /etc/kubernetes/azure.json