Create or Update Role Mapping API
출처: 문서
본문
역할 매핑 생성 또는 업데이트 API
1.0부터 도입 {: .label .label-purple }
지정된 역할 매핑을 생성하거나 교체해요.
엔드포인트
PUT /_plugins/_security/api/rolesmapping/{role}
요청 본문 필드
요청 본문은 필수예요. 다음 필드를 가진 JSON 객체예요.
| 필드 | 데이터 타입 | 설명 | 필수 여부 |
|---|---|---|---|
users |
Array of strings | 역할에 매핑되는 사용자 이름이에요. 와일드카드 패턴을 지원해요. | 아니요 |
backend_roles |
Array of strings | 역할에 매핑되는 백엔드 역할이에요. 이 백엔드 역할 중 하나라도 가진 사용자는 해당 역할을 부여받아요. | 아니요 |
and_backend_roles |
Array of strings | 역할에 매핑되는 백엔드 역할이에요. 사용자가 해당 역할을 부여받으려면 이 백엔드 역할을 모두 가지고 있어야 해요. | 아니요 |
hosts |
Array of strings | 역할에 매핑되는 호스트 이름 또는 IP 주소예요. 와일드카드 패턴을 지원해요. | 아니요 |
description |
String | 역할 매핑에 대한 설명이에요. | 아니요 |
hidden |
Boolean | 역할 매핑이 API와 OpenSearch Dashboards에서 숨겨지는지 여부예요. 기본값은 false예요. |
아니요 |
reserved |
Boolean | 역할 매핑이 읽기 전용이라 수정할 수 없는지 여부예요. 기본값은 false예요. |
아니요 |
호스트 기반 역할 매핑
hosts 파라미터는 특정 IP 주소나 호스트 이름에서 시작되는 요청을 해당 역할에 매핑해요. CIDR 블록은 지원하지 않지만, 192.168.*.*나 *.example.com 같은 와일드카드 패턴(glob)은 사용할 수 있어요. 클라이언트의 출발지 주소를 기준으로 역할을 할당하고 싶을 때 유용해요:
-
IP 주소로 매칭하려면(예:
"192.168.1.10") 추가 설정이 필요 없어요. -
호스트 이름으로 매칭하려면(예:
"myserver.example.com") 클러스터 수준 설정 파라미터를 지정해야 해요:opensearch_security.host_resolver_mode: ip-hostname이렇게 하면 역방향 DNS 조회로 호스트 이름을 확인할 수 있어요. 자세한 내용은 OpenSearch 구성을 참고하세요.
hosts에 "*"를 사용하면 모든 클라이언트 IP와 호스트 이름이 매칭돼요. 즉, 사용자와 상관없이 모든 요청에 이 역할이 적용돼요. users: ["someuser"]와 함께 사용하면 의도한 것보다 넓은 접근 권한이 부여될 수 있어요. 모든 클라이언트 IP에 역할을 의도적으로 부여하려는 게 아니라면 hosts: ["*"] 설정은 피하세요.
{: .warning}
요청 예제
PUT _plugins/_security/api/rolesmapping/test-role
{
"backend_roles": [
"starfleet",
"captains"
],
"hosts": [
"*.starfleetintranet.com"
],
"users": [
"test-user"
]
}
{% include copy-curl.html security=true %}
응답 예제
{
"status": "CREATED",
"message": "'test-role' created."
}