All Products
Search
Document Center

Elasticsearch:Atur izin pengguna dengan role X-Pack

Last Updated:Sep 15, 2026

Elasticsearch X-Pack menyediakan kontrol akses berbasis peran (RBAC) yang memungkinkan Anda memberikan hak istimewa tertentu kepada role dan menetapkan role tersebut kepada pengguna. Alibaba Cloud Elasticsearch mencakup beberapa role bawaan, dan Anda dapat membuat role kustom untuk kontrol yang lebih granular terhadap kluster, indeks, dan bidang.

Latar Belakang

Prosedur

Catatan

Petunjuk ini berlaku untuk Elasticsearch V6.7 dan V7.x. Langkah untuk versi lain mungkin berbeda. Rujuk konsol untuk langkah paling akurat.

  1. Buat role.

    1. Login ke konsol Kibana.

      Untuk informasi selengkapnya, lihat Log on to the Kibana console.

    2. Navigasi ke halaman management.

      • V6.7: Di panel navigasi kiri, klik Management.

      • V7.x: Di pojok kiri atas halaman, klik ikon 展开图标 lalu pilih Management > Stack Management.

    3. Di bagian Security, klik Roles.

    4. Klik Create role dan konfigurasikan parameter.

      Parameter

      Deskripsi

      Role Name

      Nama role.

      Cluster privileges

      Menentukan hak istimewa untuk operasi kluster, seperti melihat kesehatan dan pengaturan kluster, atau membuat Snapshot. Untuk informasi selengkapnya, lihat Cluster privileges.

      Run As privileges

      Opsional. Pengguna yang mengasumsikan role ini. Jika tidak ditentukan di sini, Anda dapat menetapkan role saat membuat pengguna. Untuk informasi selengkapnya, lihat Create a user.

      Index privileges

      Menentukan hak istimewa untuk operasi indeks, seperti memberikan akses read ke semua bidang dari semua indeks dengan mengatur nama indeks menjadi *. Nama indeks mendukung wildcard (*) dan ekspresi reguler. Untuk informasi selengkapnya, lihat Indices privileges. Konfigurasikan parameter berikut:

      • Indices: Saat membuat role, daftar drop-down hanya menampilkan pola indeks yang ada dan tidak secara otomatis memuat semua indeks fisik dalam kluster. Untuk memberikan izin pada indeks yang tidak ditampilkan, masukkan secara manual nama indeks spesifik atau nama indeks yang mengandung wildcard (*) di kolom input, lalu tekan Enter untuk menambahkannya. Contoh: heartbeat-*.

        Catatan

        Jika Anda tidak memiliki pola indeks, buka halaman Management, klik Index Pattern di bawah Kibana, lalu ikuti petunjuk di layar untuk membuatnya.

      • Privileges: Hak istimewa yang akan diberikan kepada role.

      • Granted fields (opsional): Bidang tempat hak istimewa diberikan.

      Kibana privileges

      Menentukan hak istimewa untuk operasi Kibana.

      Penting

      Versi Kibana sebelum 7.0 hanya mendukung Base privileges, yang secara default memberikan akses ke semua space. Kibana 7.0 dan versi setelahnya mendukung Feature privileges selain Base privileges. Feature privileges memberikan akses ke fitur Kibana tertentu dan mengharuskan Anda menentukan space Kibana.

      Saat membuat role, Anda harus memberikan hak istimewa. Contoh berikut menunjukkan konfigurasi role umum:

    5. Klik Create role.

  2. Buat pengguna dan tetapkan role untuk memberikan izin.

    1. Navigasi ke halaman management.

      • V6.7: Di panel navigasi kiri, klik Management.

      • V7.x: Di pojok kiri atas halaman, klik ikon 展开图标 lalu pilih Management > Stack Management.

    2. Di bagian Security, klik Users.

    3. Klik Create new user dan konfigurasikan parameter.

      Parameter

      Deskripsi

      Username

      Username untuk login ke konsol Kibana.

      Password

      Password untuk pengguna login ke konsol Kibana.

      Confirm Password

      Harus sesuai dengan Password.

      Full name

      Nama lengkap pengguna.

      Email address

      Alamat email pengguna.

      Roles

      Tetapkan role kepada pengguna. Anda dapat memilih satu atau beberapa role kustom atau bawaan.

      Penting

      Meskipun Anda telah menentukan pengguna di bagian Run As privileges saat membuat role, Anda tetap harus menetapkan role tersebut kepada pengguna di sini. Jika tidak, pengguna tidak dapat login.

    4. Klik Create user.

  3. Login ke konsol Kibana sebagai pengguna baru dan lakukan operasi untuk memverifikasi izin.

