什么是 Azure Policy?

來源: Microsoft
作者:Microsoft
時(shí)間:2021-08-24
17042
Azure Policy 可幫助實(shí)施組織標(biāo)準(zhǔn)并大規(guī)模評估合規(guī)性。 Azure Policy 通過其合規(guī)性儀表板提供一個(gè)聚合視圖來評估環(huán)境的整體狀態(tài),并允許用戶按資源、按策略粒度向下鉆取。 它還通過對現(xiàn)有資源的批量修正以及對新資源的自動修正,幫助資源符合規(guī)范。

photo-1591467554401-1ec5c94dec4d.JPG

Azure Policy 可幫助實(shí)施組織標(biāo)準(zhǔn)并大規(guī)模評估合規(guī)性。 Azure Policy 通過其合規(guī)性儀表板提供一個(gè)聚合視圖來評估環(huán)境的整體狀態(tài),并允許用戶按資源、按策略粒度向下鉆取。 它還通過對現(xiàn)有資源的批量修正以及對新資源的自動修正,幫助資源符合規(guī)范。

Azure Policy 的常見用例包括實(shí)施監(jiān)管來滿足資源一致性、法規(guī)遵從性、安全性、成本和管理方面的要求。 Azure 環(huán)境中已經(jīng)內(nèi)置了這些常見用例的策略定義,幫助你入門。

所有 Azure Policy 數(shù)據(jù)和對象都進(jìn)行了靜態(tài)加密。 有關(guān)詳細(xì)信息,請參閱 Azure 數(shù)據(jù)靜態(tài)加密。

概述

Azure Policy 通過將 Azure 中資源的屬性與業(yè)務(wù)規(guī)則進(jìn)行比較,來評估這些資源。 以 JSON 格式描述的這些業(yè)務(wù)規(guī)則稱為策略定義。 為了簡化管理,可以組合多個(gè)業(yè)務(wù)規(guī)則來構(gòu)成一個(gè)策略計(jì)劃(有時(shí)稱為“策略集”)。 構(gòu)成業(yè)務(wù)規(guī)則后,策略定義或計(jì)劃將分配到 Azure 支持的任何資源范圍,例如管理組、訂閱、資源組或單個(gè)資源。 分配應(yīng)用于該分配的資源管理器作用域內(nèi)的所有資源。 必要時(shí)可以排除子范圍。 有關(guān)詳細(xì)信息,請參閱 Azure Policy 中的作用域。

Azure Policy 使用 JSON 格式構(gòu)成評估機(jī)制用來確定某個(gè)資源是否合規(guī)的邏輯。 定義包括元數(shù)據(jù)和策略規(guī)則。 定義的規(guī)則可以使用與所需方案完全匹配的函數(shù)、參數(shù)、邏輯運(yùn)算符、條件和屬性別名。 策略規(guī)則確定要評估分配范圍內(nèi)的哪些資源。

了解評估結(jié)果

資源將在資源生命周期、策略分配生命周期內(nèi)的特定時(shí)間進(jìn)行評估,并接受日常進(jìn)行的合規(guī)性評估。 出現(xiàn)以下時(shí)機(jī)或事件時(shí),就會對資源進(jìn)行評估:

  • 在策略分配范圍內(nèi)創(chuàng)建、更新或刪除了資源。

  • 最近已將策略或計(jì)劃分配到某個(gè)范圍。

  • 更新了已分配到某個(gè)范圍的策略或計(jì)劃。

  • 在標(biāo)準(zhǔn)合規(guī)性評估周期內(nèi)(每 24 小時(shí)發(fā)生一次)。

有關(guān)何時(shí)以及如何進(jìn)行策略評估的詳細(xì)信息,請參閱評估觸發(fā)器。

控制對評估的響應(yīng)

處理不合規(guī)資源的業(yè)務(wù)規(guī)則根據(jù)組織的不同而有很大的不同。 下面以示例方式說明了組織希望平臺如何對不合規(guī)資源進(jìn)行響應(yīng):

  • 拒絕資源更改

  • 記錄對資源的更改

  • 在更改之前改變資源

  • 在更改之后改變資源

  • 部署相關(guān)的合規(guī)資源

