ポリシーを使用して、1つ以上の Workload Security モジュールを使用してコンピュータを保護します。
ポリシーに対する特定の保護モジュールの設定については、次を参照してください。
- ファイアウォールの設定
- 侵入防御の設定
- 不正プログラム対策の設定
- Webレピュテーションを設定
- デバイスコントロールを設定する
- アプリケーションコントロールを設定する
- 変更監視の設定
- セキュリティログ監視の設定
APIを使用する前に、ポリシーに関する基本的な概念を理解しておく必要があります。背景情報については、コンピュータやその他のリソースを保護するためのポリシーの作成を参照してください。
ポリシーを作成する
使用している Workload Security モジュールの動作を定義するポリシーを作成します。このポリシーは、エージェントマネージャ通信、検索動作、ログ、イベント保持、ネットワークエンジン設定などのポリシー設定を行います。ポリシーを作成したら、ポリシーを1台以上のコンピュータに割り当てることができます。
ポリシーを作成するには、
Policyオブジェクトを作成し、そのプロパティを設定して動作を定義し、次にPoliciesApiクラスを使用して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 Workload Security created_policy = policies_api.create_policy(new_policy, api_version)
作成された
ポリシーオブジェクトには、モジュール構成や設定値が含まれていません。構成と設定が省略されると、値は親ポリシーから継承されます。したがって、作成されたポリシーはほとんどすべての動作をベースポリシーから継承します。また、ポリシーIDは不変であるため、ポリシーのIDがわかっている場合は、検索する代わりにそれを使用するだけで済みます。ポリシーと対話するためにAPIを使用するには、
/api/policiesエンドポイントを使用してください。APIレファレンスのポリシー操作グループを参照してください。検索に関する情報は、リソースの検索を参照してください。API呼び出しの認証に関する情報は、Workload Securityで認証するを参照してください。
ポリシーをコンピュータに割り当てる
ポリシーをコンピュータに割り当てて、ポリシー設定とセキュリティモジュールの設定に従ってコンピュータを保護します。
-
コンピュータオブジェクトを作成します。 -
オブジェクトで使用するポリシーIDを設定します。
-
ComputersApiオブジェクトを使用して、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レファレンスのポリシーの変更操作も参照してください。
ポリシーはコンピュータレベルで上書きできます。ポリシーを上書きするためのコンピュータの設定を参照してください。
ポリシーと初期設定のポリシー設定を構成する
ポリシー設定は、保護モジュールと Workload Security プラットフォームの多くの動作を制御します。したがって、APIを使用して自動化する多くのタスクでは、ポリシー設定を行う必要があります。
ポリシーとデフォルトポリシー設定の一覧については、設定レファレンスの デフォルトポリシー、ポリシー、およびコンピュータ設定 を参照してください。
初期設定値とオーバーライド
Workload Security ポリシーは階層構造になっています。ポリシーの階層内の場所によって、設定の初期値が決まります。
-
[Top-level policies:] すべてのトップレベルポリシーのデフォルト値を定義するデフォルトポリシー設定のセットです。
-
[Child policies:] のデフォルト値は親ポリシーから継承されます。
ポリシーを初期設定よりも優先するように設定できます。そのため、初期設定のポリシー設定は、ポリシーによって上書きされてからポリシーが優先されます。
ポリシー階層と継承の詳細については、ポリシー、継承、およびオーバーライドを参照してください。
ポリシー設定と初期設定のポリシー設定クラス
Workload Security SDKには、ポリシーおよび初期設定のポリシー設定を格納するための次のクラスが用意されています。これらのクラスは、 Workload
Security とSDKまたはAPIクライアント間の設定値の受け渡しに使用されます。
-
DefaultPolicySettings: すべてのデフォルトポリシー設定の値を保存します。 -
PolicySettings: 特定のポリシーの設定値を保存します。
DefaultPolicySettingsクラスとPolicySettingsクラスの設定は、いくつかの例外を除いて同一です。設定の参照情報については、デフォルトポリシー、ポリシー、およびコンピュータ設定を参照してください。ポリシー設定または初期設定のポリシー設定の値を取得します。
PoliciesApiクラスを使用すると、ポリシーまたはデフォルトポリシー設定の単一設定の値を取得できます。ポリシーの場合、設定の有効値または上書き値のいずれかを取得できます。-
[Effective setting:] ポリシーに使用されている値。この値は継承されているか、このポリシーに対して特に設定されています (上書きされています)。
-
[Override:] このポリシーに対して特に設定された値です。値がない場合、設定値が継承されていることを示します。
最上位ポリシーの初期設定値を知りたい場合は、初期設定を取得します。
設定値を取得する際は、名前で設定を識別します。値は
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 から設定を取得する方法は、設定クラスによって異なります。
-
[Default policy settings:]
PoliciesApiオブジェクトを使用して、マネージャからDefaultPolicySettingsオブジェクトを取得します。 -
[Policy settings:]
PoliciesApiオブジェクトを使用して、Workload SecurityからPolicyオブジェクトとしてポリシーを取得します。次に、PolicyオブジェクトからPolicySettingsオブジェクトを取得します。
例については、APIレファレンスのポリシーセクションにあるデフォルトポリシー設定の一覧およびポリシーの説明の操作を参照してください。
単一のポリシーまたは初期設定のポリシー設定を構成する
PoliciesApiクラスを使用すると、ポリシーまたはデフォルトのポリシー設定の単一設定の値を設定できます。SettingValueオブジェクトを作成し、値を設定します (すべての値は文字列です)。設定が選択肢のリストから1つの値を受け入れる場合、選択肢のIDまたはWorkload Securityコンソールに表示される正確な表現を使用できます。- 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レファレンスのポリシー設定の変更操作も参照してください。
複数のポリシーおよび初期設定のポリシーを設定する
複数のポリシーまたは初期設定のポリシーを設定するには、まず設定ごとに設定オブジェクトを作成し、値を設定します。
SettingValueオブジェクトを作成し、値を設定します (すべての値は文字列です)。設定が選択肢のリストから1つの値を受け入れる場合、選択肢のIDまたはWorkload Securityコンソールに表示される正確な表現を使用できます。- 設定クラス (
DefaultPolicySettingsまたはPolicySettings) からオブジェクトを作成します。 - 設定の値を
SettingValueオブジェクトに設定します。
必要に応じて、同じ
DefaultPolicySettingsまたはPolicySettingsオブジェクトで多くの設定の値を設定します。どちらのクラスの設定でも、 Workload Security の設定を変更する方法は少し異なります。
-
[Default policy settings:]
PoliciesApiオブジェクトを使用して、マネージャのDefaultPolicySettingsオブジェクトを変更します。 -
[Policy settings:]
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をオーバーライドします。プロパティを親ポリシーから値を継承するようにリセットするには、
realTimeScanConfigurationIDを0に設定します。設定をリセットする
PoliciesApiクラスは、単一のポリシー設定をリセットするためのメソッドを提供します。例については、Automation Centerのポリシーセクションにあるポリシー設定の値をリセットする操作を参照してください。複数のポリシー設定を同時にリセットするには、
PolicySettingsオブジェクトをPoliciesApiと共に使用して、設定の値を空の文字列に設定します。例えば、ファイアウォールの設定の例では、ポリシーのFirewallSettingReconnaissanceEnabled設定の値をオーバーライドします。設定を親ポリシーから継承するようにリセットするには、値を""に設定します。セキュリティモジュールのステータスをリセットする
セキュリティモジュールのステータスをリセットするには、ポリシーを変更し、モジュールの状態の値を
inheritedに設定します。例えば、アプリケーションコントロールをオンにする例では、アプリケーションコントロールモジュールのステータスプロパティをポリシーに対して
onにオーバーライドします。設定を親ポリシーから継承する値にリセットするには、ステータス値をinheritedに設定します。ルールをリセットする
ルールのオーバーライドは、ポリシーに追加されたルールが元のルールから変更された場合に実行されます。ルールのすべてのオーバーライドをリセットするか、またはオーバーライドを選択してリセットすることができます。
ルールがポリシーに割り当てられている場合、ルールが割り当てられているかどうかにかかわらず、優先ポリシーと見なされません。
ルールのすべてのオーバーライドをリセットする
各モジュール固有のポリシールール詳細クラス (
FirewallRulesDetailsApi、PolicyIntegrityMonitoringRulesDetailsApi、PolicyIntrusionPreventionRuleDetailsApi、およびPolicyLogInspectionRulesDetailsApi) は、特定のポリシーに割り当てられたルールのすべてのオーバーライドをリセットするためのメソッドを提供します。コード例を見るには、Automation Centerのポリシーファイアウォールルール詳細のファイアウォールルールオーバーライドのリセット操作に移動し、その操作のコード例を参照してください。
ルールのオーバーライドを選択してリセットする
ルールの一部のプロパティのみをリセットするには、次の手順を実行します。
- ポリシーのルールに対するすべてのオーバーライドを取得します。モジュール固有のルール詳細クラスの
describeメソッドを使用し、overridesパラメータをtrueに設定します。結果を保存します。オーバーライドパラメータについてを参照してください。 - ルールのすべてのオーバーライドをリセットします。
- 保持するオーバーライドを新しいルールに復元します。
- オーバーライドを使用してポリシールールを変更します。
次の例では、ポリシーのセキュリティログ監視ルールオーバーライドのサブセットをリセットします。
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)
