ポリシーを作成および設定する

ポリシーを使用して、1つ以上の Workload Security モジュールを使用してコンピュータを保護します。

特定のポリシーに対する特定の保護モジュールの設定については、次のガイドを参照してください。

APIを使用する前に、ポリシーに関する基本的な概念を理解しておく必要があります。背景情報については、 ポリシーを作成してコンピュータやその他のリソースを保護するを参照してください。

ポリシーを作成する

使用している Workload Security モジュールの動作を定義するポリシーを作成します。このポリシーは、エージェントマネージャ通信、検索動作、ログ、イベント保持、ネットワークエンジン設定などのポリシー設定を行います。ポリシーを作成したら、ポリシーを1台以上のコンピュータに割り当てることができます。

ポリシーを作成するには、 Policy オブジェクトを作成し、プロパティを設定して動作を定義してから、 PoliciesApi クラスを使用して Workload Securityに追加します。ポリシーは階層型であるため、ポリシーを作成するときは、そのポリシーのIDを指定する必要があります。(IDの0を使用して最上位ポリシーを作成します。)

Policy オブジェクトは、多くのポリシープロパティへのアクセスを提供します。

  • 親ポリシーのID

  • ルールが適用されるポリシーのインタフェース

  • 継続的な推奨検索を実行するかどうか

  • コンピュータにポリシーの変更を自動的に送信するかどうか(AutoRequiresUpdate)

  • ポリシー設定

使用可能なポリシーのプロパティを表示するには、APIレファレンス/参照情報の Describe a Policy 操作に対する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 Workload Security
created_policy = policies_api.create_policy(new_policy, api_version)

作成された Policy オブジェクトには、モジュール設定または設定値が含まれていません。設定と設定を省略した場合、値は親ポリシーから継承されます。したがって、作成されるポリシーは、基本ポリシーからほとんどすべての動作を継承します。また、ポリシーIDは不変なので、ポリシーのIDを知っている場合は、検索の代わりにポリシーIDを使用することもできます。

APIを使用してポリシーと対話するには、 /api/policies エンドポイントを使用します。(APIレファレンス/参照情報の Policies グループの操作を参照してください)。

検索の詳細については、 Resources forの検索を参照してください。API呼び出しの認証の詳細については、 Workload Securityを参照してください。

ポリシーをコンピュータに割り当てる

ポリシーをコンピュータに割り当てて、ポリシー設定とセキュリティモジュールの設定に従ってコンピュータを保護します。

  • Computer オブジェクトを作成します。

  • オブジェクトで使用するポリシーIDを設定します。

  • ComputersApi オブジェクトを使用して、 Workload Securityのコンピュータをアップデートします。

次の例では、ポリシーをコンピュータに割り当てます。検索は、IDを取得するポリシーを取得します。この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レファレンス/参照情報」の ポリシーの変更 操作も参照してください。

ポリシーは、コンピュータレベルでオーバーライドできます。 [ポリシーをオーバーライドするコンピュータを設定]を参照してください。

ポリシーと初期設定のポリシー設定を構成する

ポリシー設定は、保護モジュールと Workload Security プラットフォームの多くの動作を制御します。したがって、APIを使用して自動化する多くのタスクでは、ポリシー設定を行う必要があります。

ポリシーと初期設定のポリシー設定のリストについては、設定の参照の 初期設定のポリシー、ポリシー、およびコンピュータの設定 をレファレンス/参照情報。

初期設定値とオーバーライド

Workload Security ポリシーは階層構造になっています。ポリシーの階層内の場所によって、設定の初期値が決まります。

  • トップレベルのポリシー: 初期設定のポリシー設定は、すべてのトップレベルポリシーの初期設定値を定義します。

  • 子ポリシー: 初期設定値は親ポリシーから継承されます。

ポリシーを初期設定よりも優先するように設定できます。そのため、初期設定のポリシー設定は、ポリシーによって上書きされてからポリシーが優先されます。

ポリシー階層と継承の詳細については、 Policies、inheritance、overwriteを参照してください。

ポリシー設定と初期設定のポリシー設定クラス

Workload Security SDKには、ポリシーおよび初期設定のポリシー設定を格納するための次のクラスが用意されています。これらのクラスは、 Workload Security とSDKまたはAPIクライアント間の設定値の受け渡しに使用されます。

  • DefaultPolicySettings:すべての初期設定のポリシー設定の値が保存されます。

  • PolicySettings:特定のポリシーの設定値を保存します。