Konfigurasi hak istimewa indeks read-only

Kasus Penggunaan

Berikan pengguna standar hak istimewa read-only untuk indeks tertentu. Pengguna dapat melakukan kueri data indeks di konsol Kibana tetapi tidak dapat mengakses API tingkat kluster.

Konfigurasi Role

Tabel 1. Deskripsi hak istimewa

Jenis hak istimewa

Kunci hak istimewa

Nilai hak istimewa

Deskripsi

Index privileges

indices

kibana_sample_data_logs

Nama indeks. Anda dapat menentukan nama lengkap, alias, wildcard, atau ekspresi reguler. Untuk informasi selengkapnya, lihat Indices Privileges.

privileges

read

Memberikan hak istimewa read-only pada indeks. Hak istimewa ini mencakup get, mget, search, dan count. Untuk informasi selengkapnya, lihat privileges-list-indices.

Granted fields (opsional)

*

Bidang indeks. * menunjukkan semua bidang.

Kibana privileges

privileges

read

Memberikan akses read-only Kibana ke semua space. Nilai default adalah none, yang menolak akses ke semua space Kibana.

Penting

Versi Kibana sebelum 7.0 hanya mendukung Base privileges, yang secara default memberikan akses ke semua space. Kibana 7.0 dan versi setelahnya mendukung Feature privileges selain Base privileges. Feature privileges memberikan akses ke fitur Kibana tertentu dan mengharuskan Anda menentukan space Kibana.

Verifikasi

  • Login ke konsol Kibana sebagai pengguna baru dan jalankan perintah baca. Perintah tersebut harus mengembalikan hasil normal.

    GET /kibana_sample_data_logs/_search
  • Jalankan perintah tulis. Anda akan menerima error otorisasi.

    POST /kibana_sample_data_logs/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
    {
      "error": {
        "root_cause": [
          {
            "type": "security_exception",
            "reason": "action [indices:data/write/index] is unauthorized for user [user-test]"
          }
        ],
        "type": "security_exception",
        "reason": "action [indices:data/write/index] is unauthorized for user [user-test]"
      },
      "status": 403
    }

Konfigurasi hak istimewa dasbor

Kasus Penggunaan

Berikan pengguna standar hak istimewa read-only untuk indeks tertentu dan izinkan pengguna melihat data dasbor dari indeks tersebut.

Konfigurasi Role

Saat Anda membuat pengguna, tetapkan role read-index dan kibana_dashboard_only_user kepada pengguna.

  • read-index: Contoh role kustom yang harus Anda buat. Role ini memiliki hak istimewa read-only untuk indeks tertentu.

  • kibana_dashboard_only_user: Role bawaan Kibana yang memiliki hak istimewa untuk melihat data dasbor dari indeks tertentu.

    Catatan
    • Pada Kibana 7.0 dan versi setelahnya, role kibana_dashboard_only_user telah ditinggalkan. Untuk melihat dasbor dari indeks tertentu, Anda hanya perlu mengonfigurasi hak istimewa read-only untuk indeks tersebut. Untuk informasi selengkapnya, lihat Configuring read-only privileges for an index.

    • Role kibana_dashboard_only_user dapat digunakan bersama role kustom dalam banyak skenario. Jika Anda hanya perlu menetapkan fitur Dashboards only roles ke role kustom, di area Kibana pada halaman Management, temukan bagian Dashboard, lalu bind role kustom (default adalah role kibana_dashboard_only_user).

Verifikasi

Login ke konsol Kibana sebagai pengguna baru. Anda dapat melihat dasbor dari indeks yang sesuai.

Dasbor bernama heartbeat-dashboard berisi grafik garis heartbeat-visu, dengan Count pada sumbu Y dan @timestamp per 30 seconds pada sumbu X, yang menunjukkan tren jumlah heartbeat dari waktu ke waktu.

Konfigurasi read/write indeks dan read-only kluster

