Create API Key API
출처: 문서
본문
API 키 생성 API
3.7부터 도입됨 {: .label .label-purple }
지정된 권한과 유효 기간으로 새 API 키를 생성해요.
엔드포인트
POST /_plugins/_security/api/apitokens
요청 본문 필드
요청 본문은 필수예요. 다음 필드를 가진 JSON 객체예요.
| 필드 | 데이터 타입 | 설명 | 필수 |
|---|---|---|---|
name |
String | 키의 고유한 이름이에요. [a-zA-Z0-9_-]+ 패턴과 일치해야 해요. |
예 |
cluster_permissions |
Array of strings | 키에 부여되는 클러스터 수준 권한 또는 액션 그룹이에요. 기본값은 빈 배열이에요. | 아니요 |
index_permissions |
Array of objects | 키에 부여되는 인덱스 수준 권한이에요. 기본값은 빈 배열이에요. | 아니요 |
duration_seconds |
Long | 키가 유효한 시간(초 단위)이에요. 최댓값은 max_duration_seconds로 설정되며, 기본값은 7,776,000(90일)이에요. 생략하면 키는 max_duration_seconds 동안 유효해요. |
아니요 |
index_permissions 객체에는 다음 필드가 있어요.
| 필드 | 데이터 타입 | 설명 | 필수 |
|---|---|---|---|
index_pattern |
Array of strings | 권한이 적용되는 인덱스예요. logs-* 같은 와일드카드 패턴을 지원해요. |
예 |
allowed_actions |
Array of strings | 일치하는 인덱스에서 허용되는 액션 또는 액션 그룹이에요. | 예 |
요청 예제
POST _plugins/_security/api/apitokens
{
"name": "test-token",
"duration_seconds": 86400,
"cluster_permissions": [
"cluster_monitor"
],
"index_permissions": [
{
"index_pattern": [
"logs*"
],
"allowed_actions": [
"read"
]
}
]
}
{% include copy-curl.html security=true %}
응답 예제
{
"id": "_ofOi6ABkhwU_cGa4M3v",
"token": "os_7EoHbn6PVeBwnqFGFDT0g-NBSI46Nq5PutcHHsmCFHg"
}
token 값은 한 번만 반환되며 다시 가져올 수 없어요. 안전하게 보관하세요.
{: .warning}
응답 본문 필드
응답 본문은 다음 필드를 가진 JSON 객체예요.
| 필드 | 데이터 타입 | 설명 |
|---|---|---|
id |
String | 키의 고유 식별자예요(폐기 시 사용돼요). |
token |
String | Authorization: ApiKey <token> 헤더에 사용할 일반 텍스트 토큰이에요. |