Azure Policy 通過應(yīng)用效果來實(shí)現(xiàn)這其中的每種業(yè)務(wù)響應(yīng)方式。 效果在策略定義的“策略規(guī)則”部分進(jìn)行設(shè)置。

修正不符合資源

盡管這些效果主要是在創(chuàng)建或更新資源時(shí)影響資源,但 Azure Policy 還支持處理現(xiàn)有的不合規(guī)資源,而無需改變該資源。 若要詳細(xì)了解如何使現(xiàn)有資源合規(guī),請參閱修正資源。

入門

Azure Policy 和 Azure RBAC

Azure Policy 和 Azure 基于角色的訪問控制 (Azure RBAC) 之間存在一些主要區(qū)別。 Azure Policy 通過檢查資源管理器中顯示的資源屬性和某些資源提供程序的屬性來評估狀態(tài)。 Azure Policy 不會限制操作。 Azure Policy 確保資源狀態(tài)符合業(yè)務(wù)規(guī)則,而不考慮更改是誰做出的或者誰有權(quán)做出更改。

Azure RBAC 重點(diǎn)關(guān)注如何管理不同范圍的用戶操作。 如果需要控制某項(xiàng)操作,則 Azure RBAC 是可以使用的適當(dāng)工具。 即使個(gè)人有權(quán)執(zhí)行操作,但如果結(jié)果是不合規(guī)的資源,Azure Policy 也仍會阻止創(chuàng)建或更新操作。

Azure RBAC 和 Azure Policy 的組合在 Azure 中提供了全范圍控制。

Azure Policy 中的 Azure RBAC 權(quán)限

Azure Policy 在兩個(gè)資源提供程序中具有多個(gè)權(quán)限(稱為操作):

  • Microsoft.Authorization

  • Microsoft.PolicyInsights

許多內(nèi)置角色可授予對 Azure Policy 資源的權(quán)限。 “資源策略參與者”角色包括大多數(shù) Azure Policy 操作。 “所有者”具有完全權(quán)限。 “參與者”和“讀取者”都有權(quán)訪問所有 Azure Policy 讀取操作。 “參與者”可以觸發(fā)資源修正,但無法創(chuàng)建定義或分配。 需要“用戶訪問管理員”以授予 deployIfNotExists 或 modify 分配所需權(quán)限的托管標(biāo)識 。

如果沒有任何內(nèi)置角色具有所需的權(quán)限,可創(chuàng)建自定義角色。

 備注

deployIfNotExists 或 modify 策略分配的托管標(biāo)識需有足夠的權(quán)限才能創(chuàng)建或更新已定位資源 。 有關(guān)詳細(xì)信息,請參閱配置有關(guān)修正的策略定義。

Azure Policy 涵蓋的資源

Azure Policy 評估訂閱級別或更低級別的所有 Azure 資源,包括啟用了 Arc 的資源。 對于某些資源提供程序(例如 Guest Configuration、Azure Kubernetes 服務(wù)和 Azure Key Vault),可以使用一個(gè)更深度的集成來管理設(shè)置和對象。 有關(guān)詳細(xì)信息,請參閱資源提供程序模式。

管理策略的建議

請記住以下幾個(gè)要點(diǎn)和提示:

  • 從審核效果(而不是拒絕效果)開始,以跟蹤策略定義對環(huán)境中資源的影響。 如果有用于自動縮放應(yīng)用程序的腳本,那么設(shè)置拒絕效果可能會影響此類已經(jīng)執(zhí)行的自動化任務(wù)。

  • 請?jiān)趧?chuàng)建定義和分配時(shí)考慮組織的層次結(jié)構(gòu)。 我們建議在更高級別創(chuàng)建定義,例如管理組或訂閱級別。 然后,在下一子級別創(chuàng)建分配。 如果在管理組中創(chuàng)建定義,則可以將分配范圍縮小到該管理組中的訂閱或資源組。

  • 我們建議創(chuàng)建并分配計(jì)劃定義,即使對于單個(gè)策略定義,也是如此。 例如,你有策略定義 policyDefA 并在計(jì)劃定義 initiativeDefC 下創(chuàng)建它 。 如果稍后為 policyDefB 創(chuàng)建另一個(gè)策略定義,其目標(biāo)類似于 policyDefA,則可以在 initiativeDefC 下添加它并一起跟蹤它們 。

  • 創(chuàng)建計(jì)劃分配后,添加到該計(jì)劃中的策略定義也將成為該計(jì)劃分配的一部分。

  • 評估計(jì)劃分配后,還會評估計(jì)劃內(nèi)的所有策略。 如果需要單獨(dú)評估某個(gè)策略,最好不要將其包含在計(jì)劃中。

