ビュー:
APIに慣れるために、簡単なリクエストを Server & Workload Protectionに送信します。

開発環境の設定

ソフトウェアを開発する環境には、次のものが必要です。
  • Server & Workload Protectionへのネットワークアクセス。
  • SDKクライアントライブラリ (使用する場合)。に移動します。 Python SDKページクライアントライブラリをダウンロードし、開発環境に追加する方法について説明します。
  • クライアントライブラリのプログラミング言語のランタイム環境。
ヒント
ヒント
すぐにAPIの探索を開始するには、クライアントライブラリを使用する代わりに、次のようなHTTPクライアントを使用します。郵便配達員,、またはカール

Server & Workload Protectionによる認証

Server & Workload Protection では、APIキーを使用してHTTPリクエストを認証します。
HTTPリクエストの認証方法は、新しいTrend Micro Cloud Oneアカウントを使用しているか、以前の従来のアカウントを使用しているかによって異なります。 2種類のアカウントの詳細については、を参照してください。 Trend Micro Cloud Oneアカウントの変更

APIキーの作成

Server & Workload Protectionでのリクエストの認証に使用するAPIキーを作成します。
  • 従来のアカウントのAPIキーを作成する方法については、次を参照してください。 APIキーの作成と管理
  • 新しいTrend Micro Cloud OneアカウントのAPIキーを作成する方法については、次を参照してください。 APIキーの管理
APIキーを作成すると、APIキーに関連付けられた一意の秘密鍵が提供されます。この秘密鍵は、認証用のHTTP要求に含めます。秘密鍵は提供された時点で保管する必要があります。

要求の認証

作成する各HTTP要求には、ヘッダー内の承認が必要です。認証の実行方法は、従来のAPIキーとTrend Micro Cloud One APIキーのどちらを使用しているかによって異なります。

Trend Micro Cloud One APIキーを使用した認証

Trend Micro Cloud One APIキーを使用している場合は、次のリクエストの例に示すように、リクエストごとにシークレットキーを含む認証ヘッダが必要です。
GET /api/policies HTTP/1.1 Host: localhost:4119 Authorization: ApiKey 1tBOlis4aGpMyygC26YKZMgU2fW:7864DcPqkWFHNngXHnn9VgWSuGtUoj52n3tTZSqkvucLDJ9jJJvbrBZMBJBigsS5wT api-version: v1

従来のAPIキーを使用した認証

従来のAPIキーを使用している場合は、各リクエストにapi-secret-key次のリクエスト例に示すように、秘密鍵を含むヘッダーを指定します。
GET /api/policies HTTP/1.1 Host: localhost:4119 api-secret-key: 2:vJC6lckDygB6FYURIvR0WK2ZTAhIY8rb0Amy9UMn4mo= api-version: v1
クライアントライブラリを使用する場合は、ApiClient秘密鍵を使用するように設定します。設定はグローバルであるため、以降のAPIの呼び出しはすべて秘密鍵を使用して認証されます。次のGETおよびPOSTの例は、作成および設定の方法を示しています。ApiClient
Managerはシークレットを使用してリクエストを認証します。各APIキーは、実行可能な処理を決定する役割に関連付けられています。

GETリクエストの実行: ポリシーの一覧表示

APIの探索を開始するには、ポリシーの一覧表示操作については、APIリファレンスの「ポリシー」セクションを参照してください。次の点に注意してください。List Policiesに対するGET要求です。policiesエンドポイント:
apiref-getpolicies.png

HTTPクライアントを使用する

要求をすぐに送信するには、Postman、Paw、またはcurlを使用します。次の情報を使用して要求を作成します。
  • URL:https://<Manager host name>:<port>/api/policies 、 例えばhttps://localhost:4119/api/policies
  • 最初のヘッダ:
    • キー:api-secret-key (従来のアカウントの場合) またはAuthorization(新規アカウントの場合)
    • 価値:<your key secret> (従来のアカウントの場合) またはApiKey <your key value> (新規アカウントの場合)
  • 2番目のヘッダ:
    • キー: api-version
    • 値: v1