DefaultPolicySettings クラスと PolicySettings クラスの設定は同じですが、いくつかの例外があります。([設定] [設定] [初期設定のポリシー、ポリシー、およびコンピュータの設定] をレファレンス/参照情報。)

ポリシー設定または初期設定のポリシー設定の値を取得します。

PoliciesApi クラスを使用すると、ポリシーまたは初期設定のポリシー設定の単一の設定値を取得できます。ポリシーの場合、設定の実効値またはオーバーライド値を取得できます。

  • 実効設定: ポリシーに使用されている値。この値は継承されるか、このポリシー(オーバーライド)に対して特に設定されています。

  • 上書き: このポリシーに対して特に設定された値。設定値が継承されることを示す値はありません。

最上位ポリシーの初期設定値を知りたい場合は、初期設定を取得します。

設定値を取得する場合は、名前で設定を指定してください。値は SettingValue オブジェクトとして返されます。ポリシーと初期設定のポリシー設定のリストについては、設定の参照の 初期設定のポリシー、ポリシー、およびコンピュータの設定 をレファレンス/参照情報。

次の例では、ポリシーのファイアウォールネットワークエンジンモードを取得します。

ソースを表示

# Get the policy details from 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 メソッドを使用します。

すべてのポリシーまたは初期設定のポリシー設定を一覧表示

すべてのポリシーと初期設定のポリシー設定は、1回の呼び出しで取得できます。 Workload Security から設定を取得する方法は、設定クラスによって異なります。

  • 初期設定のポリシー設定: Managerから DefaultPolicySettings オブジェクトを取得するには、 PoliciesApi オブジェクトを使用します。

  • ポリシーの設定: Workload Security から Policy オブジェクトとしてポリシーを取得するには、 PoliciesApi オブジェクトを使用します。次に、 PolicySettings オブジェクトを Policy オブジェクトから取得します。

例については、 [初期設定のポリシー設定を参照してください。 ]および [APIレファレンス/参照情報]の[ポリシー]セクションで ポリシーの操作を記述します。

単一のポリシーまたは初期設定のポリシー設定を構成する

PoliciesApi クラスを使用すると、ポリシーまたは初期設定のポリシー設定の単一の設定の値を設定できます。

  1. SettingValue オブジェクトを作成し、値を設定します(すべての値は文字列です)。設定で選択肢のリストから1つの値を受け入れる場合は、 Workload Security コンソールに表示される選択肢のIDまたは選択項目の正確な表現を使用できます。

  2. PoliciesApi オブジェクトを作成し、それを SettingValue オブジェクトとともに使用して、ポリシー設定または初期設定のいずれかを変更します。ポリシー設定を変更する場合は、ポリシーIDも入力します。

次の例では、ポリシーのファイアウォールネットワークエンジンモードの値を設定します。

ソースを表示

# 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 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レファレンス/参照情報の Modify a Policy Setting 操作も参照してください。

複数のポリシーおよび初期設定のポリシーを設定する

複数のポリシーまたは初期設定のポリシーを設定するには、まず設定ごとに設定オブジェクトを作成し、値を設定します。

  1. SettingValue オブジェクトを作成し、値を設定します(すべての値は文字列です)。設定で選択肢のリストから1つの値を受け入れる場合は、 Workload Security コンソールに表示される選択肢のIDまたは選択項目の正確な表現を使用できます。

  2. 設定クラス(DefaultPolicySettings または PolicySettings)からオブジェクトを作成します。

  3. 設定の値を SettingValue オブジェクトに設定します。

同じ DefaultPolicySettings または PolicySettings オブジェクトに必要な数だけ設定を行います。

どちらのクラスの設定でも、 Workload Security の設定を変更する方法は少し異なります。

  • 初期設定のポリシー設定: PoliciesApi オブジェクトを使用して、マネージャ上の DefaultPolicySettings オブジェクトを変更します。

  • ポリシー設定: PolicySettings オブジェクトを Policy オブジェクトに追加します。次に、 PoliciesApi クラスを使用して、マネージャ上のポリシーを変更します。

値が指定されていない DefaultPolicySettings または PolicySettings オブジェクトの設定は、 Workload Securityでは変更されません。

Workload Security は、変更されたすべての設定を検証してから、値を維持します。オブジェクト内の1つ以上の設定が無効な場合、変更された設定は保持されません。エラー応答には、それぞれの失敗の理由が含まれます。

