設定檔適用性:級別 1
在 Azure Kubernetes 服務 (AKS) 叢集中,azure.json 檔案是一個由 Kubernetes 雲端供應商整合 Azure 所使用的配置檔案。此檔案包含關鍵細節,使
Kubernetes 叢集能夠有效地與 Azure 資源互動。它是 Azure 雲端供應商配置的一部分,使 Kubernetes 元件能夠與 Azure 服務進行通訊,以實現負載平衡器、儲存和網路等功能。
確保 azure.json 文件的權限為 644 或更嚴格。
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
-
檢查 Kubelet 服務是否正在運行:
sudo systemctl status kubelet
輸出應返回Active: active (running) since..
-
在每個節點上運行以下命令以找到適當的 Kubelet 配置檔:
ps -ef | grep kubelet
上述命令的輸出應返回類似於--config /etc/kubernetes/azure.json
的內容,這是 Kubelet 配置檔案的位置信息。 -
執行下列命令:
stat -c %a /etc/kubernetes/azure.json
上述命令的輸出是 Kubelet 配置檔案的權限。 -
驗證權限是否為 644 或更嚴格。
Method 2
建立並執行特權 Pod
-
您將需要運行一個具有足夠權限以訪問主機檔案系統的 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
-
將此保存到檔案中(例如,file-check-pod.yaml)並創建 Pod:
kubectl apply -f file-check-pod.yaml
-
一旦 pod 運行,您可以執行進入以檢查節點上的文件權限:
kubectl exec -it file-check -- sh
-
現在您在 Pod 的 shell 中,但您可以透過 /host 目錄存取節點的檔案系統並檢查檔案的權限等級:
ls -l /host/etc/kubernetes/azure.json
-
確認檔案是否存在,並確保權限為644或更嚴格。
矯正性處理
在每個工作節點上執行以下命令(根據您系統上的檔案位置):
chmod 644 <azure.json file>