レガシーアカウントのcurlコマンドの例:
curl -X GET https://&nbsp;localhost:4119/api/policies -H 'api-secret-key: 5:W+lC8YHIaYHeQuDbJZLkqwM5b8xjxla2pHtBNoiifF8=' -H 'api-version: v1'

クライアントライブラリを使用する

次の例では、ApiClient Server & Workload Protectionによる認証を設定するオブジェクト。PoliciesApiオブジェクトが作成され、すべてのポリシーを一覧表示するために使用されます。
first_steps_get_example.pyという名前のファイルを作成し、次のコード例をファイルにコピーします。
import deepsecurity as api from deepsecurity.rest import ApiException as api_exception def get_policies_list(api, configuration, api_version, api_exception): """ Gets a list of policies on Server & Workload Protection :return: A PoliciesApi object that contains a list of policies. """ # Create a PoliciesApi object policies_api = api.PoliciesApi(api.ApiClient(configuration)) # List policies using version v1 of the API policies_list = policies_api.list_policies(api_version) # View the list of policies return policies_list if __name__ == '__main__': # Add Server & Workload Protection host information to the api client configuration configuration = api.Configuration() configuration.host = 'https://&nbsp;192.168.17.149:4119/api' # Authentication configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE=' # Version api_version = 'v1' print(get_policies_list(api, configuration, api_version, api_exception))Server & Workload Protection

    :return: A PoliciesApi object that contains a list of policies.
    """
    # Create a PoliciesApi object
    policies_api = api.PoliciesApi(api.ApiClient(configuration))

    # List policies using version v1 of the API
    policies_list = policies_api.list_policies(api_version)
    # View the list of policies
    return policies_list

if __name__ == '__main__':
    # Add Server & Workload Protection host information to the api client configuration
    configuration = api.Configuration()
    configuration.host = 'https://&nbsp;192.168.17.149:4119/api'

    # Authentication
    configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE='

    # Version
    api_version = 'v1'

    print(get_policies_list(api, configuration, api_version, api_exception))
次のコードを探し、環境に応じてURLと秘密鍵を変更します。
configuration.host = 'https://192.168.17.149:4119/api' configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE='
コマンドプロンプト (Windows) またはターミナル (Linux) を開き、次のコマンドを入力します。
python first_steps_get_example.py

POST要求の実行: ファイアウォールルールの検索

POST要求を実行してファイアウォールルールを検索します。 APIリファレンスでは、ファイアウォールルールの検索の操作 ([ファイアウォールルール] セクション)firewallrulesendointは、パスへのPOSTリクエストです。firewallrules/search
apiref-fwrules.png
APIリファレンスには、要求本文で使用する一連のパラメータも示されています。対象Search Firewall Rulesの場合、各パラメータは検索条件です。この例では、ID 3を検索します。

HTTPクライアントを使用して送信する

次の情報を使用して、PostmanまたはPawで要求を作成します。
  • 要求の種類: POST
  • URL: https://<Server & Workload Protection hostname><port>/api/firewallrules/search、 例えばhttps://localhost:4119/api/firewallrules/search
  • 最初のヘッダ:
    • キー:api-secret-key (従来のアカウントの場合) またはAuthorization(新規アカウントの場合)
    • 値: キーの秘密
  • 2番目のヘッダ:
    • キー: api-version
    • 値: v1
  • 3番目のヘッダ:
    • キー: Content-Type
    • 値: application/json
また、次の未加工コードを本文に追加します。
{ "searchCriteria": [{ "idTest":"equal", "idValue":3 }] }
curlコマンドの例:
curl -X POST https://&nbsp;localhost:4119/api/firewallrules/search \ -H 'Cache-Control: no-cache' \ -H 'api-secret-key: 3:zNi5ag8xPGpfEMElV0GxAIpTs5Ji8BQoCtXaTAgKkVM=' \ -H 'api-version: v1' \ -H 'content-type: application/json' \ -d '{ "searchCriteria": [{ "idTest":"equal", "idValue":3 }] }'

クライアントライブラリを使用して送信する

次の例では、SearchFilter検索条件を定義するオブジェクト。はSearchFilterパラメータは、searchFirewallRulesの方法ModuleFirewallApiオブジェクト。
first_steps_post_example.pyという名前のファイルを作成し、次のコード例をファイルにコピーします。
import deepsecurity as api from deepsecurity.rest import ApiException as api_exception def search_firewall_rules(api, configuration, api_version, api_exception): """ Searches the firewall rules for any rule that contains DHCP in the rule name. :param api: The Server & Workload Protection API modules. :param configuration: Configuration object to pass to the api client. :param api_version: The version of the API to use. :param api_exception: The Server & Workload Protection API exception module. :return: A list containing all firewall rules that match the search criteria. """ # Define the search criteria search_criteria = api.SearchCriteria() search_criteria.field_name = "name" search_criteria.string_value = "%DHCP%" search_criteria.string_test = "equal" search_criteria.string_wildcards = True # Create search filter to find the rule search_filter = api.SearchFilter(None,[search_criteria]) # Create a FirewallRulesApi object firewall_rules_api = api.FirewallRulesApi(api.ApiClient(configuration)) # Perform the search firewall_rules = firewall_rules_api.search_firewall_rules(api_version, search_filter=search_filter) firewall_rules_list = [] for rule in firewall_rules.firewall_rules: firewall_rules_list.append(rule) return firewall_rules if __name__ == '__main__': # Add Server & Workload Protection host information to the api client configuration configuration = api.Configuration() configuration.host = 'https://192.168.17.149:4119/api' # Authentication configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE=' # Version api_version = 'v1' print(search_firewall_rules(api, configuration, api_version, api_exception))Server & Workload Protection API modules.
    :param configuration: Configuration object to pass to the api client.
    :param api_version: The version of the API to use.
    :param api_exception: The Server & Workload Protection API exception module.
    :return: A list containing all firewall rules that match the search criteria.

    """

    # Define the search criteria
    search_criteria = api.SearchCriteria()
    search_criteria.field_name = "name"
    search_criteria.string_value = "%DHCP%"
    search_criteria.string_test = "equal"
    search_criteria.string_wildcards = True

    # Create search filter to find the rule
    search_filter = api.SearchFilter(None,[search_criteria])

    # Create a FirewallRulesApi object
    firewall_rules_api = api.FirewallRulesApi(api.ApiClient(configuration))

    # Perform the search
    firewall_rules = firewall_rules_api.search_firewall_rules(api_version, search_filter=search_filter)
    firewall_rules_list = []
    for rule in firewall_rules.firewall_rules:
        firewall_rules_list.append(rule)

    return firewall_rules

if __name__ == '__main__':
    # Add Server & Workload Protection host information to the api client configuration
    configuration = api.Configuration()
    configuration.host = 'https://192.168.17.149:4119/api'

    # Authentication
    configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE='

    # Version
    api_version = 'v1'
    print(search_firewall_rules(api, configuration, api_version, api_exception))
次のコードを探し、環境に応じてURLと秘密鍵を変更します。
configuration.host = 'https://192.168.17.149:4119/api'</code></li> configuration.api_key['api-secret-key'] = '2:l069trAePqPRxZUfBqyw442z1DWm9s4u0F/g9bewnFE='
コマンドプロンプト (Windows) またはターミナル (Linux) を開き、次のコマンドを入力します。
python first_steps_post_example.py

Server & Workload Protection バージョンの取得

正しく認証された要求に対する各対応には、 Server & Workload Protection インスタンスのバージョンが含まれます。 X-DSM-Versionヘッダには、次の例のようにバージョンが含まれます。
X-DSM-Version = Deep Security/12.0.81

次のステップ