檢視次數:
使用政策來保護使用一個或多個Server & Workload Security保護模組的電腦。
在使用 API 之前,您應該了解有關政策的基本概念。欲了解背景資訊,請參閱 建立政策以保護您的電腦和其他資源

建立政策 上層主題

建立一個政策來定義您正在使用的Server & Workload Security保護模組的行為,並配置政策設定,例如代理-管理員通訊、掃描行為、日誌記錄、事件保留和網路引擎設定。建立政策後,您可以將其指派給一台或多台電腦。
要建立策略,您需要建立一個Policy物件,設定其屬性以定義行為,然後使用PoliciesApi類別將其新增到Server & Workload Security保護。由於策略是分層的,因此在建立策略時,您需要指示父策略的ID。(使用ID為0來建立頂層策略。)
Policy 物件提供對許多政策屬性的存取:
  • 父策略的 ID
  • 該政策適用規則的介面
  • 是否執行持續推薦掃描
  • 是否自動將政策變更發送到電腦(AutoRequiresUpdate)
  • 政策設定
秘訣
秘訣
要查看可用的政策屬性,請展開 API 參考中的 描述政策 操作的 200 回應。
此範例在基礎政策下創建一個政策。搜尋會獲取基礎政策以取得其 ID,該 ID 用作新政策的父項。(搜尋條件和搜尋篩選器的創建未顯示。)
# Search for the Base Policy
policies_api = api.PoliciesApi(api.ApiClient(configuration))
policy_search_results = policies_api.search_policies(api_version, search_filter=search_filter)

# Set the parent ID of the new policy to the ID of the Base Policy
new_policy.parent_id = policy_search_results.policies[0].id

# Add the new policy to Server & Workload Security保護
created_policy = policies_api.create_policy(new_policy, api_version)
所創建的策略對象不包含任何模組配置或設置值。當配置和設置被省略時,這些值將從父策略繼承。因此,所創建的策略幾乎繼承了基礎策略的所有行為。另外請注意,策略識別碼是不可變的,所以如果您知道策略的識別碼,您可以直接使用它而不是搜索。
要使用 API 與政策互動,請使用 /api/policies 端點。(請參閱 API 參考中的 政策 操作組。)
如需有關搜尋的資訊,請參閱 搜尋資源。如需有關 API 調用驗證的資訊,請參閱 使用 Server & Workload Security保護 驗證

將政策指派給電腦防護 上層主題

指派政策到電腦防護,以根據政策設定和安全模組的配置來保護電腦防護:
  • 建立一個電腦防護物件。
  • 將要使用的策略識別碼設定到該物件。
  • 使用 ComputersApi 物件在 Server & Workload Security保護 上更新電腦防護。
以下範例將政策指派給電腦防護。搜尋會取得政策以獲取其 ID,然後將其指派給電腦防護。(搜尋條件和搜尋篩選器的建立未顯示。)
# Perform the search
policy_search_results = policies_api.search_policies(api_version, search_filter=search_filter)

# Assign the policy to the computer
computer.policy_id = policy_search_results.policies[0].id
秘訣
秘訣
另請參閱 API 參考中的 修改政策 操作。
秘訣
秘訣
您可以在電腦防護層級覆寫政策。請參閱 設定電腦防護以覆寫政策

配置策略和預設策略設定 上層主題

政策設定控制保護模組和Server & Workload Security保護平台的許多行為。因此,許多使用API自動化的任務需要您配置政策設定。
如需查看策略和預設策略設定列表,請參閱設定參考中的 預設策略、策略和電腦防護設定

預設設定值和覆寫 上層主題

Server & Workload Security保護 政策是分層的。政策在層級中的位置資訊決定了其設定的預設值:
  • Top-level policies: 一組預設策略設定定義了所有頂層策略的預設值。
  • Child policies: 的預設值繼承自其父策略。
您可以配置任何策略設定以覆蓋預設設定。因此,預設策略設定會被層級下的策略繼承,直到有策略覆蓋它為止。
如需有關政策層級和繼承的詳細資訊,請參閱 政策、繼承和覆蓋

策略設定和預設策略設定類別 上層主題

Server & Workload Security保護 SDK 提供以下類別來儲存策略和預設策略設定。這些類別用於在 Server & Workload Security保護 和 SDK 或 API 客戶端之間傳遞設定值。
  • DefaultPolicySettings:儲存所有預設策略設定的值。
  • PolicySettings:儲存特定政策的設定值。
DefaultPolicySettingsPolicySettings 類別的設定是相同的,僅有少數例外。(請參閱設定參考中的 預設策略、策略和電腦防護設定。)

檢索策略設定或預設策略設定的值 上層主題

