본문 바로가기
WIKI 기술 지식 베이스

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."
}

더 알아보기 (Learn more)