Classic/VPC環境で利用できます。
OpenStack Swift APIと互換する Archive Storage APIのサポート情報を確認して、API共通呼び出しと認証方法を確認します。Archive Storageは、サポートしているバージョンが2.15.1(Pike)なので、このガイドでは2.15.1(Pike)に基づいて説明します。
サポート API
Archive Storage APIは、ストレージの管理と使用に必要な各種機能を制御できます。サポートするオペレーションリストは、Archive Storage APIガイドで確認してください。
APIの呼び出し
Archive Storage API呼び出しの段階は、次の通りです。
1. 認証キーの作成
2. 呼び出しドメインの確認
3. トークンの生成
4. トークンの削除
1. 認証キーの作成
Archive Storage APIを使用するための認証キーを作成する方法は、Ncloud APIの認証キーの作成方法と同じです。Ncoud APIの1. 認証キーの作成を参考にしてください。
2. 呼び出しドメインの確認
HTTPとHTTPSプロトコルの両方をサポートしていますが、データ保護のため、HTTPSのご使用をお勧めします。リージョン別の呼び出しドメイン情報は、次の通りです。
| リージョン | 認証 URL | サービス URL |
|---|---|---|
| 韓国 | https://kr.archive.ncloudstorage.com:5000 | https://kr.archive.ncloudstorage.com |
3. トークンの生成
NAVERクラウドプラットフォームのArchive Storageは、OpenStack Keystone V3 APIを利用して認証を行い、トークンを生成することができます。生成されたトークンは、アカウント、コンテナ、オブジェクトオペレーションを使用する時に、X-Auth-Tokenヘッダ値として入力して使用します。
OpenStack Keystone V3 APIに関する詳細は、https://developer.openstack.org/api-ref/identity/v3/を参考にしてください。
password認証方式を使用してトークンを生成し、NAVERクラウドプラットフォームコンソールの My Account > アカウントとセキュリティ管理 > セキュリティ管理 > アクセス管理 > API認証キーで作成した API認証キー情報のうち、Access Key IDは user name名、Secret Keyは user passwordとして使用します。
トークンを生成する場合、Projectの範囲に限定(scope)が必須であり、プロジェクト IDとドメイン IDは、Archive Storageコンソールで利用申し込みをした後、 [API利用情報を確認] ボタンをクリックして確認できます。
トークンの有効時間は24時間で、トークンの削除をリクエストして利用を停止できます。
構文
構文は次の通りです。
POST /v3/auth/tokens
リクエスト
リクエストパラメータは次の通りです。
| Name | In | Type | Description |
|---|---|---|---|
| auth | body | object | Authオブジェクト |
| identity | body | object | Identityオブジェクト |
| methods | body | array | 認証方式、パスワード認証方式を使用 |
| password | body | object | Passwordオブジェクト |
| user | body | object | Userオブジェクト、ID、パスワード、ドメイン入力必須 |
| domain | body | object | domainオブジェクト、IDを入力して使用し、ドメイン IDは Archive Storageコンソールの [API利用情報を確認] ボタンをクリックして確認 |
| scope | body | object | scopeオブジェクト。トークンの使用範囲を projectで指定して使用 |
| project | body | object | Projectオブジェクト、IDを入力して使用し、プロジェクト IDはArchive Storageコンソールの [API利用情報を確認] ボタンをクリックして確認 |
リクエストのサンプルコードは次の通りです。
curl -i -X POST -H "Content-Type: application/json" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens -d '
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "{access_key_id}",
"password": "{secret_key}",
"domain": {
"id": "{domain_id}"
}
}
}
},
"scope": {
"project": {
"id": "{project_id}"
}
}
}
}'
レスポンス
リスポンスパラメータは次の通りです。
| Name | In | Type | Description |
|---|---|---|---|
| X-Subject-Token | header | string | 生成されたトークン。トークン値はリクエストボディではなくヘッダに伝達 |
| token | body | object | Tokenオブジェクト |
| methods | body | array | 認証方式、パスワード認証方式を使用 |
| roles | body | array | ロール情報リスト、ID、Name情報を含む |
| expires_at | body | string | トークン終了日時。YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601). トークン終了日時が nullの場合、終了になりません |
| issued_at | body | string | トークン生成日時。YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601) |
| project | body | object | Projectオブジェクト、ドメイン、ID、Name情報を含む |
| catalog | body | array | Catalogオブジェクト |
| endpoints | body | array | Endpoint情報リスト |
| region_id | body | string | サービス Endpointが属するリージョン情報 |
| url | body | string | endpoint URL. |
| interface | body | string | インターフェースタイプ。Adminタイプは、Admin権限を持つユーザーのみ使用可能 |
| type | body | string | Endpointタイプ |
| audit_ids | body | array | ランダムで生成される固有の値で、トークン情報を照会するときに使用 |
レスポンスのサンプルコードは次の通りです。
HTTP/1.1 201 Created
Date: Mon, 17 Sep 2018 23:46:11 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
X-Subject-Token: gAAAAABboDzDOzds2V_2uzR9xn-AQkg5RRejRkGD9L5NuhwezSqqxpmY8ZNl48vYnC1GCn21AiffNtRrDedbvVq2usnPDH2qIp-Cq2Rx54fnH406NhhW9OiaKMzFwRzS7-js3j4xGMvEk2bPErmolAT4E1Du0vsF2azycC6sNcIMsVWcvd
Vary: X-Auth-Token
x-openstack-request-id: req-40a163b1-1fcc-423d-8ec3-3f40fd413ab6
Content-Length: 1759
Content-Type: application/json
{
"token": {
"is_domain": false,
"methods": [
"password"
],
"roles": [
{
"id": "488fac210a714fcc91b61a32525b5693",
"name": "user"
}
],
"expires_at": "2018-09-18T23:46:11.000000Z",
"project": {
"domain": {
"id": "default",
"name": "Default"
},
"id": "0a11d053d4804b4c86d26ae1ff48dc1e",
"name": "ncp-test-0"
},
"catalog": [
{
"endpoints": [
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:5000/v3",
"region": null,
"interface": "public",
"id": "3bf62632266c4be0880cd7170ca90f55"
},
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:35357/v3",
"region": null,
"interface": "admin",
"id": "a29ce505b6cb429ea9ca15cb126251f7"
},
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:35357/v3",
"region": null,
"interface": "internal",
"id": "e524bcde8c5a4eec8750acf3e5819d69"
}
],
"type": "identity",
"id": "ae1a92e6b64f4e9886517aaca2540b26",
"name": "keystone"
},
{
"endpoints": [
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
"region": "RegionOne",
"interface": "internal",
"id": "80773860110449b9b78dc3a05f3f6360"
},
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
"region": "RegionOne",
"interface": "public",
"id": "40f7102a57024603a53f41c4d8cb7cf3"
},
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com",
"region": "RegionOne",
"interface": "admin",
"id": "5297ae442163478e82f6f9630919b93f"
}
],
"type": "object-store",
"id": "fb4cbd0bf18f4beb9ac29b09f0862ce2",
"name": "swift"
}
],
"user": {
"password_expires_at": null,
"domain": {
"id": "default",
"name": "Default"
},
"id": "ac1eca9c1b9f4900a0b1c4a82be49686",
"name": "qQXiRLju7XHMXpmEskHn"
},
"audit_ids": [
"U-O5n4rBSoO5jBykNXYNsw"
],
"issued_at": "2018-09-17T23:46:11.000000Z"
}
}
4. トークンの削除
生成したトークンを削除できます。
構文
構文は次の通りです。
DELETE /v3/auth/tokens
リクエスト
リクエストパラメータは次の通りです。
| Name | In | Type | Description |
|---|---|---|---|
| X-Auth-Token | header | string | 認証のための有効なトークン |
| X-Subject-Token | header | string | 削除対象のトークン。リクエストが成功するとすぐに利用できなくなる |
リクエストのサンプルコードは次の通りです。
curl -i -X DELETE -H "X-Auth-Token: $token" -H "X-Subject-Token: $token_to_delete" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens
レスポンス
リクエストが成功すると、No Content(204)のステータスコードを返します。レスポンスのサンプルコードは次の通りです。
HTTP/1.1 204 No Content
Date: Tue, 18 Sep 2018 05:44:00 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Vary: X-Auth-Token
x-openstack-request-id: req-b6e8efbe-c3f2-41bc-8ca5-1067753318d4
Content-Type: text/plain; charset=UTF-8