Patch Roles API
출처: 문서
본문
Patch Roles API
1.0에서 도입 {: .label .label-purple }
역할을 교체하지 않고 업데이트해요. 역할 이름을 지정하면 한 역할의 개별 속성을 업데이트할 수 있고, 역할 이름을 생략하면 한 번의 호출로 여러 역할을 생성, 업데이트 또는 삭제할 수 있어요.
엔드포인트
PATCH /_plugins/_security/api/roles
PATCH /_plugins/_security/api/roles/{role}
경로 파라미터
다음 표는 사용할 수 있는 경로 파라미터를 보여줘요.
| 파라미터 | 데이터 타입 | 필수 | 설명 |
|---|---|---|---|
role |
String | No | 업데이트할 역할의 이름이에요. 생략하면 요청이 여러 역할을 수정할 수 있어요. |
요청 본문 필드
요청 본문은 필수예요. JSON 객체의 배열이고, 각 객체는 다음 필드를 담고 있어요.
| 필드 | 데이터 타입 | 설명 | 필수 |
|---|---|---|---|
op |
String | 수행할 작업이에요. 유효한 값은 add, remove, replace, move, copy, test예요. |
Yes |
path |
String | 수정할 경로예요. 역할 이름을 지정하면 경로는 그 역할을 기준으로 한 상대 경로가 돼요. 예를 들어 /index_permissions/0/fls 같은 식이에요. 역할 이름을 생략하면 경로는 역할 이름으로 시작해요. 예를 들어 /reporting-role/cluster_permissions 같은 식이에요. |
Yes |
value |
Object | 새 값이에요. add, replace, test 작업에는 필수예요. |
No |
권한 배열의 끝에 새 권한을 추가하려면 배열 인덱스로 -를 사용해요.
{: .note}
요청 예제
다음 요청은 test-role 역할의 필드 수준 보안 설정을 교체하고, 문서 수준 보안 설정은 제거해요:
PATCH _plugins/_security/api/roles/test-role
[
{
"op": "replace", "path": "/index_permissions/0/fls", "value": ["myfield1", "myfield2"]
},
{
"op": "remove", "path": "/index_permissions/0/dls"
}
]
{% include copy-curl.html security=true %}
다음 요청은 reporting-role 역할을 추가하고 test-role-2 역할을 제거해요:
PATCH _plugins/_security/api/roles
[
{
"op": "add",
"path": "/reporting-role",
"value": {
"cluster_permissions": [
"cluster_composite_ops"
]
}
},
{
"op": "remove",
"path": "/test-role-2"
}
]
{% include copy-curl.html security=true %}
응답 예제
역할 하나를 업데이트하는 요청은 응답에 해당 역할의 이름을 보여줘요:
{
"status": "OK",
"message": "'test-role' updated."
}
벌크 요청은 변경한 역할의 이름을 보여주지 않아요:
{
"status": "OK",
"message": "Resource updated."
}