Kasus Penggunaan

Berikan pengguna hak istimewa membaca, menulis, dan menghapus untuk indeks tertentu, serta hak istimewa read-only untuk kluster dan Kibana.

Konfigurasi Role

Tabel 2. Deskripsi hak istimewa

Jenis hak istimewa

Kunci hak istimewa

Nilai hak istimewa

Deskripsi

Cluster privileges

Cluster

monitor

Memberikan hak istimewa read-only pada kluster, seperti melihat kesehatan kluster, status, hot thread, informasi node, dan tugas yang diblokir.

Index privileges

indices

heartbeat-*,library*

Nama indeks. Anda dapat menentukan nama lengkap, alias, wildcard, atau ekspresi reguler. Untuk informasi selengkapnya, lihat roles-indices-priv.

privileges

read

Memberikan hak istimewa read-only pada indeks. Hak istimewa ini mencakup get, mget, search, dan count. Untuk informasi selengkapnya, lihat privileges-list-indices.

create_index

Hak istimewa untuk membuat indeks. Jika Anda menentukan alias indeks saat membuat indeks, Anda juga perlu memberikan hak istimewa manage.

Penting

Alias indeks juga harus memenuhi aturan pencocokan yang ditentukan di bawah indices.

view_index_metadata

Memberikan akses read-only ke metadata indeks, seperti pemetaan dan pengaturan.

write

Hak istimewa untuk melakukan semua operasi tulis pada dokumen, termasuk index, update, delete, bulk, dan memperbarui pemetaan. Hak istimewa ini mencakup operasi yang lebih luas daripada create dan index.

monitor

Hak istimewa untuk memantau semua operasi, termasuk index recovery, segments info, index stats, dan status.

delete

Hak istimewa untuk menghapus dokumen indeks.

delete_index

Hak istimewa untuk menghapus indeks.

granted fields

*

Bidang indeks yang diberi otorisasi. * merepresentasikan semua bidang indeks.

Kibana privileges

privileges

read

Memberikan akses read-only Kibana ke semua space. Nilai default adalah none, yang menolak akses ke semua space Kibana.

Penting

Versi Kibana sebelum 7.0 hanya mendukung Base privileges, yang secara default memberikan akses ke semua space. Kibana 7.0 dan versi setelahnya mendukung Feature privileges selain Base privileges. Feature privileges memberikan akses ke fitur Kibana tertentu dan mengharuskan Anda menentukan space Kibana.

Verifikasi

Login ke konsol Kibana sebagai pengguna standar. Semua perintah berikut berhasil.

GET _cat/indices?v
GET _cluster/stats

GET /product_info/_search
GET /product_info1/_search

POST /kibana_sample_data_logs/_doc/2
{
"productName":"testpro",
"annual_rate":"3.22%",
"describe":"testpro"
}
PUT /product_info2/_doc/1
{
"productName":"testpro",
"annual_rate":"3.22%",
"describe":"testpro"
}

DELETE product_info

--- Output ---
health status index                           uuid  pri rep docs.count docs.deleted store.size pri.store.size
green  open   .monitoring-es-6-2020.12.14     xxx   1   1
green  open   .kibana_1                       xxx   1   1
green  open   kibana_sample_data_logs         xxx   5   1   2          0            18.1kb     9kb
green  open   .monitoring-kibana-6-2020.12.12 xxx   1   1
green  open   .monitoring-es-6-2020.12.11     xxx   1   1
green  open   .monitoring-es-6-2020.12.10     xxx   1   1
green  open   .monitoring-kibana-6-2020.12.14 xxx   1   1
green  open   .monitoring-es-6-2020.12.09     xxx   1   1
green  open   .kibana_task_manager            xxx   1   1
green  open   .monitoring-kibana-6-2020.12.13 xxx   1   1
green  open   .monitoring-kibana-6-2020.12.09 xxx   1   1
green  open   product_info1                   xxx   5   1   0          0            2.5kb      1.2kb
green  open   .monitoring-kibana-6-2020.12.11 xxx   1   1
green  open   .monitoring-es-6-2020.12.12     xxx   1   1
green  open   product_info2                   xxx   5   1   1          0            9.3kb      4.6kb
green  open   .monitoring-kibana-6-2020.12.10 xxx   1   1
green  open   .monitoring-es-6-2020.12.13     xxx   1   1
green  open   .security-6                     xxx   1   1
  • Lihat informasi detail tentang indeks dalam kluster.

    GET /_cat/indices?v
  • Lihat status kluster.

    GET /_cluster/stats
  • Lakukan kueri data dalam indeks library_v1.

    GET /library_v1/_search
  • Lakukan kueri data dalam indeks library_v2.

    GET /library_v2/_search
  • Tulis data ke indeks heartbeat-2023.01.01 menggunakan metode POST.

    POST /heartbeat-2023.01.01/_doc/2
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Tulis data ke indeks library_v3 menggunakan metode PUT.

    PUT /library_v3/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Hapus indeks library_v1.

    DELETE library_v1

