API キーを作成する
POST /v1/api-keys · 権限 api-keys:write · Idempotency-Key が必須
環境の管理 API キーを作成します。secret キーは管理 API 全体を利用でき、restricted キーは一覧された権限(<resource>:<action>)のみを持ちます。
- 生のキー。 レスポンスには
keyが一度だけ含まれます(idp_sk_live_…、idp_sk_test_…、idp_rk_live_…またはidp_rk_test_…)。再度取得することはできないため、すぐに保存してください。レスポンスにはCache-Control: no-storeが付きます。 - 権限の昇格は不可。 キーは、自身の権限を超える権限を持つキーを作成できません。
restrictedキーはsecretキーを作成できません。新しいキーの有効期限は、呼び出し元のキーより後にはできません。allowed_cidrsを持つ呼び出し元のキーは、自身の範囲内のネットワークに制限されたキーしか作成できません。allowed_cidrsを省略した場合は、呼び出し元のキーの一覧が与えられます(permission_escalation)。 - 制限。 環境ごとに有効なキーは最大 50 個、キーごとに CIDR ブロックは最大 20 個、有効期限は最大 730 日先までです。
allowed_cidrsを持つキーは、それらのネットワークからのみ受け付けられます。 - 冪等な再送。 同じ
Idempotency-Keyでリクエストを繰り返すと、保存されたレスポンスがキーなしで再生されます。本文にはsecret_redacted: trueが含まれ、keyはありません。キーを紛失した場合は、新しいキーを作成してください。
リクエスト
本文:
| フィールド | 型 | 説明 |
|---|---|---|
name |
string | 必須。1〜100 文字。 |
type |
string | 必須。secret または restricted。 |
permissions |
string[] | restricted では必須で空不可(最大 200 件)。secret では省略または空。呼び出し元自身の権限を超えることはできません。 |
expires_at |
string (date-time) | 必須。未来の日時で、最大 730 日先まで。 |
allowed_cidrs |
string[] | 任意。最大 20 個の CIDR ブロック。 |
レスポンス
201 Created(Cache-Control: no-store 付き)。一覧レスポンスと同じキーオブジェクトに、key を加えたものです。
{
"id": "key_0000000000000000000000001z",
"name": "ci",
"type": "restricted",
"permissions": ["users:read"],
"allowed_cidrs": [],
"last4": "xxxx",
"created_by": "key_…",
"created_at": "2026-10-01T10:00:00Z",
"expires_at": "2027-10-01T10:00:00Z",
"last_used_at": null,
"last_used_ip": null,
"rotated_from": null,
"revoked_at": null,
"revoke_reason": null,
"key": "<shown once>"
}
エラー
| HTTP | code |
発生条件 |
|---|---|---|
| 401 | unauthenticated |
キーがない、無効、または取り消されています。 |
| 403 | insufficient_permissions |
キーに必要な権限がありません。 |
| 403 | permission_escalation |
リクエストが、呼び出し元のキーより多い権限、広いネットワーク範囲、または遅い有効期限を与えようとしている場合。restricted キーが自身の権限を超えて作成、ローテーション、取り消しを行おうとする場合。または、別のキーがダッシュボードで作成されたキーをローテーションまたは取り消そうとする場合。 |
| 409 | api_key_limit_reached |
環境ではすでに有効なキーが上限の 50 個に達しています。 |
| 422 | validation_failed |
本文が無効です。name がない、または長すぎる、未知の type、restricted で permissions がない、secret で permissions がある、権限または CIDR の形式が不正、expires_at が過去、または 730 日を超えて先である、のいずれかです。 |
例
curl -X POST https://api.eu.keenauth.com/v1/api-keys \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"ci","type":"restricted","permissions":["users:read"],"expires_at":"2027-10-01T10:00:00Z"}'