通過(guò)容器策略治理配置Pod的安全策略
Gatekeeper準(zhǔn)入控制器使用開(kāi)放策略(OPA)的策略,提供了更符合K8s應(yīng)用場(chǎng)景的安全策略規(guī)則。借助Gatekeeper組件,您可以在容器計(jì)算服務(wù)控制臺(tái)啟用或自定義安全策略,驗(yàn)證Pod的部署和更新是否安全可控。
策略治理介紹
PodSecurityPolicy(簡(jiǎn)稱(chēng)PSP)從Kubenetes 1.21版本開(kāi)始被標(biāo)記為棄用(Deprecated)狀態(tài)。為此,ACS集群改版了原先基于PSP的策略管理功能。基于使用OPA策略的Gatekeeper準(zhǔn)入控制器,ACK集群擴(kuò)展了相應(yīng)的策略治理狀態(tài)統(tǒng)計(jì)和日志上報(bào)檢索等能力,同時(shí)內(nèi)置了種類(lèi)豐富的策略治理規(guī)則庫(kù),提供符合更多K8s應(yīng)用場(chǎng)景的策略規(guī)則。在規(guī)則配置上,您可以在控制臺(tái)上白屏化配置,降低使用策略治理相關(guān)能力的門(mén)檻。
前提條件
已創(chuàng)建ACS集群,具體操作, 請(qǐng)參見(jiàn)創(chuàng)建ACS集群。
使用RAM用戶(hù)進(jìn)行策略管理時(shí),已確保該RAM用戶(hù)擁有以下授權(quán):
cs:DescribePolicies
:列舉策略治理規(guī)則庫(kù)列表cs:DescribePoliceDetails
:獲取策略規(guī)則模板詳情cs:DescribePolicyGovernanceInCluster
:獲取集群策略治理詳情cs:DescribePolicyInstances
:獲取集群中當(dāng)前部署的策略實(shí)例列表cs:DescribePolicyInstancesStatus
:獲取集群當(dāng)前不同策略類(lèi)型對(duì)應(yīng)的實(shí)例部署狀態(tài)cs:DeployPolicyInstance
:在指定集群中部署策略規(guī)則實(shí)例cs:DeletePolicyInstance
:在指定集群中刪除策略規(guī)則實(shí)例cs:ModifyPolicyInstance
:在指定集群中修改策略規(guī)則實(shí)例
關(guān)于如何自定義RAM授權(quán)策略,請(qǐng)參見(jiàn)為RAM用戶(hù)或RAM角色授予RAM權(quán)限。
注意事項(xiàng)
僅適用于Linux節(jié)點(diǎn)。
當(dāng)前不支持自定義策略規(guī)則,所有規(guī)則均來(lái)自于阿里云容器服務(wù)內(nèi)置的規(guī)則庫(kù)。
步驟一:安裝或升級(jí)策略治理組件
啟用安全策略治理功能時(shí),需安裝以下組件:
gatekeeper組件:基于OPA策略引擎的K8s策略準(zhǔn)入控制器,便于您管理和應(yīng)用集群內(nèi)的OPA策略,實(shí)現(xiàn)命名空間標(biāo)簽管理等功能。
說(shuō)明僅支持使用ACS集群提供的gatekeeper組件。如您通過(guò)其他途徑安裝了gatekeeper組件,請(qǐng)卸載后重新安裝。關(guān)于gatekeeper組件的版本發(fā)布信息,請(qǐng)參見(jiàn)gatekeeper。
logtail-ds日志組件:對(duì)不符合策略約束的攔截或告警事件的收集和檢索。
policy-template-controller組件:為基于阿里云策略模板開(kāi)發(fā)的K8s控制器,便于您更好地管理基于不同策略模板部署的策略實(shí)例和集群整體的治理狀態(tài)。
登錄容器計(jì)算服務(wù)控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱(chēng),然后在左側(cè)導(dǎo)航欄,選擇安全管理 > 策略管理。
在策略管理頁(yè)面,根據(jù)頁(yè)面提示安裝或升級(jí)組件。
步驟二:使用策略治理功能
操作入口
登錄容器計(jì)算服務(wù)控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱(chēng),然后在左側(cè)導(dǎo)航欄,選擇安全管理 > 策略管理。
在策略管理頁(yè)面,按頁(yè)面提示完成組件安裝或升級(jí)(如有),然后按需進(jìn)行以下操作。
查看集群當(dāng)前策略治理狀態(tài)
您可以單擊策略實(shí)施總覽頁(yè)簽,查看集群當(dāng)前的策略治理狀態(tài)。
策略開(kāi)啟總覽,包括高危和中危防護(hù)策略的總數(shù)和已開(kāi)啟數(shù)展示,建議開(kāi)啟的策略列表等。
近7天攔截和告警結(jié)果統(tǒng)計(jì)。
近7天策略實(shí)施記錄,當(dāng)前頁(yè)面表格中會(huì)默認(rèn)展示7天內(nèi)最近100條的攔截或告警日志,如果您想查看更多審計(jì)日志,可以單擊近7天策略實(shí)施記錄后的圖標(biāo),并單擊懸浮窗口中的日志服務(wù)鏈接在SLS日志服務(wù)控制臺(tái)指定的logstore中查看全部日志。
創(chuàng)建并管理策略實(shí)例
單擊我的策略頁(yè)簽,然后單擊創(chuàng)建策略實(shí)例,在創(chuàng)建策略實(shí)例對(duì)話(huà)框配置相關(guān)參數(shù)。
配置項(xiàng) | 說(shuō)明 |
策略類(lèi)型 | 首先選擇策略類(lèi)型,包括如下大類(lèi):
|
實(shí)施動(dòng)作 |
|
策略名稱(chēng) | 根據(jù)選擇的策略類(lèi)型,在策略名稱(chēng)下拉列表中選擇需要部署的策略模板名稱(chēng)。 |
作用范圍 | 選擇策略實(shí)例實(shí)施在集群中哪些指定的命名空間。 |
參數(shù)配置 |
|
查看策略列表和集群中已部署的策略實(shí)例
單擊我的策略頁(yè)簽,查看集群所有可部署的策略名稱(chēng)。
您可以在列表右上角篩選顯示的策略。已開(kāi)啟的策略名稱(chēng)會(huì)優(yōu)先展示。策略實(shí)例數(shù)會(huì)顯示對(duì)應(yīng)策略在集群中已部署的實(shí)例個(gè)數(shù)。
如果策略實(shí)例數(shù)為空,表明該策略還未在集群中部署,可在操作列單擊開(kāi)啟配置參數(shù)配置并部署對(duì)應(yīng)的策略實(shí)例。
單擊操作列中的編輯可以修改策略實(shí)例的配置。
當(dāng)策略在集群中已部署超過(guò)1個(gè)實(shí)例時(shí),可以單擊操作列的查看策略實(shí)例,然后單擊編輯修改相關(guān)配置。
單擊操作列中的刪除可以刪除該策略在集群中部署的所有實(shí)例。
關(guān)于策略說(shuō)明和模板示例的更多信息,請(qǐng)參見(jiàn)容器安全策略規(guī)則庫(kù)說(shuō)明。
相關(guān)文檔
關(guān)于策略治理支持的四類(lèi)內(nèi)置規(guī)則庫(kù),包括Compliance、Infra、K8s-general和PSP,請(qǐng)參見(jiàn)容器安全策略規(guī)則庫(kù)說(shuō)明。