Konfigurasi hak istimewa Discover read-only

Kasus Penggunaan

Berikan pengguna standar hak istimewa read-only untuk Kibana Discover dan suatu indeks. Pengguna ini dapat membuka halaman Discover di konsol Kibana untuk melihat data indeks tersebut.

Konfigurasi Role

Tabel 3. Deskripsi hak istimewa

Jenis hak istimewa

Kunci hak istimewa

Nilai hak istimewa

Deskripsi

Cluster privileges

Privileges

monitor

Memberikan hak istimewa read-only pada semua kluster, seperti melihat kesehatan dan status kluster, hot thread, informasi node, statistik node dan kluster, serta tugas kluster yang tertunda.

Index privileges

Indices

kibana_sample_data_ecommerce

Nama indeks. Anda dapat menentukan nama lengkap, alias, wildcard, atau ekspresi reguler. Untuk informasi selengkapnya, lihat Indices Privileges.

Privileges

read

Memberikan hak istimewa read-only pada indeks. Hak istimewa ini mencakup get, mget, search, dan count. Untuk informasi selengkapnya, lihat privileges-list-indices.

Granted fields (opsional)

*

Bidang indeks. * merepresentasikan semua bidang.

Kibana privileges

Privileges

read

Memberikan hak istimewa read-only untuk semua space Kibana. Nilai default adalah none, yang menolak akses ke semua space Kibana.

Penting

Versi Kibana sebelum 7.0 hanya mendukung Base privileges, yang secara default memberikan akses ke semua space. Kibana 7.0 dan versi setelahnya mendukung Feature privileges selain Base privileges. Feature privileges memberikan akses ke fitur Kibana tertentu, seperti halaman Discover, dan mengharuskan Anda menentukan space Kibana.

Verifikasi

Login ke konsol Kibana sebagai pengguna baru. Anda dapat melihat data indeks yang ditentukan di halaman Discover.

Indeks yang sedang dilihat adalah kibana_sample_data_ecommerce, dan halaman berhasil menampilkan detail dokumen pesanan e-commerce dalam indeks tersebut.

Atur indeks dan dokumen tanpa akses Kibana

Kasus Penggunaan

Berikan pengguna hak istimewa untuk mengelola indeks dan dokumen melalui API, tanpa akses ke konsol Kibana.

Konfigurasi Role

Tabel 4. Deskripsi hak istimewa

Jenis hak istimewa

Kunci hak istimewa

Nilai hak istimewa

Deskripsi

Index privileges

Indices

test*

Nama indeks. Anda dapat menentukan nama lengkap, alias, wildcard, atau ekspresi reguler. Untuk informasi selengkapnya, lihat Indices Privileges.

Privileges

create_index

Hak istimewa untuk membuat indeks. Jika permintaan pembuatan indeks berisi alias yang akan ditambahkan ke indeks, Anda juga perlu memberikan hak istimewa manage.

delete_index

Hak istimewa untuk menghapus indeks.

index

Hak istimewa untuk mengindeks dan memperbarui dokumen, serta memperbarui pemetaan indeks.

delete

Hak istimewa untuk menghapus dokumen.

read

Memberikan hak istimewa read-only pada indeks. Hak istimewa ini mencakup get, mget, search, dan count. Untuk informasi selengkapnya, lihat privileges-list-indices.

manage

Memberikan hak istimewa untuk operasi manajemen indeks, seperti mengelola alias, pengaturan, pemetaan, dan templat.

Granted fields (opsional)

*

