Bu doküman, Elasticsearch'te superuser yetkisinin doğrudan kullanılmasından kaçınmak isteyen kullanıcılar ve sistemler için, Apinizer entegrasyonu özelinde gerekli minimum ve önerilen rol gereksinimlerini detaylandırmak amacıyla hazırlanmıştır.

Elasticsearch'de rol bazlı kullanıcı oluşturabilmek için kimlik doğrulama konfigürasyonunun yapılması gerekmektedir. Detaylı bilgi için tıklayınız.

Apinizer'da Yapılan Temel İşlemler

İşlevElasticsearch RolüAçıklama
Document indexing (API log yazma)writeLog verilerini Elasticsearch'e yazma
Document indexing (Audit log yazma)writeAudit loglarını indexe yazma
Document indexing (Token log yazma)writeToken loglarını indexe yazma
Document indexing (Application log yazma)writeUygulama loglarını indexe yazma
Search operationsreadLog verilerini sorgulama ve arama
Get document operationsreadBelirli document'leri okuma
Bulk operationswriteToplu veri yazma işlemleri

Apinizer'da Yapılabilen Yönetim İşlemleri

İşlevElasticsearch RolüAçıklama
Index Lifecycle Policy (ILM) oluşturma/yönetmemanage_ilmILM policy'lerini oluşturma ve yönetme
Index Lifecycle Policy silmemanage_ilmILM policy'lerini silme
Index Template Oluşturma/Yönetmemanage_index_templatesIndex template'lerini oluşturma ve yönetme
Yeni indeks oluşturma (ILM/Rollover ile)create_index veya daha kapamlısı manage (indeks seviyesi)Yeni indekslerin otomatik veya manuel olarak oluşturulması

Apinizer'da Yapılabilen Monitoring İşlemleri

İşlevElasticsearch RolüAçıklama
Cluster health kontrolümonitorCluster sağlık durumunu kontrol etme
Cluster istatisklerini almamonitorCluster istatistiklerini okuma
Node istatistiklerini almamonitorNode istatistiklerini okuma
Thread pool istatistiklerini almamonitorThread pool istatistiklerini okuma
Index istatistiklerini almamonitorIndex istatistiklerini okuma
CPU ve disk kullanım oranlarımonitorSistem kaynak kullanımını izleme

Önerilen Rol Kombinasyonları

Minimum Gereksinimler(Sadece log yazma/okuma)

  • write (kendi indekslerine)
  • read (kendi indekslerine)

Apinizer Ekranlarının Stabil Kullanımı İçin Tavsiye Edilen Minimum Gereksinimler (API proxy, ILM, Index Template, Monitoring vb. Özellikleri Kullanabilmek İçin)

  • write (kendi indekslerine)
  • read (kendi indekslerine)
  • create (kendi indekslerine)
  • index (kendi indekslerine)
  • delete (kendi indekslerine)
  • monitor (kendi indekslerine)
  • manage (kendi indekslerine)
  • monitor (cluster düzeyinde)
  • manage_ilm (cluster düzeyinde)
  • monitor (cluster düzeyinde)

Örnek Rol Yapılandırmaları

Minimum Yetki Rolü (Kendi İndeksine Log Yazma/Okuma vb)

Apinizer Elasticsearch Entegrasyonunda Dikkat Edilecekler

Aşağıdaki minimum rolün kullanımında Apinizer arayüzü üzerinde Apinizer-Elasticsearch entegrasyonu tamamlanamaz. Bu entegrasyonun tamamlanabilmesi için yetkili bir Elasticsearch kullanıcısı ile Index template'lerin ve ILM policy'lerin manuel olarak oluşturulması gerekmektedir. Detaylı bilgi için tıklayınız.


Ayrıca minimum yetki kullamında normalde arayüz ile yapılabilen bir takım konfigürasyonlar kısıtlı yetkilerden dolayı yapılamayacaktır. (index rollover v.b) 


curl --request PUT \
  --url '<ELASTICSEARCH_ACCESS_URL>/_security/role/apinizer_basic?pretty=' \
  --header 'Authorization: Basic <BASE64_ENCODED_AUTH>' \
  --header 'Content-Type: application/json' \
  --data '{
  "cluster": [
    "monitor"
  ],
  "indices": [
    {
      "names": ["apinizer-log-apiproxy-<INDEX_KEY>*"],
      "privileges": ["read", "write", "create", "index", "delete","monitor"]
    }
  ]
}'
BASH

