為了提升ACK托管集群節點的安全性,您可以基于最小化原則手動調整和優化已分配給Worker節點的RAM角色所具有的權限。
前提條件
已創建ACK托管集群(ACK集群Pro版和ACK集群基礎版),且集群為1.18或以上版本。具體操作,請參見創建ACK托管集群、手動升級集群。
如需收斂ACK專有版集群,請將其遷移至ACK集群Pro版。具體操作,請參見熱遷移ACK專有集群至ACK集群Pro版。
已授權ACK托管集群所依賴的默認服務角色。具體操作,請參見一鍵授權服務角色。
步驟一:確認是否需要收斂
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱。然后單擊基本信息頁簽。單擊Worker RAM 角色右側的鏈接進入RAM管理控制臺。
在角色頁面的權限管理頁簽,查看是否存在權限策略。
若列表為空,則無需收斂。
若列表不為空,例如k8sWorkerRolePolicy-db8ad5c7***,則Worker RAM角色權限可能需要收斂。請根據實際業務場景,基于最小化原則進一步判斷。
步驟二:升級系統組件版本
ACK托管集群中安裝的核心系統組件需升級到要求的最低版本或者組件的最新版本。具體操作,請參見管理組件。
請勿同時升級多個組件,請依次逐個組件升級,確認一個組件升級成功后再升級下一個組件。
升級組件前,請注意查看每個組件的備注信息。
組件分為通過組件管理安裝和通過節點池安裝兩類,具體要求及升級方法如下。
通過組件管理安裝的組件
您可以參考以下表格,在組件管理頁面將當前集群已安裝的組件升級到要求的最低版本或者組件的最新版本。對于無需升級的組件,您需要參考以下表格中的重新部署組件命令來部署已安裝的組件,也可以通過控制臺重新部署組件。
組件名稱 | 最低組件版本要求 | 執行重新部署組件的命令 | 備注 |
metrics-server | v0.3.9.4-ff225cd-aliyun |
| 無 |
alicloud-monitor-controller | v1.5.5 |
| 無 |
logtail-ds | v1.0.29.1-0550501-aliyun |
| |
terway | v1.0.10.333-gfd2b7b8-aliyun |
|
|
terway-eni | v1.0.10.333-gfd2b7b8-aliyun |
| |
terway-eniip | v1.0.10.333-gfd2b7b8-aliyun |
| |
terway-controlplane | v1.2.1 |
| 無 |
flexvolume | v1.14.8.109-649dc5a-aliyun |
| |
csi-plugin | v1.18.8.45-1c5d2cd1-aliyun |
| 無 |
csi-provisioner | v1.18.8.45-1c5d2cd1-aliyun |
| 無 |
storage-operator | v1.18.8.55-e398ce5-aliyun |
| 無 |
alicloud-disk-controller | v1.14.8.51-842f0a81-aliyun |
| 無 |
ack-node-problem-detector | 1.2.16 |
| 無 |
aliyun-acr-credential-helper | v23.02.06.2-74e2172-aliyun |
| 組件升級前,您需要先進行授權。
|
ack-cost-exporter | 1.0.10 |
| 組件升級前,您需要先進行授權。 |
mse-ingress-controller | 1.1.5 |
| 組件升級前,您需要先進行授權。 |
arms-prometheus | 1.1.11 |
| 無 |
ack-onepilot | 3.0.11 |
| 組件升級前,您需要先進行授權。 |
通過節點池安裝的組件cluster-autoscaler
組件名稱 | 最低組件版本要求 | 執行以下重新部署命令 | 備注 |
cluster-autoscaler | v1.3.1-bcf13de9-aliyun |
| 您可以通過以下兩種方式查看cluster-autoscaler組件的版本。如需升級組件版本,請參見【組件升級】cluster-autoscaler升級公告。
|
檢查Terway組件配置
如果您的集群中安裝了terway、terway-eni或terway-eniip組件,您還需要手動檢查集群內Terway的配置文件,即檢查kube-system命名空間下名為eni-config的ConfigMap中eni_conf
配置的內容。
執行以下命令,編輯查看Terway的配置ConfigMap。
kubectl edit cm eni-config -n kube-system
如果文件中包含配置項
"credential_path": "/var/addon/token-config",
則無需進行額外操作。如果文件中未包含配置項
"credential_path": "/var/addon/token-config",
則需要您手動修改eni_conf
配置,在min_pool_size
配置項下面新增一行"credential_path": "/var/addon/token-config",
配置。"credential_path": "/var/addon/token-config",
根據以上Terway組件對應的部署命令,重新部署Terway組件工作負載。
步驟三:采集操作審計日志
您需要采集API操作審計日志,以便分析測試集群產生的日志,檢查集群內是否還有應用在依賴Worker RAM角色被授予的權限策略。關于操作審計功能支持的云服務,請參見支持的云服務。
建議您至少采集一周以上的操作審計日志。
在操作審計控制臺創建集群所在地域的賬號跟蹤,同時在創建時選擇將事件投遞到日志服務SLS。具體操作,請參見創建單賬號跟蹤。
步驟四:測試集群功能
以上收斂操作完成后,您需要對集群的基礎功能進行測試,確保系統組件能正常工作。
基礎功能點 | 基礎測試點 | 參考文檔 |
計算 | 可以正常擴縮容節點。 | |
網絡 | 可以正常為Pod分配IP。 | |
存儲 | 可以正常部署使用外置存儲的工作負載(如果已使用該功能)。 | |
監控 | 可以正常獲取監控告警數據。 | |
彈性 | 可以正常實現節點的自動彈性伸縮(如果已使用該功能)。 | |
安全 | 可以正常使用鏡像免密拉取功能(如果已使用該功能)。 |
集群基礎功能測試完成后,請您根據實際的業務場景,再測試一下集群中部署應用的業務邏輯,確保業務正常工作。
步驟五:分析操作審計日志
登錄日志服務控制臺。
在Project列表區域,單擊目標Project。
在
頁簽中,單擊目標Logstore。查詢步驟三指定的日志Project中審計日志所屬的Logstore,即名為actiontrail_<跟蹤名稱>的日志庫(Logstore)中存儲的所有操作審計日志。
使用以下查詢統計語句,統計集群內應用使用Worker RAM角色的STS Token調用的OpenAPI列表。
請將以下語句中的
<worker_role_name>
替換為集群的Worker RAM角色名稱。* and event.userIdentity.userName: <worker_role_name> | select "event.serviceName", "event.eventName", count(*) as total GROUP BY "event.eventName", "event.serviceName"
步驟六:收斂Worker RAM角色被授予的權限
相關文檔
如需了解ACK的整體授權體系,請參見授權最佳實踐。