Workload Security で設定値の妥当性が検証されると、相互依存関係の設定が一致しているかどうかが確認されません。

次の例では、ポリシーに対して2つの設定を行い、フェールオープンモードまたはフェールクローズモードのいずれかを有効にします。

ソースを表示

# 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 Workload Security.
policies_api = api.PoliciesApi(api.ApiClient(configuration))
return policies_api.modify_policy(policy_id, policy, api_version, overrides=False)

システム設定の例については、 Workload Security システム設定を参照してください。

ポリシーのオーバーライドをリセットする

ポリシーが上位ポリシーのプロパティまたは設定値(上位ポリシーの場合は初期設定のポリシー設定)を継承するように、ポリシーのオーバーライドをリセットします。ポリシーの上書きをリセットする方法は、プロパティまたは設定の種類によって異なります。

一般に、このセクションの情報はコンピュータにも適用されます。ポリシー固有のクラスを使用する状況では、コンピュータ固有のクラスを使用します。たとえば、 PoliciesApi および PolicySettingsではなく、 ComputersApi および ComputerSettingsを使用します。

ID参照をリセットする

ID参照のオーバーライドをリセットして値を継承するには、ポリシーを変更し、プロパティの値を0に設定します。ID参照は、別の項目のIDを値として使用するプロパティです。

例: リアルタイム 不正プログラム対策 検索設定 の例では、ポリシーのrealTimeScanConfigurationIDがオーバーライドされます。親ポリシーから値を継承するようにプロパティをリセットするには、 realTimeScanConfigurationID0に設定します。

設定をリセットする

PoliciesApi クラスには、単一のポリシー設定をリセットするためのメソッドが用意されています。例については、 APIレファレンス/参照情報の[Policies]セクションにある[Policy Settingの値をリセットする]を参照してください。

複数のポリシー設定を同時にリセットするには、 PolicySettings オブジェクトに PoliciesApi を指定して、設定値を空の文字列に設定します。たとえば、 Configure ファイアウォール の例は、ポリシーの FirewallSettingReconnaissanceEnabled 設定の値をオーバーライドします。親ポリシーから値を継承するように設定をリセットするには、値を ""に設定します。

セキュリティモジュールのステータスをリセットする

セキュリティモジュールのステータスをリセットするには、ポリシーを変更し、モジュールの状態の値を inheritedに設定します。

たとえば、オンにするアプリケーションコントロール例は、のstatusプロパティをオーバーライドします。アプリケーションコントロールモジュール〜onポリシーの。親ポリシーから値を継承するように設定をリセットするには、ステータス値を inheritedに設定します。

ルールをリセットする

ルールのオーバーライドは、ポリシーに追加されたルールが元のルールから変更された場合に実行されます。ルールのすべてのオーバーライドをリセットするか、またはオーバーライドを選択してリセットすることができます。

ルールがポリシーに割り当てられている場合、ルールが割り当てられているかどうかにかかわらず、優先ポリシーと見なされません。

ルールのすべてのオーバーライドをリセットする

各モジュール固有のポリシールールの詳細クラス(FirewallRulesDetailsApi, PolicyIntegrityMonitoringRulesDetailsApi, PolicyIntrusionPreventionRuleDetailsApiおよび PolicyLogInspectionRulesDetailsApi)では、特定のポリシーに割り当てられているルールのすべてのオーバーライドをリセットする方法が提供されます。

コード例を参照するには、 APIレファレンス/参照情報の[ポリシー ファイアウォール ルールの詳細]の[ファイアウォールルールの上書きをリセット]操作に進み、その操作のコード例を参照してください。

ルールのオーバーライドを選択してリセットする

次の手順を使用して、ルールの一部のプロパティのみをリセットします。

  1. ポリシーのルールのすべてのオーバーライドを取得します。 overrides パラメータが trueに設定されたモジュール固有のルールの詳細クラスの describe メソッドを使用します。結果を保存します。( について オーバーライド パラメータをオーバーライドしてください。)

  2. ルールのすべてのオーバーライドをリセットします。

  3. 保持するオーバーライドを新しいルールに復元します。

  4. オーバーライドを使用してポリシールールを変更します。

次の例では、Policyの セキュリティログ監視 ルールオーバーライドのサブセットをリセットします。

ソースを表示

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 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)