レガシーアカウント用のAPI Keysを作成できます。新しいTrend Cloud Oneアカウントを使用している場合は、代わりにAPI Keysの管理を参照してください。
SDKを使用してAPIキーを作成するには、まずAPIキーに関連付ける役割のIDを取得する必要があります。また、既存のAPIキーを使用して呼び出しを認証する必要があります。APIキーが作成されていない場合は、ユーザ名とパスワードを使用して最初のAPIキーを作成できます。
ロールIDを取得
役割IDを取得して、役割にAPIキーを割り当てます。役割のIDがわからない場合は、役割を検索して役割IDを取得できます。
たとえば、コンピュータのセキュリティステータスに関するレポートを生成するプログラムでは、すべてのコンピュータに対する読み取りアクセス権が必要です。Workload
Security が提供するAuditorの役割は、初期設定ではコンピュータおよびポリシーに対する読み取り専用アクセスを提供するため、このタスクに適しています。
ロールを作成したい場合は、ロールを使用してアクセスを制御するを参照してください。
ロールを検索してIDを取得するには、次の一般的な手順を実行します。
手順
- 検索条件を定義する
SearchCriteria
オブジェクトを作成します。 SearchCriteria
をSearchFilter
に追加します。AdministratorRolesApi
オブジェクトを作成し、それを使用して検索を実行します。- 返された
Role
オブジェクトからIDを取得します。
次に進む前に
検索の詳細については、リソースの検索を参照してください。
次の例では、名前でロールを検索します:
# Store the role ID - default is None role_id = None # Search criteria name_criteria = api.SearchCriteria() name_criteria.field_name = "name" name_criteria.string_value = role_name name_criteria.string_test = "equal" # Search filter role_filter = api.SearchFilter() role_filter.search_criteria = [name_criteria] # Perform the search and obtain the ID of the returned role admin_roles_api = api.AdministratorRolesApi(api.ApiClient(configuration)) roles = admin_roles_api.search_administrator_roles(api_version, search_filter=role_filter) if len(roles.roles) > 0: role_id = roles.roles[0].id return roles.roles[0].id
また、APIレファレンスの検索管理者ロール操作も参照してください。
SDKを使用したAPIキーの作成
SDKを使用するには、APIキーを作成し、
ApiKey
オブジェクトを作成して、APIキーに関連付けるロールの名前とIDを設定します。また、次のオプションのプロパティを指定することもできます:- 説明
- タイムゾーン
- ロケール
- 有効期限
Workload SecurityでAPIキーを作成するには、
APIKeysApi
オブジェクトを使用します。返されるApiKey
オブジェクトにはシークレットキーが含まれています。APIキーを作成するには、APIキーの作成操作を
/api/apikeys
エンドポイントで使用します。次の例では、監査目的でAPIキーを作成します。このキーは作成から2週間後に期限切れになります。
# Set key properties time_to_expiry_in_ms = 14 * 24 * 60 * 60 * 1000 current_time_in_ms = int(round(time.time() * 1000)) key = api.ApiKey() key.key_name = key_name key.description = "Read-only access" key.role_id = "2" key.locale = "en-US" key.time_zone = "Asia/Tokyo" key.expiry_date = current_time_in_ms + time_to_expiry_in_ms # expires in 2 weeks # Create the key on Workload Security api_keys_api = api.APIKeysApi(api.ApiClient(configuration)) return api_keys_api.create_api_key(key, api_version)
API呼び出しの認証に関する情報については、Workload Securityで認証するを参照してください。
ユーザ名とパスワードを使用してAPIキーを作成する
まだAPIキーが作成されていないときにタスクを自動化するには、APIとユーザ名とパスワードを使用して最初のAPIキーを作成します。
手順
/api/sessions
リソースを使用して、有効なセッションクッキーとリクエストIDを取得します。- セッションCookieとリクエストIDを使用して、
/api/apikeys
リソースにリクエストを送り、APIキーを作成します。作成したら、APIキーを使用して Workload Securityへの後続の呼び出しを行います。
セッションCookieと要求IDを取得する
Postman、Paw、または cURL などのHTTPクライアントを使用して、
/api/sessions
リソースにPOSTリクエストを送信します。レスポンスにはセッションIDを含むクッキーが含まれ、レスポンス本文にはリクエストIDが含まれます。/api/sessions
リソースは現在SDKでは利用できません。次の情報を使用して要求を作成します。
-
リクエストタイプ:
POST
-
URL:
https://<Workload Security Hostname>:<port>/api/sessions
、例えばhttps://localhost:4119/api/sessions
-
最初のヘッダ:
- 名前:
api-version
- 値:
v1
- 名前:
-
2番目のヘッダ:
- 名前:
Content-type
- 値:
application/json
- 名前:
-
本文 (必要に応じて
tenantName
とmfaCode
も含めてください):{ "userName": "myUserName", "password": "myPassword" }
以下はcURLコマンドの例です。レスポンスCookieは
cookie.txt
ファイルに保存されます。curl -i -X POST \ https://localhost:4119/api/sessions \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'api-version: v1' \ -c cookie.txt \ -d '{ "userName": "myUserName", "password": "myPassword" }'
Set-Cookie
レスポンスヘッダーには、sID
クッキーにセッションIDが含まれています。レスポンス本文には、RID
の値としてレスポンスIDが含まれています。レスポンスは次の例のようになります。X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1;mode=block Cache-Control: no-cache,no-store Pragma: no-cache Set-Cookie: sID=D5EE2AC155601C895B33B701080D40A6; Path=/; Secure; HttpOnly Content-Type: application/json Content-Length: 141 Date: Wed, 24 Oct 2018 15:29:53 GMT { "administratorID": 1, "created": 1540309893123, "lastActivity": 1540309893123, "accessType": "webService", "RID": "77DFF81036170DBF92CB71E4559512B9" }
セッションCookieと要求IDを使用してAPIキーを作成する
Postman、Paw、cURLなどのHTTPクライアントを使用して、
/api/apikeys
リソースにPOSTリクエストを送信します。認証には、/api/sessions
リソースから取得したセッションCookieとレスポンスIDを使用します。このSDKでは、現在セッションIDとリソースIDを認証に使用することはできません。
次の情報を使用して要求を作成します。
-
リクエストタイプ:
POST
-
URL:
https://<Workload Security Hostname>:<port>/api/apikeys
、例えばhttps://localhost:4119/api/sessions
-
最初のヘッダ:
- 名前:
api-version
- 値:
v1
- 名前:
-
2番目のヘッダ:
- 名前:
Content-type
- 値:
application/json
- 名前:
-
3番目のヘッダ:
- 名前:
rID
- 値:
sessions
リソースから取得したリクエストID、例えば77DFF81036170DBF92CB71E4559512B9
- 名前:
-
Cookie: 受信した
/api/sessions
リソースからのsID
クッキーを含めます。 -
ボディ:
{ "keyName": "First Key", "description": "Created using a request ID", "roleID: 1 }
ロールIDの取得方法については、ロールIDの取得を参照してください。
以下はcURLコマンドの例です。セッションCookieは
cookie.txt
ファイルを介して含まれます。curl -X POST \ https://192.168.60.128:4119/api/apikeys \ -H 'Content-Type: application/json' \ -H 'Postman-Token: <POSTMAN_TOKEN>' \ -H 'api-version: v1' \ -H 'rID: <request_ID>' \ -b cookie.txt \ -d '{ "keyName": "First Key", "description": "Created using a request ID", "roleID": 1 }'
レスポンス本文には、
secretKey
の値として秘密鍵が含まれます。次の例のようになります。{ "keyName": "First Key", "description": "Created using a request ID", "locale": "en-US", "roleID": 1, "timeZone": "America/New_York", "active": true, "created": 1540310105209, "unsuccessfulSignInAttempts": 0, "secretKey": "<SECRET_KEY>", "serviceAccount": false, "ID": 8 }
secretKey
を保存して、後でAPI呼び出しのapi-secret-key
ヘッダーで使用できるようにします。