Tavsiye Edilen Minimum Rol Gereksinimleri (ILM, Rollover, Index Template Yönetimi ile)

curl --request PUT \
  --url '<ELASTICSEARCH_ACCESS_URL>/_security/role/apinizer_minimum_roles?pretty=' \
  --header 'Authorization: Basic <BASE64_ENCODED_AUTH>' \
  --header 'Content-Type: application/json' \
  --data '{
  "cluster": [
    "monitor",
		"manage_ilm",
		"manage_index_templates"
  ],
  "indices": [
    {
      "names": ["apinizer-log-apiproxy-<INDEX_KEY>*"],
      "privileges": ["read", "write", "create", "index", "delete","monitor","manage"]
    },
	{
      "names": [".monitoring-*", ".kibana*"],
      "privileges": ["read"]
	}
  ]
}'
BASH

Tam Özellik Rolü (Tüm Yönetim İşlemleri)

curl --request PUT \
  --url '<ELASTICSEARCH_ACCESS_URL>/_security/role/apinizer_all_needed_roles?pretty=' \
  --header 'Authorization: Basic <BASE64_ENCODED_AUTH>' \
  --header 'Content-Type: application/json' \
  --data '{
   "cluster": [
  "monitor",
 	"manage_ilm",
 	"manage_index_templates",
 	"create_snapshot",
 	"monitor_snapshot"
   ],
   "indices": [
     {
       "names": ["apinizer-log-apiproxy-<INDEX_KEY>*"],
       "privileges": ["all"]
     },
 	{
   "names": [".monitoring-*", ".kibana*"],
   "privileges": ["read"]
 	}
 ]
}'
BASH

Kullanıcı Oluşturma Örneği

curl --request POST \
  --url <ELASTICSEARCH_ACCESS_URL>/_security/user/apinizer_user \
  --header 'Authorization: Basic <BASE64_ENCODED_AUTH>' \
  --header 'Content-Type: application/json' \
  --data '{
	"password":"<PASSWORD>",
	"roles": ["apinizer_minimum_roles"],
	"full_name": "Apinizer Recommended User",
	"email": "<MAIL>"
}'
BASH

Rol Eksiklerinin Apinizer Üzerindeki Etkileri

Apinizer ile Elasticsearch'e erişmek için kullandığınız kullanıcıya tam yetki vermediğinizde bazı ekran özellikleri kısıtlanır. Bu durumda alternatif çözümler mümkündür.

Cluster Privileges Eksikliği

Eksik RolApinizer'daki EtkisiAlternatif Çözüm
monitor

Cluster health kontrolü yapılamaz;

CPU/disk kullanımı görüntülenemez;

Elasticsearch durumu dashboard'da gösterilmez.

Manuel monitoring araçları kullanın.
manage_ilm

ILM policy'leri Apinizer arayüzünden oluşturulamaz;

Lifecycle yönetimi yapılamaz;

Rollover işlemleri otomatik çalışmaz.

ILM policy'lerini manuel olarak oluşturun. Detaylı bilgi için tıklayınız.
manage_index_templates

Index template'leri Apinizer'dan oluşturulamaz;

Yeni index'ler yanlış yapılandırma ile oluşabilir.

Template'leri manuel olarak tanımlayın. Detaylı bilgi için tıklayınız.

Index Privileges Eksikliği

Eksik RolApinizer'daki EtkisiAlternatif Çözüm
write

Log verileri yazılamaz.

API trafiği kaydedilmez.

Audit logları oluşturulamaz.

KRİTİK - Temel işlevler çalışmaz.
read

Log sorgulama yapılamaz.

Analytics ekranları boş kalır.

Raporlama çalışmaz.

KRİTİK - Veri analizi yapılamaz.
create_index veya daha kapsamlı olan manage

Yeni index'ler oluşturulamaz.

İlk kurulum tamamlanamaz (ILM/rollover durumunda).

Manuel index oluşturma gerekir

Öneri: Aşamalı Yetki Verme

  1. Başlangıç: Belirlemiş olduğunuz roller ile entegrasyonu sağlayın.
  2. İhtiyaç Anında: Gereken rolleri tek tek ekleyin.
  3. Test: Her rol Eklendikten sonra ilgili Apinizer özelliğini test edin.