Azure Policy 對象

策略定義

若要在 Azure Policy 中創(chuàng)建并實(shí)施策略,請先創(chuàng)建策略定義。 每種策略定義在其特定的條件下將被強(qiáng)制執(zhí)行。 并且,在滿足條件時(shí)將出現(xiàn)定義的效果。

在 Azure Policy 中,我們將提供一些默認(rèn)可供使用的內(nèi)置策略。 例如:

  • 允許的存儲帳戶 SKU(拒絕):確定正在部署的存儲帳戶是否在 SKU 大小集內(nèi)。 其效果是拒絕所有不符合定義的 SKU 大小集的存儲帳戶。

  • 允許的資源類型(拒絕):定義可以部署的資源類型。 其效果是拒絕所有不屬于此定義列表的資源。

  • 允許的位置(拒絕):限制新資源的可用位置。 其效果是用于強(qiáng)制執(zhí)行異地符合性要求。

  • 允許的虛擬機(jī) SKU(拒絕):指定可以部署的虛擬機(jī) SKU 集。

  • 將標(biāo)記添加到資源(修改):如果部署請求未指定,則應(yīng)用所需的標(biāo)記及其默認(rèn)值。

  • 不允許的資源類型(拒絕):禁止部署資源類型的列表。

若要實(shí)現(xiàn)這些策略定義(包括內(nèi)置定義和自定義定義),需將其分配出去。 可通過 Azure 門戶、PowerShell 或 Azure CLI 來分配上述任意策略。

策略評估采用多種不同的操作,例如策略分配或策略更新。 有關(guān)完整列表,請參閱策略評估觸發(fā)器。

若要了解有關(guān)策略定義結(jié)構(gòu)的詳細(xì)信息,請查看策略定義結(jié)構(gòu)。

策略參數(shù)通過減少必須創(chuàng)建的策略定義數(shù)量來幫助簡化策略管理。 在創(chuàng)建策略定義時(shí)可定義參數(shù),以使其更為通用。 然后就可以為不同方案重復(fù)使用該策略定義。 要執(zhí)行此操作,請?jiān)诜峙洳呗远x時(shí)傳入不同的值。 例如,為訂閱指定一組位置。

在創(chuàng)建策略定義時(shí)定義參數(shù)。 在定義參數(shù)后,會為它指定一個(gè)名稱,并且可選擇為其提供一個(gè)值。 例如,可以為標(biāo)題為“位置”的策略定義一個(gè)參數(shù)。 然后,可在分配策略時(shí)賦予其不同的值,如“chinanorth2”或“chinaeast2”。

有關(guān)策略參數(shù)的詳細(xì)信息,請參閱定義結(jié)構(gòu) - 參數(shù)。

計(jì)劃定義

計(jì)劃定義是策略定義的集合,專為實(shí)現(xiàn)一個(gè)單一的總體目標(biāo)而量身定制。 計(jì)劃定義可以簡化管理和分配策略定義。 它們通過將一組策略組合為一個(gè)單獨(dú)的項(xiàng)來實(shí)現(xiàn)簡化。 例如,可以創(chuàng)建一個(gè)標(biāo)題為“啟用 Azure 安全中心中的監(jiān)視”的計(jì)劃,用于專門監(jiān)視 Azure 安全中心中的所有可用的安全建議。

 備注

Azure CLI 和 Azure PowerShell 等 SDK 使用名為 PolicySet 的屬性和參數(shù)來引用計(jì)劃。

