Lindorm Time Series Database (TSDB) は、アカウントベースのアクセス制御をサポートしています。アカウント管理が有効になっている場合、すべての HTTP API リクエストに有効な認証情報を含める必要があります。認証情報のないリクエストは拒否されます。TSDB は、スーパーアカウントと標準アカウントの 2 種類のアカウントをサポートしており、それぞれに読み取り専用、書き込み専用、読み取り/書き込み、スーパーの 4 つの権限レベルのいずれかが割り当てられます。
アカウントの作成後は、アカウントの権限とパスワードを変更することはできません。アカウントを作成する前に、アカウントの種類と権限を計画してください。
前提条件
開始する前に、以下が満たされていることを確認してください:
エンジンバージョン 2.5.13 以降を実行している TSDB V1.0 インスタンス
TSDB コンソールへのアクセス
アカウントの管理
アカウント管理の有効化
TSDB コンソールの アカウント ページで、[ユーザー管理を有効化] をクリックします。
アカウントを作成または削除する前に、アカウント管理を有効化する必要があります。
アカウントの作成
TSDB コンソールの アカウント ページで、[作成] をクリックします。

アカウント名とパスワードを指定し、アカウントの種類を選択します:
スーパーアカウント

標準アカウント

フィールド ルール アカウント名 1~10 文字。使用可能な文字:英字、数字、アンダースコア ( _)。先頭は英字、末尾は英字または数字である必要があります。パスワード 6~20 文字。使用可能な文字:英字、数字、アンダースコア ( _)、アットマーク (@)、シャープ記号 (#)、ピリオド (.)。アカウント ページのアカウントリストに、作成したアカウントが表示されていることを確認します。

アカウントの削除
アカウント ページで対象のアカウントを見つけ、[削除] をクリックします。

アカウント管理の無効化
TSDB コンソールの アカウント ページで、[ユーザー管理を無効化] をクリックします。

API リクエストの認証
アカウント管理を有効にすると、ご利用の TSDB インスタンスへのすべての HTTP API リクエストに、有効な認証情報を含める必要があります。認証情報の渡し方は、クライアントの種類によって異なります。
アカウントの動作確認
curl を使用してテストリクエストを送信します。次の例では、api/put リクエストを送信します。このリクエストには、書き込み専用以上の権限が必要です:
curl -X POST \
-u ${Account name}:${Account password in the plaintext format} \
http://ts-xxxxxxx.hitsdb.tsdb.aliyuncs.com:8242/api?summary \
-d '[{"metric":"sys.cpu.nice","timestamp":1346846400,"value":18,"tags":{"host":"web01","dc":"lga"}}]'${Account name} と ${Account password in the plaintext format} を、実際の認証情報に置き換えてください。
TSDB SDK を使用した認証
アカウント管理が有効になっているインスタンスにアクセスするには、TSDB SDK V0.2.7 以降を使用してください。
TSDBConfig オブジェクトを作成する際に、basicAuth() メソッドを呼び出し、アカウント名とプレーンテキストパスワードを渡します。この TSDBConfig オブジェクトを使用するすべての接続には、認証情報が自動的に付与されます。
Java 以外のアプリケーションからの認証
TSDB SDK を使用しないアプリケーション (Python や Go など) の場合、各 HTTP リクエストに Authorization ヘッダーを追加します。TSDB は、RFC 2617 の Basic 認証を使用します。有効な Authorization ヘッダーのないリクエストは拒否されます。
ヘッダーのフォーマットは次のとおりです:
Authorization: Basic {Base64-encoded authentication information}Base64 エンコードされた文字列は、「{Account name}:{Account password}」から生成され、フィールドはコロン (:) で区切られます。
一般的な API リクエストの権限ポリシー
各権限レベルで、アクセス可能な API エンドポイントが制御されます。以下の表は、各エンドポイントと、それを呼び出すことができる権限レベルのマッピングを示しています。
| API エンドポイント | 認証情報なし | WriteOnly | ReadOnly | ReadWrite | Super |
|---|---|---|---|---|---|
| /api/put | × | ○ | × | ○ | ○ |
| /api/query | × | × | ○ | ○ | ○ |
| /api/query/last | × | × | ○ | ○ | ○ |
| /api/mput | × | ○ | × | ○ | ○ |
| /api/mquery | × | × | ○ | ○ | ○ |
| /api/query/mlast | × | × | ○ | ○ | ○ |
| /api/prom_write | × | ○ | × | ○ | ○ |
| /api/prom_read | × | × | ○ | ○ | ○ |
| /api/suggest | × | × | ○ | ○ | ○ |
| /api/dump_meta | × | × | ○ | ○ | ○ |
| /api/search/lookup | × | × | ○ | ○ | ○ |
| /api/ttl | × | × | × | × | ○ |
| /api/delete_meta | × | ○ | × | ○ | ○ |
| /api/delete_data | × | ○ | × | ○ | ○ |
| /api/truncate | × | × | × | × | ○ |