Cassandra Güvenliği: Kullanıcı Oluştur & JMX ile kimlik doğrulama

İçindekiler:

Anonim

Apache Cassandra ve Datastax kuruluşunda iki tür güvenlik vardır.

  • Dahili Kimlik Doğrulama
  • yetki

Bu eğitimde öğreneceksiniz,

  • Dahili Kimlik Doğrulama ve Yetkilendirme nedir
  • Kimlik Doğrulama ve Yetkilendirmeyi Yapılandırma
  • Giriş
  • Yeni kullanıcı oluştur
  • yetki
  • Güvenlik Duvarını Yapılandırma
  • JMX Kimlik Doğrulamasını Etkinleştirme

Dahili Kimlik Doğrulama ve Yetkilendirme nedir

Dahili kimlik doğrulama, temel olarak kullanıcı bağlantısını doğrulamaktadır. Kullanıcı, kullanıcı adı ve şifre ile doğrulanır. Tüm kullanıcı hesapları Cassandra'da dahili olarak yönetilir.

İç yetkilendirme, kullanıcının izniyle ilgilenir. Kullanıcının gerçekleştirebileceği eylemlerle ilgilenir. Örneğin, hangi kullanıcının yalnızca veri okuma iznine sahip olduğu, hangi kullanıcının veri yazma iznine sahip olduğu ve hangi kullanıcının veri silme iznine sahip olduğu gibi kullanıcıya izin verebiliriz.

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

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

Yalnızca datastax kuruluşu, Kerberos ve LDAP ile harici kimlik doğrulamayı destekler. İç kimlik doğrulama ise hem Apache Cassandra'da hem de Datastax kuruluşunda desteklenmektedir.

Kimlik Doğrulama ve Yetkilendirmeyi Yapılandırma

Cassandra'da, varsayılan olarak kimlik doğrulama ve yetkilendirme seçenekleri devre dışı bırakılmıştır. Kimlik doğrulama ve yetkilendirmeyi etkinleştirmek için Cassandra.yaml dosyasını yapılandırmanız gerekir.

Cassandra.yaml dosyasını ve dahili kimlik doğrulama ve yetkilendirme ile ilgilenen yorum satırlarını açın.

  • Cassandra.yaml dosyasında, varsayılan olarak kimlik doğrulayıcı değeri 'AllowAllAuthenticator'dır. Bu kimlik doğrulayıcı değerini "AllowAllAuthenticator" yerine "com.datastax.bdp.cassandra.auth.PasswordAuthenticator" olarak 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.CassandraAuthorizor'a değiştirin.

Giriş

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

Varsayılan olarak Cassandra, süper hesaba 'cassandra' kullanıcı adı ve 'cassandra' parolası sağlar. 'Cassandra' hesabına giriş yaparak, istediğinizi yapabilirsiniz.

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

Şimdi, ikinci ekran görüntüsünde, Cassandra varsayılan oturum açma bilgilerini kullandıktan sonra oturum açabileceğinizi görebilirsiniz.

Bu hesapla başka bir kullanıcı da oluşturabilirsiniz. Varsayılan parolanın değiştirilmesi önerilir. İşte Cassandra kullanıcısının oturum açma ve varsayılan parolayı değiştirme örneği.

alter user cassandra with password 'newpassword';

Yeni kullanıcı oluştur

'Cassandra' hesabı ile yeni hesaplar oluşturulabilir.

Yeni bir kullanıcı oluşturmak için, login, kullanıcının süper kullanıcı olup olmadığı ile birlikte şifre belirlenir. 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 dizimine göre tüm kullanıcıların bir listesini alabilirsiniz.

list users;

Kullanıcılar aşağıdaki sözdizimi ile çıkarılabilir.

drop user laura;

yetki

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

İşte kullanıcılara izin atamak için genel sözdizimi.

GRANT permission ON resource TO user

Kullanıcıya verilebilecek aşağıdaki izin türleri vardır.

  1. HERŞEY
  2. DEĞİŞTİR
  3. YETKİLENDİR
  4. OLUŞTURMAK
  5. DÜŞÜRMEK
  6. DEĞİŞTİR
  7. SEÇ

İşte kullanıcıya izin atama örnekleri.

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;

Yeni bir kullanıcı 'laura' 'newhire' şifresiyle oluşturulur.

İşte 'laura' kullanıcısının emp_bonus tablosuna erişmeye çalıştığı örnek. Laura'nın yalnızca dev.emp erişim izni vardır ve bu tablo için dev.emp_bonus izni yoktur, bu nedenle bir hata döndürüldü.

select* form emp_bonus;

Kullanıcıya atanan tüm izinlerin bir listesini alabilirsiniz. İzin bilgileri alma örneği aşağıdadır.

list all permissions of laura;

Kaynaktaki tüm izinleri de listeleyebilirsiniz. İşte bir tablodan izin alma örneği.

list all permissions on dev.emp;

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

Güvenlik duvarı çalışıyorsa, bazı Cassandra bağlantı noktaları dahil olmak üzere düğümler arasındaki iletişim için aşağıdaki bağlantı noktaları açılmalıdır. Cassandra bağlantı noktaları açılmayacaksa, Cassandra düğümleri veritabanı kümesine katılmak yerine bağımsız bir 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 Internode bağlantı noktaları

Port numarası

Açıklama

7000

Cassandra internode küme iletişimi

7001

Cassandra SSL internode küme iletişimi

7199

Cassandra JMX izleme bağlantı noktası

Halka Açık Bağlantı Noktaları

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ısı bağlantı noktası

JMX Kimlik Doğrulamasını Etkinleştirme

Cassandra'nın varsayılan ayarlarıyla, JMX'e yalnızca yerel ana bilgisayardan erişilebilir. JMX'e uzaktan erişmek istiyorsanız, Cassandra-env.sh'deki LOCAL_JMX ayarını değiştirin ve kimlik doğrulamasını veya SSL'yi etkinleştirin.

JMX kimlik doğrulamasını etkinleştirdikten sonra, OpsCenter ve nodetool'un kimlik doğrulamasını kullanacak şekilde yapılandırıldığından emin olun.

Prosedür

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

  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 Cassandra-env.sh dosyasındaki LOCAL_JMX ayarını değiştirin.

LOCAL_JMX=no
  1. Jmxremote.password.template'i / jdk_install_location / lib / management / dizininden / 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 sahipliğini Cassandra'yı birlikte çalıştırdığınız kullanıcıya değiştirin ve iznini salt okunur olarak değiştirin
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Jmxremote.password dosyasını düzenleyin ve JMX uyumlu yardımcı programlar için kullanıcı ve parolayı ekleyin:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Cassandra kullanıcısını okuma ve yazma izni ile /jdk_install_location/lib/management/jmxremote.access adresine ekleyin.
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Cassandra'yı yeniden başlatın
  2. Nodetool'u Cassandra kullanıcısı ve parolasıyla çalıştırın.
$ nodetool status -u cassandra -pw cassandra

Özet:

Bu eğitici, Cassandra'da güvenlik ve güvenliği etkinleştirmek için Cassandra.yaml dosyasını yapılandırmayı açıklar. Bunun yanı sıra, yeni kullanıcı hesabının nasıl oluşturulacağını, izinlerin atanmasını, güvenlik duvarının yapılandırılmasını vb. Açıklar.