Cassandra kimlik doğrulamasını etkinleştir

Cassandra, varsayılan olarak kimlik doğrulama etkinleştirilmeden yüklenir. Bu, Cassandra'ya herkesin erişebileceği anlamına gelir. Kimlik doğrulamayı Edge'i yükledikten sonra veya yükleme işlemi sırasında etkinleştirebilirsiniz.

Cassandra CREATE/ALTER/DROP ROLES ifadelerini kullanarak rol ekleyebilir, kaldırabilir ve değiştirebilirsiniz. Daha fazla bilgi için aşağıdaki kaynaklara bakın:

Dikkat edilmesi gereken bazı genel noktalar

  • Cassandra kimlik doğrulamasını etkinleştirdiğiniz anda Cassandra tarafından otomatik olarak varsayılan bir süper kullanıcı cassandra (cassandra şifresiyle) oluşturulur. Bu, yaygın olarak bilinen bir süper kullanıcıdır ve bu kullanıcıyı üretim ihtiyaçlarınız için kullanmamanız gerekir. Ayrıca, bu süper kullanıcı aracılığıyla kimlik doğrulama için çoğunluk tutarlılığı gerekir. Bu nedenle, bu kullanıcı aracılığıyla kimlik doğrulaması yapan Cassandra'ya yönelik tüm bağlantılar daha katı tutarlılık gerektirir. Bu da daha yavaş ve hatadan etkilenmez performansa neden olur.
  • Tipik bir iş akışında, yapılandırma dosyası aracılığıyla özel bir kullanıcı adı ve şifre iletilirken Cassandra'da kimlik doğrulama etkinleştirilir. Bu işlem, ihtiyaçlarınız için güvenle kullanabileceğiniz özel kullanıcı ve şifreyi oluşturur. Bu tür kullanıcılar aracılığıyla kimlik doğrulama, çoğunluk tutarlılığı kısıtlamalarına tabi değildir.
  • Özel bir kullanıcı oluşturulmuş olsa bile Cassandra'nın varsayılan cassandra süper kullanıcısını oluşturmaya devam ettiğini ve Cassandra kümenize süper kullanıcı aracılığıyla erişilebileceğini unutmayın. Genellikle, Cassandra kimlik doğrulaması Apigee'de genel olarak başarıyla etkinleştirildikten sonra bu cassandra kullanıcısının şifresini varsayılan cassandra dışında bir şifreyle değiştirmek için ALTER ROLE komutunu kullanmanız gerekir. İleride kullanmak üzere bu şifreyi kaydedin.
  • edge-* bileşenlerinin kimlik doğrulama için kullandığı rolün şifresini DEĞİŞTİRMEMELİSİNİZ. Aksi takdirde hizmette anında kesinti yaşanır. Bunun yerine, yeni bir kullanıcı oluşturmanız, edge-* bileşenlerini yeni kullanıcıyı kullanacak şekilde değiştirmeniz ve işlem tamamlandıktan sonra DROP ROLE komutunu kullanarak eski kullanıcıyı silmeniz gerekir.
  • Cassandra kimlik doğrulaması için edge-* bileşenleri tarafından kullanılan rolü değiştirmek üzere aşağıdaki adımları uygulayın:
    1. Yeni bir kullanıcı oluşturmak için Kimlik Doğrulamayı Etkinleştirme başlıklı bölümdeki adımları uygulayın. Kümenizde kimlik doğrulama zaten etkinse ve cassandra kullanıcısının şifresini değiştirdiyseniz mevcut bir kullanıcının kullanıcı adı/şifre kombinasyonunu CASS_EXISTING_USERNAME ve CASS_EXISTING_PASSWORD aracılığıyla iletmeniz gerekir.
    2. İşlem tamamlandıktan sonra, hem eski hem de yeni kullanıcı üzerinden Cassandra'ya bağlanabildiğinizi cqlsh ile doğrulayın.
    3. Cassandra'ya bağlanan Edge bileşenlerini güncelleme bölümündeki talimatları uygulayarak tüm edge-* bileşenlerini, Cassandra'ya bağlanmak için yeni oluşturulan kullanıcıyı kullanacak şekilde ayarlayın.
    4. Son olarak, tüm bileşenler Cassandra ile iletişim kurmak için yeni kullanıcıyı kullandığında DROP ROLE komutunu kullanarak eski kullanıcıyı bırakabilirsiniz. Varsayılan cassandra rolünün silinmemesi gerektiğini unutmayın. Cassandra ile iletişim kurmak için edge-* bileşenleri tarafından kullanılmayan özel olarak oluşturulmuş rolleri bırakabilirsiniz.
  • Edge bileşenlerini yüklemek veya yükseltmek için kullandığınız yapılandırma dosyasında işlevsel Cassandra kullanıcı adını ve şifresini güncellemeyi unutmayın. Bu sayede, uç işlemleri sırasında kesintiler ortadan kaldırılır veya en aza indirilir.

Yükleme sırasında Cassandra kimlik doğrulamasını etkinleştirme

Cassandra kimlik doğrulamasını yükleme sırasında etkinleştirebilirsiniz.

Yükleme sırasında Cassandra kimlik doğrulamasını etkinleştirmek için tüm Cassandra düğümlerinin yapılandırma dosyasına CASS_AUTH özelliğini ekleyin:

CASS_AUTH=y # The default value is n.

Aşağıdaki Edge bileşenleri Cassandra'ya erişir:

  • Yönetim Sunucusu
  • Mesaj İşlemcileri
  • Yönlendiriciler
  • Qpid sunucuları
  • Postgres sunucuları

