Create or update roles
- POST also PUT /_security/role/{name}
The role management APIs are generally the preferred way to manage roles in the native realm, rather than using file-based role management. The create or update roles API cannot update roles that are defined in roles files. File-based role management is not available in Elastic Serverless.
- Cluster privileges:
manage_security
Path Parameters
-
namestring Namerequired -
The name of the role.
Query Parameters
-
refreshRefresh If
true(the default) then refresh the affected shards to make this operation visible to search, ifwait_forthen wait for a refresh to make this operation visible to search, iffalsethen do nothing with refreshes.-
Values:
truefalsewait_for
Request
-
applicationsApplicationPrivileges -
A list of application privilege entries.
-
applicationstringrequired -
The name of the application to which this entry applies.
-
privilegesstringrequired -
A list of strings, where each element is the name of an application privilege or action.
-
resourcesstringrequired -
A list resources to which the privileges are applied.
-
clusterClusterPrivilege -
A list of cluster privileges. These privileges define the cluster-level actions for users with this role.
-
Values:
allcancel_taskcreate_snapshotcross_cluster_replicationcross_cluster_searchdelegate_pkigrant_api_keymanagemanage_api_keymanage_autoscalingmanage_behavioral_analyticsmanage_ccrmanage_data_frame_transformsmanage_data_stream_global_retentionmanage_enrichmanage_ilmmanage_index_templatesmanage_inferencemanage_ingest_pipelinesmanage_logstash_pipelinesmanage_mlmanage_oidcmanage_own_api_keymanage_pipelinemanage_rollupmanage_samlmanage_search_applicationmanage_search_query_rulesmanage_search_synonymsmanage_securitymanage_service_accountmanage_slmmanage_tokenmanage_transformmanage_user_profilemanage_watchermonitormonitor_data_frame_transformsmonitor_data_stream_global_retentionmonitor_enrichmonitor_inferencemonitor_mlmonitor_rollupmonitor_snapshotmonitor_statsmonitor_text_structuremonitor_transformmonitor_watchernonepost_behavioral_analytics_eventread_ccrread_fleet_secretsread_ilmread_pipelineread_securityread_slmtransport_clientwrite_connector_secretswrite_fleet_secrets -
globalmap string to object -
An object defining global privileges. A global privilege is a form of cluster privilege that is request-aware. Support for global privileges is currently limited to the management of application privileges.
-
indicesIndicesPrivileges -
A list of indices permissions entries.
-
field_securityFieldSecurity -
The document fields that the owners of the role have read access to.
- Reference
-
namesstring IndexNamerequired -
A list of indices (or index name patterns) to which the permissions in this entry apply.
-
privilegesIndexPrivilegerequired -
The index level privileges that owners of the role have on the specified indices.
-
Values:
allauto_configurecreatecreate_doccreate_indexcross_cluster_replicationcross_cluster_replication_internaldeletedelete_indexindexmaintenancemanagemanage_data_stream_lifecyclemanage_follow_indexmanage_ilmmanage_leader_indexmonitornonereadread_cross_clusterview_index_metadatawrite -
queryIndicesPrivilegesQuery -
A search query that defines the documents the owners of the role have access to. A document within the specified indices must match this query for it to be accessible by the owners of the role.
-
allow_restricted_indicesboolean · default: false -
Set to
trueif using wildcard or regular expressions for patterns that cover restricted indices. Implicitly, restricted indices have limited privileges that can cause pattern tests to fail. If restricted indices are explicitly included in thenameslist, Elasticsearch checks privileges against these indices regardless of the value set forallow_restricted_indices. -
remote_indicesRemoteIndicesPrivileges -
A list of remote indices permissions entries.
NOTE: Remote indices are effective for remote clusters configured with the API key based model. They have no effect for remote clusters configured with the certificate based model.
-
clustersstring Namesrequired -
A list of cluster aliases to which the permissions in this entry apply.
-
field_securityFieldSecurity -
The document fields that the owners of the role have read access to.
- Reference
-
namesstring IndexNamerequired -
A list of indices (or index name patterns) to which the permissions in this entry apply.
-
privilegesIndexPrivilegerequired -
The index level privileges that owners of the role have on the specified indices.
-
Values:
allauto_configurecreatecreate_doccreate_indexcross_cluster_replicationcross_cluster_replication_internaldeletedelete_indexindexmaintenancemanagemanage_data_stream_lifecyclemanage_follow_indexmanage_ilmmanage_leader_indexmonitornonereadread_cross_clusterview_index_metadatawrite -
queryIndicesPrivilegesQuery -
A search query that defines the documents the owners of the role have access to. A document within the specified indices must match this query for it to be accessible by the owners of the role.
-
allow_restricted_indicesboolean · default: false -
Set to
trueif using wildcard or regular expressions for patterns that cover restricted indices. Implicitly, restricted indices have limited privileges that can cause pattern tests to fail. If restricted indices are explicitly included in thenameslist, Elasticsearch checks privileges against these indices regardless of the value set forallow_restricted_indices. -
remote_clusterRemoteClusterPrivileges -
A list of remote cluster permissions entries.
-
clustersstring Namesrequired -
A list of cluster aliases to which the permissions in this entry apply.
-
privilegesRemoteClusterPrivilegerequired -
The cluster level privileges that owners of the role have on the remote cluster.
-
Values:
monitor_enrichmonitor_stats -
metadataMetadata -
Optional metadata. Within the metadata object, keys that begin with an underscore (
_) are reserved for system use. -
run_asstring -
A list of users that the owners of this role can impersonate. Note: in Serverless, the run-as feature is disabled. For API compatibility, you can still specify an empty
run_asfield, but a non-empty list will be rejected. - Reference
-
descriptionstring -
Optional description of the role descriptor
-
transient_metadatamap string to object -
Indicates roles that might be incompatible with the current cluster license, specifically roles with document and field level security. When the cluster license doesn’t allow certain features for a given role, this parameter is updated dynamically to list the incompatible features. If
enabledisfalse, the role is ignored, but is still listed in the response from the authenticate API.