為了提升ACK託管叢集節點的安全性,您可以基於最小化原則手動調整和最佳化已指派給Worker節點的RAM角色所具有的許可權。
前提條件
已建立ACK託管叢集(ACK叢集Pro版和ACK叢集基礎版),且叢集為1.18或以上版本。具體操作,請參見建立ACK託管叢集、手動升級叢集。
如需收斂ACK專有版叢集,請將其遷移至ACK叢集Pro版。具體操作,請參見熱遷移ACK專有叢集至ACK叢集Pro版。
已授權ACK託管叢集所依賴的預設服務角色。具體操作,請參見一鍵授權服務角色。
步驟一:確認是否需要收斂
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱。然後單擊基本資料頁簽。單擊Worker RAM 角色右側的連結進入Resource Access Management控制台。
在角色頁面的許可權管理頁簽,查看是否存在權限原則。
若列表為空白,則無需收斂。
若列表不為空白,例如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組件工作負載。
步驟三:採集Action Trail日誌
您需要採集APIAction Trail日誌,以便分析測試叢集產生的日誌,檢查叢集內是否還有應用在依賴Worker RAM角色被授與權限策略。關於Action Trail功能支援的雲端服務,請參見支援的雲端服務。
建議您至少採集一周以上的Action Trail日誌。
在Action Trail控制台建立叢集所在地區的帳號跟蹤,同時在建立時選擇將事件投遞到Log ServiceSLS。具體操作,請參見建立單帳號跟蹤。
步驟四:測試叢集功能
以上收斂操作完成後,您需要對叢集的基礎功能進行測試,確保系統組件能正常工作。
基礎功能點 | 基礎測試點 | 參考文檔 |
計算 | 可以正常擴縮容節點。 | |
網路 | 可以正常為Pod分配IP。 | |
儲存 | 可以正常部署使用外置儲存的工作負載(如果已使用該功能)。 | |
監控 | 可以正常擷取監控警示資料。 | |
彈性 | 可以正常實現節點的自動Auto Scaling(如果已使用該功能)。 | |
安全 | 可以正常使用鏡像免密拉取功能(如果已使用該功能)。 |
叢集基礎功能測試完成後,請您根據實際的業務情境,再測試一下叢集中部署應用的商務邏輯,確保業務正常工作。
步驟五:分析Action Trail日誌
在Project列表地區,單擊目標Project。
在
頁簽中,單擊目標Logstore。查詢步驟三指定的日誌Project中審計日誌所屬的Logstore,即名為actiontrail_<跟蹤名稱>的日誌庫(Logstore)中儲存的所有Action Trail日誌。
使用以下查詢統計語句,統計叢集內應用使用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角色被授與權限
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱。然後單擊基本資料頁簽。單擊Worker RAM 角色右側的連結進入Resource Access Management控制台。
在角色頁面的許可權管理頁簽,單擊目標權限原則進入策略內容頁簽,然後單擊修改策略內容。
重要修改策略內容變更操作前,請您備份當前已有的權限原則內容,便於及時復原許可權配置。
修改策略內容時,根據實際需求結合步驟五審計日誌的分析結果,決策是否刪除不再需要的許可權,例如刪除未出現在統計結果中的許可權
action
。如果確認不需要任何許可權的話,可以解除授權的所有權限原則。重新部署系統組件的工作負載。具體操作,請參見步驟二中的重新部署命令。
相關文檔
如需瞭解ACK的整體授權體系,請參見授權最佳實務。