PoliciesApi 類別使您能夠檢索單個設定的值,無論是針對某個策略還是針對預設策略設定。對於某個策略,您可以檢索設定的有效值或覆蓋值:
  • Effective setting: 用於此政策的值。此值是繼承的或已特別為此政策設定(覆蓋)。
  • Override: 為此政策專門設定的值。沒有值表示設定值是繼承的。
當您想知道頂層政策的預設值時,請檢索預設設定。
當您檢索設定值時,請按名稱識別設定。該值將以 SettingValue 對象的形式返回。有關策略和預設策略設定的列表,請參閱設定參考中的 預設策略、策略和電腦防護設定
以下範例會擷取政策的防火牆網路引擎模式。
# Get the policy details from Server & Workload Security保護
policies_api = api.PoliciesApi(api.ApiClient(configuration))
return policies_api.describe_policy_setting(policy_id, api.PolicySettings.firewall_setting_network_engine_mode, api_version, overrides=False)
秘訣
秘訣
要獲取預設策略設定的值,請使用describe_default_setting方法。

列出所有策略或預設策略設定 上層主題

您可以在一次呼叫中檢索所有策略和預設策略設定。您從Server & Workload Security保護檢索設定的方式取決於設定類別。
  • Default policy settings: 使用 PoliciesApi 物件從管理器獲取 DefaultPolicySettings 物件。
  • Policy settings: 使用 PoliciesApi 物件從 Server & Workload Security保護 獲取一個 Policy 物件。然後,從 Policy 物件中獲取 PolicySettings 物件。
例如,請參閱 API 參考中政策部分的 列出預設策略設定描述策略 操作。

配置單一策略或預設策略設定 上層主題

PoliciesApi 類別使您能夠為策略或預設策略設定的單一設定值。

步驟

  1. 建立一個 SettingValue 物件並設置值(所有值都是字串)。當設定接受來自選擇列表中的一個值時,您可以使用選擇的 ID 或選擇在 Server & Workload Security保護 控制台中顯示的確切措辭。
  2. 創建一個PoliciesApi對象,並將其與SettingValue對象一起使用,以修改策略設置或默認設置。當修改策略設置時,您還需要提供策略識別碼。

接下來需執行的動作

以下範例設定政策的防火牆網路引擎模式值
# Create a SettingValue object and set the value to either "Inline" or "Tap"
network_engine_mode_value = api.SettingValue()
network_engine_mode_value.value = "Inline"

# Modify the setting on Server & Workload Security保護
policies_api = api.PoliciesApi(api.ApiClient(configuration))
return policies_api.modify_policy_setting(policy_id, api.PolicySettings.firewall_setting_network_engine_mode, network_engine_mode_value, api_version, overrides=False)
秘訣
秘訣
要設定預設策略設定的值,請使用modify_default_setting方法。
另請參閱 API 參考中的 修改政策設定 操作。

配置多個策略和預設策略設定 上層主題

要配置多個策略或預設策略設定,您首先需要為每個設定創建一個設定對象並設置值:

步驟

  1. 建立一個 SettingValue 物件並設置值(所有值都是字串)。當設定接受來自選擇列表中的一個值時,您可以使用選擇的 ID 或選擇在 Server & Workload Security保護 控制台中顯示的確切措辭。
  2. 從設定類別(DefaultPolicySettingsPolicySettings)建立一個物件。
  3. 將設定的值設為SettingValue對象。

接下來需執行的動作

在相同的 DefaultPolicySettingsPolicySettings 物件中設定所需的多個設定值。
對於任一類設定,您在Server & Workload Security保護上修改設定的方式略有不同:
  • Default policy settings: 使用 PoliciesApi 物件來修改管理員上的 DefaultPolicySettings 物件。
  • Policy settings:PolicySettings 物件新增到 Policy 物件。然後,使用 PoliciesApi 類別來修改管理員上的政策。
DefaultPolicySettingsPolicySettings 物件中沒有值的設定在 Server & Workload Security保護 上不會改變。
Server & Workload Security保護 在保存值之前會驗證所有修改過的設定。如果物件中的一個或多個設定無效,則不會保存任何修改過的設定。錯誤回應會包含每個失敗的原因。
注意
注意
Server & Workload Security保護 驗證設定值時,它不會檢查相互依賴的設定是否一致。
以下範例配置了兩個設定,以啟用策略的失敗開放或失敗關閉模式。
# Create the SettingValue objects
failure_response_engine_system = api.SettingValue()
failure_response_packet_sanity_check = api.SettingValue()

# Set the values
if fail_open:
    failure_response_engine_system.value = failure_response_packet_sanity_check.value = "Fail open"
else:
    failure_response_engine_system.value = failure_response_packet_sanity_check.value = "Fail closed"