在此計(jì)劃中,將具有特定策略定義,例如:

  • 在安全中心監(jiān)視未加密的 SQL 數(shù)據(jù)庫 - 用于監(jiān)視未加密的 SQL 數(shù)據(jù)庫和服務(wù)器。

  • 在安全中心監(jiān)視 OS 漏洞 - 用于監(jiān)視不滿足配置基線的服務(wù)器。

  • 在安全中心監(jiān)視缺失的終結(jié)點(diǎn)保護(hù) - 用于監(jiān)視未安裝終結(jié)點(diǎn)保護(hù)代理的服務(wù)器。

類似于策略參數(shù),計(jì)劃參數(shù)通過減少冗余來幫助簡化計(jì)劃管理。 計(jì)劃參數(shù)是計(jì)劃內(nèi)的策略定義正在使用的參數(shù)。

例如,假設(shè)出現(xiàn)這樣一種情況,有一個(gè)帶有兩個(gè)策略定義(policyA 和 policyB,每個(gè)都需要不同類型的參數(shù))的計(jì)劃定義 - initiativeC:

微信圖片_20210824154751.png

  • 使用此計(jì)劃中的策略定義參數(shù):在此示例中,allowedLocations 和 allowedSingleLocation 為 initiativeC 的計(jì)劃參數(shù) 。

  • 向此計(jì)劃定義中策略定義的參數(shù)提供值。 在此示例中,可以向 policyA 的參數(shù) - allowedLocations 和 policyB 的參數(shù) - allowedSingleLocation 提供位置列表。 此外,也可在分配此計(jì)劃時(shí)提供值。

  • 分配此計(jì)劃時(shí),提供可供使用的值列表選項(xiàng)。 在分配此計(jì)劃時(shí),從計(jì)劃內(nèi)的策略定義繼承的參數(shù)只能具有此提供列表中的值。

在計(jì)劃定義中創(chuàng)建值選項(xiàng)時(shí),無法在計(jì)劃分配期間輸入其他值,因?yàn)樗粚儆诹斜怼?/p>

若要詳細(xì)了解計(jì)劃定義結(jié)構(gòu),請查看計(jì)劃定義結(jié)構(gòu)。

分配

分配是指已分配的策略定義或計(jì)劃,在特定范圍內(nèi)生效。 此作用域的范圍是從管理組到單個(gè)資源。 術(shù)語“范圍”指定義分配到的所有資源、資源組、訂閱或管理組。 分配由所有子資源繼承。 此設(shè)計(jì)意味著應(yīng)用到某個(gè)資源組的定義也會應(yīng)用到該資源組中的資源。 但是,可以從分配中排除子范圍。

例如,可以在訂閱范圍分配一個(gè)阻止創(chuàng)建網(wǎng)絡(luò)資源的定義。 可以排除訂閱中用于網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的資源組。 然后可以向信任的用戶授予此網(wǎng)絡(luò)資源組的訪問權(quán)限,包括創(chuàng)建網(wǎng)絡(luò)資源。

另舉一例:你可能想要在管理組級別分配資源類型允許列表定義, 然后為子管理組或者甚至直接為訂閱分配更寬松的策略(以允許更多資源類型)。 但是,此示例無法實(shí)現(xiàn),因?yàn)?Azure Policy 是顯式拒絕系統(tǒng)。 你不需要那樣做,只需要從管理組級別分配中排除子管理組或訂閱, 然后為子管理組或訂閱級別分配更寬松的定義。 如果任何分配導(dǎo)致資源被拒絕,則允許該資源的唯一方法是修改拒絕分配。

有關(guān)通過門戶設(shè)置分配的詳細(xì)信息,請參閱創(chuàng)建策略分配以識別 Azure 環(huán)境中的不合規(guī)資源。 還可以使用 PowerShell 和 Azure CLI 的步驟。 有關(guān)分配結(jié)構(gòu)的信息,請參閱分配結(jié)構(gòu)。

Azure Policy 對象的最大計(jì)數(shù)

Azure Policy 的每個(gè)對象類型都有一個(gè)最大計(jì)數(shù)。 _作用域_條目是指訂閱或管理組。

微信圖片_20210824154810.png

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Microsoft,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多