Smart Data Platform APIの利用開始

Smart Data PlatformのAPIを初めてご利用になる際には、以下の手順を参考にご利用ください。

1. API利用可設定およびIAMロールの設定

API利用時はユーザのAPI利用可否をAPI利用可能設定にする必要があります。各ユーザのプロファイル画面より設定ください。 また、IAMロールを用いて実行可能なAPIの設定を行ってください。(デフォルトのIAMロールのみではAPIを実行することはできません。) IAMロールは許可やAPI実行の条件などを示すものです。ホワイトリスト形式で記述します。 管理ユーザーは以下のパラメータをリクエストボディのresourcesに設定することにより、IAMロールを設定します。以下は設定例です。詳細な設定方法は API権限管理機能のご利用方法 をご参考ください。

{
"basePath": "/ecl-nova",
"ipAddress": "128.0.0.1/32",
"path": "/v2/{project_id}/servers/{server_id}/*",
"verb": "GET"
}
{
"basePath": "/ecl-keystone",
"ipAddress": "*",
"path": "*",
"verb": "POST"
}

2. API鍵 / API秘密鍵の取得

Smart Data Platformで提供しているAPIの実行にあたっては、Tokenを事前に取得しておくことが必要です。

Token取得にあたっては、事前にAPIを実行するユーザーのAPI鍵/API秘密鍵、およびそのユーザーがアクセスできるテナントのテナントIDをポータルで確認した上で、本サービスで提供しているKeystoneに対して以下のようなAPIを実行してTokenを生成します。

API鍵/API秘密鍵は、ポータル画面の「プロファイル」よりご確認いただけます。

3. トークン(Token)の取得

2.で取得したAPI鍵とAPI秘密鍵を用い、以下のようなコマンドを実行すると、Tokenを取得できます。 Tokenの有効期限は1時間です。

curl -i \
 -H "Content-Type: application/json" \
 -d '
{
   "auth": {
       "identity": {
           "methods": [
               "password"
           ],
           "password": {
               "user": {
                   "domain": {
                       "id": "default"
                   },
                   "name": "ApiKey※1",
                   "password": "ApiSecret※2"
               }
           }
       },
       "scope": {
           "project": {
               "id": "テナントID"
           }
       }
   }
}' {api_endpoint}/v3/auth/tokens

注釈

※1:API鍵

※2:API秘密鍵

上記コマンドを実行すると、下記のようなレスポンスが返却され、”X-Subject-Token:” の値が各サービスで提供しているAPIを実行する際に必要なTokenとなります。 "X-Subject-Token" を取り扱う際には大文字・小文字を区別しないようにお気をつけください。HTTPレスポンスヘッダー名は、RFC2616にて「大文字・小文字は区別されない」と規定されています。 HTTP等の仕様変更に伴って、予告なく大文字・小文字が変更される場合があります。

HTTP/1.1 201 Created
X-Forwarded-For: 10.20.30.140
Date: Mon, 28 Oct 2019 05:22:15 GMT
Content-Type: application/json
Content-Length: 2441
Connection: keep-alive
X-Forwarded-For: 10.20.30.140
X-Client-Type: APINative
Accept: */*
Vary: X-Auth-Token
x-openstack-request-id: req-58b973eb-7e39-4b01-82b8-832cd4bd7670
X-Subject-Token: e1b37cb197d84e69af37264fc0f167a33
ECL-Transaction-ID: 8f5045cd-7650-4089-b2aa-61a0c6425667
Set-Cookie: TS0149cbf5=015f1f0dc9feae58d23d7ef0048c490504781a965da2c461b0f66d391a43595bd4126ca545677b408e671b3cc9a1b4cdd815e3cf00; Path=/