Cloud One Workload SecurityのAPIを使って自動化してみた:準備編
こんにちは、コンサル部@大阪オフィスのTodaです。
Cloud One Workload Securityで用意されている自動化するためのAPIをいろいろ操作してみたいと思います。
Cloud One Workload Securityとは?
トレンドマイクロ社が提供している製品でサーバ保護に必要な複数のセキュリティ機能を提供するクラウド型総合サーバセキュリティサービスです。 詳細は公式サイトをご覧ください。
同システムには自動化するためのAPIとSDKが用意されています。
下記マニュアルを参考に操作をしていきます。
■ Workload Security Python SDK
https://cloudone.trendmicro.com/docs/jp/workload-security/sdk-python/
■ Trend Micro Deep Security API (50.0.163)
https://cloudone.trendmicro.com/docs/workload-security/api-reference/
目標
- Pythonを利用してCloud One Workload Securityの操作ができる状態にする。
- 試しにログインアカウントの情報をAPI経由で取得する。
前提条件
- Python3系が動作できる環境
- Cloud One トライアル版アカウント登録し、利用できる状態
やってみる
Workload Securityのダッシュボードを表示
Cloud Oneにログインをおこない、Workload Securityのダッシュボードに移動します。
APIキーの新規登録
画面上部の[管理]メニューをクリックして画面移動します。
左メニューの[APIキー]をクリックしてして画面移動をおこない、一覧の[新規]ボタンをクリックします。
設定を入力
APIキーの設定情報を入力します、 内容を入力後[次へ]をクリックします。
- 名前:任意のキー名を指定します。
- 役割:初期で用意されている FullAccess を利用します。
情報の確認
登録を完了するとAPI通信で利用する秘密鍵の値が表示されます。
鍵の値は再発行することができないため テキスト等に保存をおこないます。
登録完了
一覧にキー情報が入っていれば登録作業が完了になります。
SDKの取得
Workload SecurityのAPIドキュメントを確認してPythonのSDKを取得します。
■ APIとSDK - 自動化のためのDevOpsツール
https://cloudone.trendmicro.com/docs/jp/workload-security/api-first-steps/#apisdk
■ Python SDK
https://cloudone.trendmicro.com/docs/jp/workload-security/sdk-python/
SDKのインストール
取得したファイル解凍して任意のディレクトリに移動をおこないます。
コマンドラインまたはターミナルを開きディレクトリに移動をおこないます。
下記コマンドにてインストールを実行します。
# Windows の場合 python -m pip install . # Mac の場合 python3 -m pip install . # 出力結果 (成功時最終行) # Successfully installed deep-security-api-XX.XX.XX
試しにログインアカウントの情報出力
APIリファレンスを元に管理者の情報を一覧出力するAPIを実行してみます。
2021年2月現在APIのバージョンは「v1」のみ提供になります。
APIのホストがわからなかったのですが、確認したところ「https://cloudone.trendmicro.com/api」が接続先になります。
■ Search Administrators
https://cloudone.trendmicro.com/docs/workload-security/api-reference/#tag/Administrators
setup.py と同じフォルダに administrators.py を作成して下記プログラムを入力します。
from __future__ import print_function import sys, warnings import deepsecurity from deepsecurity.rest import ApiException from pprint import pprint # Setup if not sys.warnoptions: warnings.simplefilter("ignore") configuration = deepsecurity.Configuration() configuration.host = 'https://cloudone.trendmicro.com/api' # Authentication configuration.api_key['api-secret-key'] = '[APIキー発行時の秘密鍵の値を入力]' # Initialization # Set Any Required Values api_instance = deepsecurity.AdministratorsApi(deepsecurity.ApiClient(configuration)) api_version = 'v1' try: api_response = api_instance.list_administrators(api_version) pprint(api_response) except ApiException as e: print("An exception occurred when calling AdministratorsApi.list_administrators: %s\n" % e)
実行をするとJSON形式で登録されている管理者の情報が出力されます。
python3 administrators.py { 'administrators': [ { 'active': True, 'created': 123456789, 'description': '', 'directory_info': None, 'directory_name': None, 'email_address': 'xxxxxxxxxxx@xxxxx', 'external': False, 'external_user_id': None, 'full_name': '', 'id': 1, 'last_password_change': **********, 'last_sign_in': **********, 'locale': 'ja-JP', 'mfa_type': 'none', 'mobile_number': '', 'pager_number': '', 'password': None, 'password_never_expires': True, 'phone_number': '', 'primary_contact': True, 'read_only': False, 'receive_notifications': False, 'report_pdf_password': None, 'report_pdf_password_enabled': False, 'role_id': 1, 'time_format': '24', 'time_zone': 'Asia/Tokyo', 'type': 'normal', 'unlock_time': None, 'unsuccessful_sign_in_attempts': 0, 'username': '**********', 'utc_offset': 'UTC+9.00' } ] }
さいごに
今回はCloud One Workload SecurityのAPIを使えるように準備してみました。
APIはいろいろ設定が用意されているため別システムと連携して操作など可能です。
私も自動化を試していこうと思います。