サービスアカウントトークンAPIの作成
基本認証を必要とせずにアクセスするためのサービスアカウントトークンを作成します。
リクエスト
POST /_security/service/<namespace>/<service>/credential/token/<token_name>
PUT /_security/service/<namespace>/<service>/credential/token/<token_name>
POST /_security/service/<namespace>/<service>/credential/token
前提条件
- このAPIを使用するには、少なくとも
manage_service_account
クラスター権限を持っている必要があります。
説明
サービスアカウントトークンAPIの呼び出しが成功すると、サービスアカウントトークン、その名前、およびシークレット値を含むJSON構造が返されます。
サービスアカウントトークンは決して期限切れになりません。不要になった場合は、積極的に削除する必要があります。
パスパラメータ
namespace
- (必須、文字列) 名前空間の名前。
service
- (必須、文字列) サービス名の名前。
token_name
- (オプション、文字列) サービスアカウントトークンの名前。省略した場合は、ランダムな名前が生成されます。
トークン名は1文字以上256文字以下でなければなりません。英数字(a-z
,A-Z
,0-9
)、ダッシュ(-
)、およびアンダースコア(_
)を含むことができますが、アンダースコアで始めることはできません。
トークン名は、関連するサービスアカウントのコンテキスト内で一意でなければなりません。また、サービスアカウントのプリンシパルとトークン名で構成される完全修飾名に対してもグローバルに一意でなければなりません。例:<namespace>/<service>/<token-name>
。
例
以下のリクエストはサービスアカウントトークンを作成します:
Python
resp = client.security.create_service_token(
namespace="elastic",
service="fleet-server",
name="token1",
)
print(resp)
Js
const response = await client.security.createServiceToken({
namespace: "elastic",
service: "fleet-server",
name: "token1",
});
console.log(response);
コンソール
POST /_security/service/elastic/fleet-server/credential/token/token1
レスポンスにはサービスアカウントトークン、その名前、およびシークレット値が含まれます:
コンソール-結果
{
"created": true,
"token": {
"name": "token1",
"value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ"
}
}
ベアラートークンとして使用するためのシークレット値 |
サービスアカウントトークンを使用するには、生成されたトークン値をAuthorization: Bearer
ヘッダーを持つリクエストに含めます:
シェル
curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" http://localhost:9200/_cluster/health
ノードにxpack.security.http.ssl.enabled
がtrue
に設定されている場合、リクエストURLにhttps
を指定する必要があります。
以下のリクエストは、自動生成されたトークン名を持つサービストークンを作成します:
Python
resp = client.security.create_service_token(
namespace="elastic",
service="fleet-server",
)
print(resp)
Js
const response = await client.security.createServiceToken({
namespace: "elastic",
service: "fleet-server",
});
console.log(response);
コンソール
POST /_security/service/elastic/fleet-server/credential/token
レスポンスにはサービスアカウントトークン、自動生成された名前、およびシークレット値が含まれます:
コンソール-結果
{
"created": true,
"token": {
"name": "Jk5J1HgBuyBK5TpDrdo4",
"value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ"
}
}