Bu bileşenleri yüklediğinizde yapılandırma dosyasında bir kullanıcı adı ve şifre belirlemeniz gerekir:

CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password

Cassandra'yı yükledikten sonra Cassandra kimlik bilgilerini değiştirebilirsiniz. Ancak Yönetim Sunucusu, Mesaj İşlemciler, Yönlendiriciler, Qpid sunucuları veya Postgres sunucularını zaten yüklediyseniz yeni kimlik bilgilerini kullanmak için bu bileşenleri de güncellemeniz gerekir.

Cassandra'yı yükledikten sonra Cassandra kimlik bilgilerini değiştirmek için:

  1. cqlsh aracını ve varsayılan kimlik bilgilerini kullanarak herhangi bir Cassandra düğümüne giriş yapın. Şifreyi yalnızca bir düğümde değiştirmeniz yeterlidir. Değişiklik, halkadaki tüm Cassandra düğümlerine yayınlanır:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

    Burada:

    1. cassIP, Cassandra düğümünün IP adresidir.
    2. 9042, varsayılan Cassandra bağlantı noktasıdır.
  2. Şifreyi güncellemek için cqlsh> isteminde aşağıdaki komutu çalıştırın:
    ALTER ROLE <username> WITH PASSWORD='';
  3. Aşağıdaki örnekte gösterildiği gibi cqlsh aracından çıkın:
    exit
  4. Yönetim sunucusunu, mesaj işlemcilerini, yönlendiricileri, Qpid sunucularını veya Postgres sunucularını henüz yüklemediyseniz yapılandırma dosyasında aşağıdaki özellikleri ayarlayın ve ardından bu bileşenleri yükleyin:
    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=new_cassandra_password
  5. Yönetim Sunucusu, Mesaj İşlemciler, Yönlendiriciler, Qpid sunucuları veya Postgres sunucularını zaten yüklediyseniz bu bileşenleri yeni şifreyi kullanacak şekilde güncelleme prosedürü için Edge Şifrelerini Sıfırlama başlıklı makaleyi inceleyin.

Yükleme sonrası Cassandra kimlik doğrulamasını etkinleştirme

Yükleme işleminden sonra kimlik doğrulamayı etkinleştirmek için:

Cassandra'ya bağlanan Edge bileşenlerini güncelleme

Cassandra ile iletişim kuran tüm Edge bileşenlerini yeni kimlik bilgileriyle güncellemek için aşağıdaki prosedürü kullanın. Bu adımı, Cassandra kimlik bilgilerini güncellemeden önce uygulamanız gerektiğini unutmayın:

  1. Yönetim Sunucusu düğümünde aşağıdaki komutu çalıştırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
      store_cassandra_credentials -u cassandra_username -p cassandra_password

    İsterseniz yeni kullanıcı adını ve şifreyi içeren bir dosyayı komuta iletebilirsiniz:

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    configFile şunları içerir:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

    Bu komut, Yönetim Sunucusu'nu otomatik olarak yeniden başlatır.

  2. Aşağıdaki hizmetlerin her biri için 1. adımı tekrarlayın:
    • Tüm Mesaj İşlemcileri
    • Tüm Yönlendiriciler
    • Tüm Qpid sunucuları (edge-qpid-server)
    • Postgres sunucuları (edge-postgres-server)

    Her hizmet için 1. adımı tekrarlarken yukarıdaki komutta edge-management-server ifadesini uygun hizmet adıyla değiştirin. Örneğin, bir yönlendirici hizmeti için adımı yürütürken aşağıdaki komutu kullanın:

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p cassandra

Kimlik doğrulamayı etkinleştir

Cassandra kimlik doğrulamasını etkinleştirmek ve kullanıcı adı ile şifreyi ayarlamak için aşağıdaki prosedürü uygulayın:

  1. Aşağıda gösterilen içeriğe sahip bir sessiz yapılandırma dosyası oluşturun:
    # Specify IP address or DNS name of cassandra node
    IP1=192.168.1.1
    IP2=192.168.1.2
    IP3=192.168.1.3
    # Must resolve to IP address or DNS name of host
    HOSTIP=$(hostname -i)
    # Set to ‘y’ to enable Cassandra authentication.
    CASS_AUTH=y # Possible values are ‘y/n’
    # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
    CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
    # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
    CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
    # Space-separated IP/DNS names of the Cassandra hosts
    CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
    
    # Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
    CASS_EXISTING_USERNAME=existing_cassandra_username
    # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
    CASS_EXISTING_PASSWORD=existing_cassandra_password
    # Cassandra port
    CASS_PORT=9042 # The default port is 9042.
  2. İlk Cassandra düğümüne giriş yapın ve aşağıdaki komutu çalıştırın:

    apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

    İsterseniz özellikleri aşağıdaki örnekte gösterildiği gibi komut bağımsız değişkenleri olarak komut dosyasına iletebilirsiniz:

    CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

    Notlar:

    • Varsayılan Cassandra kimlik bilgileri için yukarıdaki komut, Cassandra kimlik doğrulamasını etkinleştirir ve Cassandra'yı yeniden başlatır.
    • Varsayılan olmayan kimlik bilgilerinde komut, replikasyon faktörünü de değiştirir, süper kullanıcı oluşturur ve system_auth keyspace üzerinde onarım gerçekleştirir.
  3. 1. ve 2. adımları tüm Cassandra düğümlerinde tekrarlayın.