# Set the setting values and add to a policy
policy_settings = api.PolicySettings()
policy_settings.firewall_setting_failure_response_engine_system = failure_response_engine_system
policy_settings.firewall_setting_failure_response_packet_sanity_check = failure_response_packet_sanity_check

policy = api.Policy()
policy.policy_settings = policy_settings

# Modify the policy on Server & Workload Security保護.
policies_api = api.PoliciesApi(api.ApiClient(configuration))
return policies_api.modify_policy(policy_id, policy, api_version, overrides=False)
如需有關配置系統設置的示例,請參閱 配置 Server & Workload Security保護 系統設置

重設政策覆寫 上層主題

重置策略覆蓋,以便該策略繼承父策略的屬性或設定值(或對於頂層策略,則繼承預設策略設定)。重置策略覆蓋的方法取決於屬性或設定的類型。
秘訣
秘訣
一般來說,本節中的資訊也適用於電腦防護。在某些情況下使用特定政策類別時,您使用特定電腦防護類別。例如,您使用ComputersApiComputerSettings,而不是PoliciesApiPolicySettings

重置 ID 參考 上層主題

要重設 ID 參考覆蓋以繼承該值,請修改策略並將屬性的值設為 0。ID 參考是一種使用另一項目 ID 作為值的屬性。
例如,設定即時惡意程式防護掃瞄配置範例會覆蓋政策的 realTimeScanConfigurationID。要將屬性重設為繼承父策略的值,請將realTimeScanConfigurationID設為0

重設設定 上層主題

PoliciesApi 類別提供重設單一政策設定的方法。範例請參閱 API 參考 中的政策部分的重設政策設定值操作。
要同時重置多個策略設定,請使用 PolicySettings 物件與 PoliciesApi 將設定的值設為空字串。例如,配置防火牆 範例會覆蓋策略中 FirewallSettingReconnaissanceEnabled 設定的值。要將設定重置為繼承父策略的值,請將值設為 ""

重置安全模組的狀態 上層主題

要重置安全模組的狀態,請修改策略並將模組狀態的值設為繼承
例如,開啟 Application Control 範例會將 Application Control 模組的狀態屬性覆寫為 on 以套用至某個策略。若要重設設定以繼承父策略的值,您需要將狀態值設為 inherited

重設規則 上層主題

當新增至政策的規則與原始規則不同時,即達成規則覆蓋。您可以重置規則的所有覆蓋,或選擇性地重置覆蓋。
秘訣
秘訣
當規則被指派給策略時,無論父策略是否被指派該規則,都不被視為覆蓋。

重置規則的所有覆蓋 上層主題

每個模組特定的政策規則詳細資訊類別(FirewallRulesDetailsApiPolicyIntegrityMonitoringRulesDetailsApiPolicyIntrusionPreventionRuleDetailsApiPolicyLogInspectionRulesDetailsApi)都提供了一種方法,用於重置分配給特定政策的規則的所有覆蓋。
要查看程式碼範例,請前往API 參考中的重設防火牆規則覆蓋操作,並查看該操作的程式碼範例。

選擇性重置規則的覆蓋 上層主題

使用以下程序僅重設規則的某些屬性。

步驟

  1. 獲取政策規則的所有覆蓋。使用模組特定規則詳細資訊類別的describe方法,並將overrides參數設置為true。保存結果。(請參閱 關於覆蓋參數。)
  2. 重置該規則的所有覆蓋。
  3. 在新規則中還原您想保留的覆蓋。
  4. 使用覆蓋來修改政策規則。

接下來需執行的動作

以下範例會重設某個政策的部分日誌檢查規則覆寫。
policy_log_inspection_rule_details_api = api.PolicyLogInspectionRuleDetailsApi(api.ApiClient(configuration))

# Get the rule overrides
rule_overrides = policy_log_inspection_rule_details_api.describe_log_inspection_rule_on_policy(policy_id, rule_id, api_version, overrides=True)

# Reset the rule
policy_log_inspection_rule_details_api.reset_log_inspection_rule_on_policy(policy_id, rule_id, api_version, overrides=False)

# Add the desired overrides to a new rule
li_rule_overrides_restored = api.LogInspectionRule()

if rule_overrides.alert_minimum_severity:
    li_rule_overrides_restored.alert_minimum_severity = rule_overrides.alert_minimum_severity

if rule_overrides.recommendations_mode:
    li_rule_overrides_restored.recommendations_mode = rule_overrides.recommendations_mode

# Modify the rule on Server & Workload Security保護
return policy_log_inspection_rule_details_api.modify_log_inspection_rule_on_policy(policy_id, rule_id, li_rule_overrides_restored, api_version, overrides=False)