このページのトピック
コードを使用したAPIキーの作成
従来のアカウント のAPIキーを作成できます。新しいTrend Cloud Oneアカウントを使用している場合は、APIキーの管理 を参照してください。
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を設定します。また、次のオプションのプロパティを指定することもできます。
- 説明
- タイムゾーン
- ロケール
- 有効期限
APIKeysApi
オブジェクトを使用して、 Workload SecurityでAPIキーを作成します。返される ApiKey
オブジェクトには秘密鍵が含まれています。
APIを使用してAPIキーを作成するには、 /api/apikeys
エンドポイントの APIキー の作成操作を使用します。
次の例では、監査用の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キーを作成します。
- 有効なセッションCookieと要求IDを取得するには、
/api/sessions
リソースを使用します。 - APIキーを作成するには、
/api/apikeys
リソースへの要求でセッションCookieと要求IDを使用します。
作成したら、APIキーを使用して Workload Securityへの後続の呼び出しを行います。
セッションCookieと要求IDを取得する
Postman、Paw、またはcURLなどのHTTPクライアントを使用して、POST要求を /api/sessions
リソースに送信します。応答にはセッションIDを含むCookieが含まれ、応答本文には要求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
Cookie内のセッション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クライアントを使用して、POST要求を /api/apikeys
リソースに送信します。/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
Cookieを含めます。 -
ボディ:
{ "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
ヘッダで後で使用できるようにします。