Grant users access to Heartbeat indices

edit

To enable users to access the indices Heartbeat creates, grant them read and view_index_metadata privileges on the Heartbeat indices. If they’re using Kibana, they also need the kibana_user role.

  1. Create a reader role that has the read and view_index_metadata privileges on the Heartbeat indices.

    You can create roles from the Management > Roles UI in Kibana or through the role API. For example, the following request creates a role named heartbeat_reader:

    POST _xpack/security/role/heartbeat_reader
    {
      "indices": [
        {
          "names": [ "heartbeat-*" ], 
          "privileges": ["read","view_index_metadata"]
        }
      ]
    }

    If you use a custom Heartbeat index pattern, specify that pattern instead of the default heartbeat-* pattern.

  2. Assign your users the reader role so they can access the Heartbeat indices. For Kibana users who need to visualize the data, also assign the kibana_user role:

    1. If you’re using the native realm, you can assign roles with the Management > Users UI in Kibana or through the user API. For example, the following request grants heartbeat_user the heartbeat_reader and kibana_user roles:

      POST /_xpack/security/user/heartbeat_user
      {
        "password" : "YOUR_PASSWORD",
        "roles" : [ "heartbeat_reader","kibana_user"],
        "full_name" : "Heartbeat User"
      }
    2. If you’re using the LDAP, Active Directory, or PKI realms, you assign the roles in the role_mapping.yml configuration file. For example, the following snippet grants Heartbeat User the heartbeat_reader and kibana_user roles:

      heartbeat_reader:
        - "cn=Heartbeat User,dc=example,dc=com"
      kibana_user:
        - "cn=Heartbeat User,dc=example,dc=com"

      For more information, see Using Role Mapping Files.