Cassandra JMX Kimlik Doğrulaması ve Yetkilendirme: Kullanıcı Oluştur

İki tür güvenlik vardır Apache Cassandra ve Datastax kuruluşu.

  • Dahili Kimlik Doğrulama
  • Yetki

Dahili Kimlik Doğrulama ve Yetkilendirme Nedir?

Dahili kimlik doğrulama temel olarak kullanıcı bağlantısını doğrulamaktır. Kullanıcının kimliği, kullanıcı adı ve şifre ile doğrulanır. Tüm kullanıcı hesapları şurada yönetilir: Cassandra içten.

Dahili yetkilendirme kullanıcının izniyle ilgilidir. Kullanıcının hangi eylemleri gerçekleştirebileceğiyle ilgilenir. Örneğin hangi kullanıcıya sadece veri okuma izni, hangi kullanıcıya veri yazma izni, hangi kullanıcıya veri silme izni gibi izinler verebiliriz.

Ancak Kimlik Doğrulama harici olarak da kontrol edilebilir. Kerberos (Kerberos, kimlik bilgilerini güvenli bir şekilde yönetmek için kullanılır) ve LDAP (LDAP, hesaplar hakkında, erişmelerine izin verilenler gibi yetkili bilgileri tutmak için kullanılır).

Harici kimlik doğrulama, Kerberos ve LDAP tarafından desteklenen kimlik doğrulamadır. Apache Cassandra harici kimlik doğrulamayı desteklemez.

Kerberos ve LDAP ile harici kimlik doğrulamayı yalnızca datastax kuruluşu destekler. Dahili kimlik doğrulama her ikisinde de desteklenirken Apache Cassandra Datastax kuruluşunun yanı sıra.

Kimlik Doğrulamayı ve Yetkilendirmeyi Yapılandırma

In Cassandra, varsayılan olarak kimlik doğrulama ve yetkilendirme seçenekleri devre dışıdır. Yapılandırmanız gerekiyor CassandraKimlik doğrulama ve yetkilendirmeyi etkinleştirmek için .yaml dosyası.

Açılış Cassandra.yaml dosyası ve dahili kimlik doğrulama ve yetkilendirmeyle ilgilenen açıklama satırları.

Kimlik Doğrulamayı ve Yetkilendirmeyi Yapılandırma

  • In Cassandra.yaml dosyasında, varsayılan olarak, kimlik doğrulayıcı değeri 'AllowAllAuthenticator'dır. Bu kimlik doğrulayıcı değerini 'AllowAllAuthenticator'dan 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'a değiştirin.
  • Benzer şekilde Cassandra.yaml dosyasında, varsayılan olarak, yetkilendirici değeri 'AllowAllAuthorizor' olacaktır. Bu yetkilendirici değerini 'AllowAllAuthorizor'dan 'com.datastax.bdp.cassandra.auth'a değiştirin.CassandraYetkilendiren'.

Giriş

Artık herhangi bir anahtar alana erişmeye çalışırsanız kimlik doğrulama etkinleştirilmiştir. Cassandra bir hata döndürür.

Varsayılan olarak, Cassandra 'cassandra' kullanıcı adı ve 'cassandra' şifresiyle süper hesap sağlar. ' adresine giriş yaparakCassandra' hesabıyla istediğini yapabilirsin.

Bunun için aşağıdaki ekran görüntüsüne bakalım, eğer varsayılanı kullanmıyorsanız giriş yapmanıza izin vermeyecektir. Cassandra "kullanıcı adı ve şifre".

Giriş

Şimdi ikinci ekran görüntüsünde kullandıktan sonra görebilirsiniz. Cassandra varsayılan oturum açma kimlik bilginiz varsa, oturum açabilirsiniz.

Bu hesapla başka bir kullanıcı da oluşturabilirsiniz. Şifreyi varsayılandan değiştirmeniz önerilir. İşte giriş örneği Cassandra kullanıcı ve varsayılan şifreyi değiştirin.

Giriş

alter user cassandra with password 'newpassword';

Yeni kullanıcı oluştur

' ile yeni hesaplar oluşturulabilirCassandra' hesap.

Yeni kullanıcı oluşturmak için giriş, şifre ve kullanıcının süper kullanıcı olup olmadığı belirtilir. Yalnızca Süper kullanıcı yeni kullanıcılar oluşturabilir.

create user robin with password 'manager' superuser;
create user robin with password 'newhire';

Aşağıdaki söz dizimini kullanarak tüm kullanıcıların listesini alabilirsiniz.

list users;

Yeni kullanıcı oluştur

Kullanıcılar aşağıdaki söz dizimi ile bırakılabilir.

drop user laura;

Yetki

Yetkilendirme, belirli bir kullanıcının hangi eylemi gerçekleştirebileceği konusunda kullanıcılara izin verilmesidir.

