Cassandra JMX Kimlik Doğrulaması ve Yetkilendirme: Kullanıcı Oluştur
⚡ Akıllı Özet
Cassandra Güvenlik, dahili kimlik doğrulama, rol izinleri, güvenlik duvarı kuralları ve JMX erişim kontrolüne dayanır. Bu sayfa, her bir katmanı nasıl etkinleştireceğinizi, kullanıcıları nasıl oluşturacağınızı, izinleri nasıl vereceğinizi ve uzaktan nodetool erişimini nasıl güvenli hale getireceğinizi gösterir.

İki tür güvenlik vardır Apache Cassandra ve DataStax Enterprise.
- Dahili Kimlik Doğrulama
- Yetki
Dahili Kimlik Doğrulama ve Yetkilendirme Nedir?
Dahili kimlik doğrulama temelde kullanıcı bağlantısının doğrulanmasıdır. Kullanıcı, giriş ve şifre ile kimlik doğrulaması yapar. Tüm kullanıcı hesapları burada yönetilir. Cassandra içten.
Dahili yetkilendirme, kullanıcının izinleriyle ilgilenir. Bir kullanıcının hangi eylemleri gerçekleştirebileceğiyle ilgilidir. Örneğin, hangi kullanıcının yalnızca veri okuma iznine, hangi kullanıcının veri yazma iznine ve hangi kullanıcının veri silme iznine sahip olabileceği gibi izinler verebiliriz.
Ancak, kimlik doğrulama Kerberos (Kerberos, kimlik bilgilerini güvenli bir şekilde yönetmek için kullanılır) ve LDAP (LDAP, hesaplar hakkında yetkili bilgileri, örneğin nelere erişmelerine izin verildiğini saklamak için kullanılır) ile harici olarak da kontrol edilebilir.
Harici kimlik doğrulama, Kerberos ve LDAP tarafından desteklenen kimlik doğrulamadır. Apache Cassandra harici kimlik doğrulamayı desteklemez.
Yalnızca DataStax Enterprise, Kerberos ve LDAP ile harici kimlik doğrulamayı desteklerken, dahili kimlik doğrulama hem diğer sürümlerde desteklenmektedir. Apache Cassandra DataStax Enterprise'ın yanı sıra.
Kimlik Doğrulamayı ve Yetkilendirmeyi Yapılandırma
In CassandraVarsayılan olarak kimlik doğrulama ve yetkilendirme seçenekleri devre dışıdır. Kimlik doğrulama ve yetkilendirmeyi etkinleştirmek için cassandra.yaml dosyasını yapılandırmanız gerekir.
Cassandra.yaml dosyasını açın ve aşağıda gösterildiği gibi dahili kimlik doğrulama ve yetkilendirme ile ilgili satırların yorum satırlarını kaldırın.
- cassandra.yaml dosyasında, varsayılan olarak authenticator değeri 'AllowAllAuthenticator' şeklindedir. Bu authenticator 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 'AllowAllAuthorizer' olacaktır. Bu yetkilendirici değerini 'AllowAllAuthorizer' yerine 'com.datastax.bdp.cassandra.auth' olarak değiştirin.CassandraYetkilendiren'.
Bu iki sınıf adı, DataStax Enterprise değerleridir. Açık kaynak kodlu yazılımlarda. Apache Cassandra aynı ayarlar geçerlidir PasswordAuthenticator hem de CassandraAuthorizerve kimlik bilgileri daha sonra orada saklanır. system_auth Çoğaltma faktörü birden büyük olması gereken anahtar alanı.
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 Bu, 'cassandra' kullanıcı adı ve 'cassandra' şifresiyle süper hesap sağlar. 'cassandra' hesabına giriş yaparak istediğiniz her şeyi yapabilirsiniz.
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. Varsayılan şifreyi değiştirmeniz önerilir. İşte giriş yapma örneği: Cassandra Kullanıcı ve varsayılan şifrenin değiştirilmesi.
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, kullanıcının süper kullanıcı olup olmadığıyla birlikte giriş bilgileri ve şifre belirtilir. Sadece süper kullanıcılar yeni kullanıcı 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;
Çıktı, her hesabı süper kullanıcı bayrağıyla birlikte listeler.
Kullanıcılar aşağıdaki söz dizimi ile bırakılabilir.
drop user laura;
Yetki
Yetkilendirme, kullanıcılara izin atanması, belirli bir kullanıcının hangi eylemi gerçekleştirebileceğine karar 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İ VERMEK
- 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.
Burada, 'laura' adlı kullanıcının emp_bonus tablosuna erişmeye çalıştığı bir örnek verilmiştir. Laura'nın yalnızca dev.emp tablosuna erişim izni vardır ve dev.emp_bonus tablosuna erişim izni yoktur; bu nedenle bir hata döndürülmüştür.
select* form emp_bonus;
Kullanıcıya atanmış tüm izinlerin listesini alabilirsiniz. İşte izin bilgilerini alma örneği.
list all permissions of laura;
Bir kaynağa ait 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ı sunucuları olarak işlev görecektir.
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ı |
Mevcut sürücüler yalnızca 9042 portunu kullanıyor; 9160 portu eski Thrift arayüzüne hizmet ediyor ve yeni kümelerde kapalı kalabiliyor.
JMX Kimlik Doğrulamasını Etkinleştirme
Varsayılan ayarlarla CassandraJMX'e yalnızca localhost üzerinden erişilebilir. JMX'e uzaktan erişmek istiyorsanız, cassandra-env.sh dosyasındaki LOCAL_JMX ayarını değiştirin 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, cassandra-env.sh dosyasındaki LOCAL_JMX ayarını değiştirin.
LOCAL_JMX=no
- /jdk_install_location/lib/management/ dizininden jmxremote.password.template dosyasını /etc/cassandra/ dizinine kopyalayın ve adını jmxremote.password olarak değiştirin.
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 ve izinleri yalnızca okuma iznine dönüştürün.
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







