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ı.
- 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".
Ş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.
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;
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.
- HEPSİ
- alter
- YETKİ VER
- CREATE
- DAMLA
- DEĞİŞTİRİN
- 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ü.
select* form emp_bonus;
Kullanıcıya atanan tüm izinlerin bir listesini alabilirsiniz. İşte izin bilgisi alma örneği.
list all permissions of laura;
Ayrıca 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ı 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.
- 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
- 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
- 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
- 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
- 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
- Yeniden Cassandra
- 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.