Kullanıcılara izin atamak için genel sözdizimi aşağıda verilmiştir.

GRANT permission ON resource TO user

Kullanıcıya verilebilecek izin türleri şunlardır.

  1. HEPSİ
  2. alter
  3. YETKİ VER
  4. CREATE
  5. DAMLA
  6. DEĞİŞTİRİN
  7. SEÇİN

Burada kullanıcıya izin atama örnekleri verilmiştir.

Create user laura with password 'newhire'; 
grant all on dev.emp to laura;
revoke all on dev.emp to laura;
grant select on dev.emp to laura;

'laura' adında yeni bir kullanıcı oluşturuldu ve şifresi 'newhire' oldu.

İşte 'laura' kullanıcısının emp_bonus tablosuna erişmeye çalıştığı örnek. Laura'nın yalnızca dev.emp'e erişme izni var ve bu dev.emp_bonus tablosuna izni yok, bu yüzden bir hata döndürüldü.

Yetki

select* form emp_bonus;

Kullanıcıya atanan tüm izinlerin bir listesini alabilirsiniz. İşte izin bilgisi alma örneği.

Yetki

list all permissions of laura;

Ayrıca kaynaktaki tüm izinleri de listeleyebilirsiniz. İşte bir tablodan izin alma örneği.

Yetki

list all permissions on dev.emp;

Güvenlik Duvarını Yapılandırma

Güvenlik duvarı çalışıyorsa, bazı düğümler de dahil olmak üzere düğümler arasındaki iletişim için aşağıdaki bağlantı noktalarının açılması gerekir: Cassandra limanlar. Eğer Cassandra portlar açılmayacaktır, Cassandra düğümler, veritabanı kümesine katılmak yerine bağımsız veritabanı sunucusu olarak hareket edecektir.

Cassandra İstemci Bağlantı Noktaları

Port Numarası Açıklama
9042 Cassandra İstemci Bağlantı Noktası
9160 Cassandra İstemci Bağlantı Noktası Tasarrufu

Cassandra Düğümler arası bağlantı noktaları

Port Numarası Açıklama
7000 Cassandra düğümler arası küme iletişimi
7001 Cassandra SSL düğümler arası küme iletişimi
7199 Cassandra JMX izleme bağlantı noktası

Kamu Limanları

Port Numarası Açıklama
22 SSH bağlantı noktası
8888 OpsCenter Web Sitesi. Tarayıcı http isteği.

Cassandra OpsCenter bağlantı noktaları

Port Numarası Açıklama
61620 OpsCenter izleme bağlantı noktası.
61621 Opscenter aracı bağlantı noktası

JMX Kimlik Doğrulamasını Etkinleştirme

Varsayılan ayarlarla CassandraJMX'e yalnızca localhost'tan erişilebilir. JMX'e uzaktan erişmek istiyorsanız, LOCAL_JMX ayarını değiştirin. Cassandra-env.sh ve kimlik doğrulamayı veya SSL'yi etkinleştirin.

JMX kimlik doğrulamasını etkinleştirdikten sonra, Operasyon Merkezi ve nodetool kimlik doğrulamayı kullanacak şekilde yapılandırılmıştır.

Prosedür

JMX kimlik doğrulamasını etkinleştirmek için aşağıdaki adımlar izlenir.

  1. cassandra-env.sh dosyasında aşağıdaki satırları ekleyin veya güncelleyin.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Ayrıca LOCAL_JMX ayarını da değiştirin. Cassandra-env.sh

LOCAL_JMX=no
  1. Jmxremote.password.template dosyasını /jdk_install_location/lib/management/ konumundan /etc/cassandra/ dizinine kopyalayın ve jmxremote.password olarak yeniden adlandırın.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. jmxremote.password'ün sahipliğini çalıştırdığınız kullanıcıyla değiştirin Cassandra ile ve salt okuma iznini değiştir
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. jmxremote.password'ü düzenleyin ve JMX uyumlu yardımcı programlar için kullanıcıyı ve parolayı ekleyin:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. Eklemek Cassandra /jdk_install_location/lib/management/jmxremote.access'e okuma ve yazma izni olan kullanıcı
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \ 
unregister
  1. Yeniden Cassandra
  2. Nodetool'u şununla çalıştırın: Cassandra kullanıcı ve şifre.
$ nodetool status -u cassandra -pw cassandra

ÖZET

Bu eğitimde güvenlik açıklanmaktadır Cassandra ve yapılandırma CassandraGüvenliği etkinleştirmek için .yaml dosyası. Bunun yanında yeni kullanıcı hesabının nasıl oluşturulacağı, izinlerin nasıl atanacağı, güvenlik duvarının nasıl yapılandırılacağı vb. de anlatılmaktadır.