Bidang indeks. * merepresentasikan semua bidang.

Kibana privileges

Privileges

none

Diatur ke none (default), yang menolak akses ke semua space Kibana.

Penting

Versi Kibana sebelum 7.0 hanya mendukung Base privileges, yang secara default memberikan akses ke semua space. Kibana 7.0 dan versi setelahnya mendukung Feature privileges selain Base privileges. Feature privileges memberikan akses ke fitur Kibana tertentu dan mengharuskan Anda menentukan space Kibana.

Verifikasi

  • Gunakan cURL untuk membuat lalu menghapus indeks.

    [root@iZbp17az4re1xxx ~]#
    [root@iZbp17az4re1xxx ~]# curl -u 'test:xxx' -XPUT "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role"
    {"acknowledged":true,"shards_acknowledged":true,"index":"test_role"}[root@iZbp17az4re1kuerxxx ~]#
    [root@iZbp17az4re1xxx ~]#
    [root@iZbp17az4re1xxx ~]# curl -u 'test:xxx' -XDELETE "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role"
    {"acknowledged":true} root@iZbp17az4re1kuerxxx ~]#
  • Modifikasi konfigurasi indeks. Contoh ini mengatur data indeks menjadi data dingin.

    [root@iZbp17az4re1kuere  ~]#
    [root@iZbp17az4re1kuere  ~]# curl -u 'test:xxx'  -XPUT "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_settings" -H 'content-Type:application/json' -d '{"index":{"routing":{"allocation":{"require.box_type": "warm"}}}}'
    {"acknowledged":true}[root@iZbp17az4re1kuere-xxx  ~]#
  • Lakukan operasi CRUD pada dokumen.

    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/1" -H 'content-Type:application/json' -d '{"test":"you know, for search"}'
    {"_index":"test_role","_type":"_doc","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":0,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2" -H 'content-Type:application/json' -d '{"test":"you know, for search"}'
    {"_index":"test_role","_type":"_doc","_id":"2","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":1,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2" -H 'content-Type:application/json' -d '{"test":"you know, for search, 2.0"}'
    {"_index":"test_role","_type":"_doc","_id":"2","_version":2,"result":"updated","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":2,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XGET "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_search?q=test:'search'"
    {"took":64,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":2,"max_score":0.19100356,"hits":[{"_index":"test_role","_type":"_doc","_id":"1","_score":0.19100356,"_source":{"test":"you know,for search"}},{"_index":"test_role","_type":"_doc","_id":"2","_score":0.17439455,"_source":{"test":"you know,for search, 2.0"}}]}}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XDELETE "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2"
    {"_index":"test_role","_type":"_doc","_id":"2","_version":3,"result":"deleted","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":3,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
  • Login ke konsol Kibana sebagai pengguna.

    Pesan ditampilkan yang menunjukkan bahwa pengguna tidak memiliki hak istimewa yang diperlukan.

FAQ

Apakah saya dapat menggunakan ID AccessKey dan Rahasia AccessKey pengguna Resource Access Management (RAM) untuk langsung mengakses data dalam kluster Elasticsearch?

Tidak. ID AccessKey dan Rahasia AccessKey pengguna Resource Access Management (RAM) hanya dapat digunakan untuk memanggil API manajemen Alibaba Cloud, seperti API untuk membuat atau me-restart instans dan memodifikasi konfigurasi. API tersebut tidak dapat digunakan untuk langsung mengakses atau memanipulasi data dalam kluster Elasticsearch. Untuk membaca atau menulis data kluster atau melakukan operasi indeks, gunakan username dan password yang dibuat dalam sistem otentikasi keamanan Elasticsearch X-Pack.

Mengapa superuser elastic menerima error 403 insufficient privileges saat menghapus indeks .kibana_security_session_1?

Indeks .kibana_security_session_1 adalah indeks sistem terlindungi yang digunakan Kibana untuk menyimpan informasi sesi pengguna. Bahkan pengguna elastic dengan role superuser tidak dapat langsung menghapus indeks ini menggunakan API. Ini merupakan pembatasan keamanan dari Elasticsearch dan Kibana, bukan kesalahan konfigurasi izin. Jika terjadi masalah pada indeks ini yang menyebabkan gangguan login atau sesi, bersihkan cache browser dan login kembali ke konsol Kibana.