Apigee mTLS'yi yapılandırma

Kümedeki her düğüme apigee-mtls bileşenini yükledikten sonra yapılandırmanız ve başlatmanız gerekir. Bunun için bir sertifika/anahtar çifti oluşturup yönetim makinenizdeki yapılandırma dosyasını güncellemeniz gerekir. Ardından, oluşturulan aynı dosyaları kümedeki tüm düğümlere dağıtır ve yerel apigee-mtls bileşenini başlatırsınız.

Apigee-mtls'i yapılandırma (ilk yüklemeden sonra)

Bu bölümde, ilk yüklemenin hemen ardından tek bir veri merkezi için Apigee mTLS'nin nasıl yapılandırılacağı açıklanmaktadır. Apigee mTLS'nin mevcut kurulumunda güncelleme yapma hakkında bilgi için Mevcut Apigee-mtls yapılandırmasını değiştirme bölümüne bakın. Birden fazla veri merkezini yapılandırma hakkında bilgi edinmek istiyorsanız Apigee mTLS için birden fazla veri merkezi yapılandırma bölümüne göz atın.

apigee-mtls genel yapılandırma işlemi aşağıdaki gibidir:

  1. Yapılandırma dosyanızı güncelleyin: Yönetim makinenizde yapılandırma dosyasını apigee-mtls ayarlarını içerecek şekilde güncelleyin.
  2. Consul'u yükleyin ve kimlik bilgileri oluşturun: Consul'u yükleyin ve TLS kimlik bilgilerini oluşturmak için bu konsolu kullanın (yalnızca bir kez).

    Ayrıca, Apigee mTLS yapılandırma dosyanızı şu şekilde düzenleyin:

    1. Kimlik bilgisi bilgilerini ekleyin
    2. Kümenin topolojisini tanımlayın

    Mevcut kimlik bilgilerinizi kullanabileceğinizi veya bu bilgileri Consul ile oluşturabileceğinizi unutmayın.

  3. Yapılandırma dosyasını ve kimlik bilgilerini dağıtın: Oluşturulan aynı sertifika/anahtar çiftini ve güncellenen yapılandırma dosyasını kümenizdeki tüm düğümlere dağıtın.
  4. Apigee-mtls'i ilk kullanıma hazırlama: Her düğümde apigee-mtls bileşenini başlatın.

Bu adımların her biri sonraki bölümlerde açıklanmıştır.

1. Adım: Yapılandırma dosyanızı güncelleyin

Bu bölümde, yapılandırma dosyanızı mTLS yapılandırma özelliklerini içerecek şekilde nasıl değiştireceğiniz açıklanmaktadır. Yapılandırma dosyası hakkında daha fazla genel bilgi için Yapılandırma dosyası oluşturma bölümüne bakın.

Yapılandırma dosyasını mTLS ile ilgili özelliklerle güncelledikten sonra, bu düğümlerde apigee-mtls bileşenini başlatmadan önce dosyayı kümedeki tüm düğümlere kopyalarsınız.

Yapılandırma dosyasına başvuruda bulunan komutlar, dosyayı her bir düğümde depoladığınız konuma bağlı olarak konumunun değişken olduğunu belirtmek için "config_file" ifadesini kullanır.

Yapılandırma dosyasını güncellemek için:

  1. Yönetim makinenizde yapılandırma dosyasını açın.
  2. Aşağıdaki mTLS yapılandırma özellikleri grubunu kopyalayıp yapılandırma dosyasına yapıştırın:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    Her bir özelliğin değerini yapılandırmanızla uyumlu olacak şekilde ayarlayın.

    Aşağıdaki tabloda bu yapılandırma özellikleri açıklanmaktadır:

    Özellik Açıklama
    ALL_IP Kümedeki tüm düğümlerin özel ana makine IP adreslerinin boşlukla ayrılmış listesi.

    IP adreslerinin sırası kümedeki tüm yapılandırma dosyalarında aynı olması dışında önemli değildir.

    Apigee mTLS'yi birden fazla veri merkezi için yapılandırırsanız tüm bölgelerdeki tüm ana makinelerin tüm IP adreslerini listeleyin.

    LDAP_MTLS_HOSTS Kümedeki OpenLDAP düğümünün özel ana makine IP adresi.
    ZK_MTLS_HOSTS

    ZooKeeper düğümlerinin kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.

    Gereksinimlere göre, en az üç ZooKeeper düğümü olması gerektiğini unutmayın.

    CASS_MTLS_HOSTS Kümede Cassandra sunucularının barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    PG_MTLS_HOSTS Kümede Postgres sunucularının barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    RT_MTLS_HOSTS Yönlendiricilerin kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    MTLS_ENCAPSULATE_LDAP İleti İşleyici ile LDAP sunucusu arasındaki LDAP trafiğini şifreler. y olarak ayarlayın.
    MS_MTLS_HOSTS Yönetim Sunucusu düğümlerinin kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    MP_MTLS_HOSTS Mesaj İşleyicilerinin kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    QP_MTLS_HOSTS Qpid sunucularının kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    ENABLE_SIDECAR_PROXY Cassandra ve Postgres'in hizmet ağından haberdar olup olmayacağını belirler.

    Bu değeri "y" olarak ayarlamanız gerekir.

    ENCRYPT_DATA Consul tarafından kullanılan base64 kodlu şifreleme anahtarı . Bu anahtarı, 2. Adım: Consul'u yükleme ve kimlik bilgileri oluşturma bölümünde consul keygen komutunu kullanarak oluşturdunuz.

    Bu değer, kümedeki tüm düğümlerde aynı olmalıdır.

    PATH_TO_CA_CERT Sertifika dosyasının düğümdeki konumu. Bu dosyayı 2. Adım: Consul'ı yükleyin ve kimlik bilgileri oluşturun aşamasında oluşturdunuz.

    Yapılandırma dosyalarının aynı olması için bu konum, kümedeki tüm düğümlerde aynı olmalıdır.

    Sertifika, X509v3 olarak kodlanmış olmalıdır.

    PATH_TO_CA_KEY Anahtar dosyasının düğümdeki konumu. Bu dosyayı 2. Adım: Consul'ı yükleyin ve kimlik bilgileri oluşturun aşamasında oluşturdunuz.

    Yapılandırma dosyalarının aynı olması için bu konum, kümedeki tüm düğümlerde aynı olmalıdır.

    Anahtar dosyası X509v3 olarak kodlanmış olmalıdır.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Özel sertifika oluşturduğunuzda bir sertifikanın geçerli olacağı gün sayısı.

    Varsayılan değer 365'tir. Maksimum değer 7.865 gündür (5 yıl).

    Çoklu veri merkezi yapılandırmasına yüklediğinizde Apigee mTLS, yukarıda listelenen özelliklere ek olarak birkaç ek özellik kullanır. Daha fazla bilgi için Birden çok veri merkezini yapılandırma bölümüne göz atın.

  3. ENABLE_SIDECAR_PROXY özelliğinin "y" olduğundan emin olun.
  4. Ana makineyle ilgili özelliklerde IP adreslerini güncelleyin. Her bir düğüme başvuruda bulunurken genel IP adreslerini değil, özel IP adreslerini kullandığınızdan emin olun.

    Sonraki adımlarda ENCRYPT_DATA, PATH_TO_CA_CERT ve PATH_TO_CA_KEY gibi diğer özelliklerin değerlerini ayarlayacaksınız. Henüz bunların değerlerini belirlemediniz.

    apigee-mtls yapılandırma özelliklerini düzenlerken aşağıdakilere dikkat edin:

    • Tüm özellikler dizedir. Tüm tesislerin değerlerini tek veya çift tırnak içine almanız gerekir.
    • Ana makineyle ilgili bir değer birden fazla özel IP adresine sahipse her bir IP adresini boşlukla ayırın.
    • Yapılandırma dosyasında ana makineyle ilgili tüm özellikler için ana makine adları veya genel IP adresleri değil, özel IP adresleri kullanın.
    • Bir özellik değerindeki IP adreslerinin sırası, kümedeki tüm yapılandırma dosyalarında aynı sırada olmalıdır.
  5. Yapılandırma dosyasında yaptığınız değişiklikleri kaydedin.

2. Adım: Consul'ı yükleyin ve kimlik bilgilerini oluşturun

Bu bölümde, Consul'un nasıl yükleneceği ve kimlik bilgilerinin nasıl oluşturulacağı açıklanmaktadır.

Kimlik bilgisi oluşturmak için aşağıdaki yöntemlerden birini seçmeniz gerekir:

  • Consul'u kullanarak bu bölümde açıklandığı şekilde kendi CA'nızı oluşturun (önerilir)
  • Mevcut bir CA'nın kimlik bilgilerini Apigee mTLS ile kullan (gelişmiş)

Kimlik bilgileri hakkında

Kimlik bilgileri şunlardan oluşur:

  • Sertifika: Her bir düğümde barındırılan TLS sertifikası
  • Anahtar: Her bir düğümde barındırılan TLS ortak anahtarı
  • Dedikodu mesajı: Base 64 olarak kodlanmış şifreleme anahtarı

Bu dosyaların her birinin tek bir sürümünü yalnızca bir kez oluşturursunuz. Anahtar ve sertifika dosyalarını kümenizdeki tüm düğümlere kopyalar, şifreleme anahtarını ise tüm düğümlere kopyaladığınız yapılandırma dosyanıza eklersiniz.

Consul'un şifreleme uygulaması hakkında daha fazla bilgi için aşağıdakilere bakın:

Consul'ı yükleme ve kimlik bilgileri oluşturma

Apigee mTLS'nin Private Cloud kümenizdeki düğümler arasında güvenli iletişimlerde kimlik doğrulaması yapmak amacıyla kullandığı kimlik bilgilerini oluşturmak için yerel bir Consul ikili programı kullanırsınız. Bu nedenle, kimlik bilgileri oluşturmadan önce Consul'u yönetim makinenize yüklemeniz gerekir.

Consul'u yüklemek ve mTLS kimlik bilgilerini oluşturmak için:

  1. Yönetim makinenize, HashiCorp web sitesinden Consul 1.6.2 ikili programını indirin.
  2. İndirilen arşiv dosyasının içeriğini çıkarın. Örneğin, içerikleri /opt/consul/ konumuna çıkarın.
  3. Yönetim makinenizde aşağıdaki komutu çalıştırarak yeni bir Sertifika Yetkilisi (CA) oluşturun:
    /opt/consul/consul tls ca create

    Consul, sertifika/anahtar çifti olan aşağıdaki dosyaları oluşturur:

    • consul-agent-ca.pem (sertifika)
    • consul-agent-ca-key.pem (anahtar)

    Sertifika ve anahtar dosyaları varsayılan olarak X509v3 olarak kodlanmıştır.

    Daha sonra bu dosyaları kümedeki tüm düğümlere kopyalayacaksınız. Ancak şimdilik yalnızca bu dosyaları düğümlerde nereye yerleştireceğinize karar vermeniz gerekiyor. Her düğümde aynı konumda olmalıdırlar. Örneğin, /opt/apigee/.

  4. Yapılandırma dosyasında, PATH_TO_CA_CERT değerini düğümdeki consul-agent-ca.pem dosyasını kopyalayacağınız konuma ayarlayın. Örneğin:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. PATH_TO_CA_KEY değerini, düğümde consul-agent-ca-key.pem dosyasını kopyalayacağınız konuma ayarlayın. Örneğin:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Aşağıdaki komutu çalıştırarak Consul için bir şifreleme anahtarı oluşturun:
    /opt/consul/consul keygen

    Consul, aşağıdakine benzer rastgele bir dize üretir:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Dizeyi kopyalayın ve yapılandırma dosyanızdaki ENCRYPT_DATA özelliğinin değeri olarak ayarlayın. Örneğin:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Yapılandırma dosyanızı kaydedin.

Aşağıdaki örnekte, bir yapılandırma dosyasındaki mTLS ile ilgili ayarlar (örnek değerlerle) gösterilmektedir:

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

3. Adım: Yapılandırma dosyasını ve kimlik bilgilerini dağıtın

Aşağıdaki dosyaları, scp gibi bir araç kullanarak ZooKeeper'ı çalıştıran düğümlere kopyalayın:

  • Yapılandırma dosyası: Bu dosyanın güncellenmiş sürümünü kopyalayın ve tüm düğümlerde (yalnızca ZooKeeper'ı çalıştıran düğümlerde değil) mevcut sürümü değiştirin.
  • consul-agent-ca.pem: Yapılandırma dosyasında PATH_TO_CA_CERT değeri olarak belirttiğiniz konuma kopyalayın.
  • consul-agent-ca-key.pem: Yapılandırma dosyasında PATH_TO_CA_KEY değeri olarak belirttiğiniz konuma kopyalayın.

Sertifikayı ve anahtar dosyalarını kopyaladığınız konumların, 2. Adım: Consul'u yükleme ve kimlik bilgileri oluşturma adımında yapılandırma dosyasında ayarladığınız değerlerle eşleştiğinden emin olun.

4. Adım: Apigee-mtls'i ilk kullanıma hazırlama

Yapılandırma dosyanızı güncelledikten, dosyayı ve kimlik bilgilerini kümedeki tüm düğümlere kopyaladıktan ve her düğüme apigee-mtls eklentisini yükledikten sonra, her düğümde apigee-mtls bileşenini başlatmaya hazırsınız.

Apigee-mtls'i başlatmak için:

  1. Kümedeki bir düğüme kök kullanıcı olarak giriş yapın. Bu adımları düğümlerde istediğiniz sırada uygulayabilirsiniz.
  2. Aşağıdaki örnekte gösterildiği gibi apigee:apigee kullanıcısını güncellenen yapılandırma dosyasının sahibi yapın:
    chown apigee:apigee config_file
  3. Aşağıdaki komutu çalıştırarak apigee-mtls bileşenini yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (İsteğe bağlı) Kurulumunuzun başarılı olduğunu doğrulamak için aşağıdaki komutu yürütün:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Aşağıdaki komutu çalıştırarak Apigee mTLS'yi başlatın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Apigee mTLS'yi yükledikten sonra bu bileşeni, düğümdeki diğer bileşenlerden önce başlatmanız gerekir.

  6. (Yalnızca Cassandra düğümleri) Cassandra, güvenlik ağı içinde çalışmak için ek bağımsız değişkenler gerektirir. Bu nedenle, her Cassandra düğümünde aşağıdaki komutları çalıştırmanız gerekir:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (Yalnızca Postgres düğümleri) Postgres, güvenlik ağı içinde çalışmak için ek bağımsız değişkenler gerektirir. Sonuç olarak, Postgres düğümlerinde aşağıdakileri yapmanız gerekir:

    (Yalnızca ana)

    1. Postgres ana düğümünde şu komutları yürütün:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (Yalnızca bekleme modunda)

    1. Mevcut Postgres verilerinizi yedekleyin. Apigee mTLS'yi yüklemek için ana/bekleme düğümlerini yeniden başlatmanız gerekir. Böylece veri kaybı yaşanır. Daha fazla bilgi için Postgres için ana/beklemede kopyalama ayarlama bölümüne bakın.
    2. Tüm Postgres verilerini silin:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Postgres'i yapılandırın ve ardından aşağıdaki örnekte gösterildiği gibi Postgres'i yeniden başlatın:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    Çoklu veri merkezi topolojisine yükleme yapıyorsanız yapılandırma dosyası için mutlak bir yol kullanın.

  8. Düğümde kalan Apigee bileşenlerini başlangıç sırasında aşağıdaki örnekte gösterildiği gibi başlatın:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Bu işlemi kümedeki her düğüm için tekrarlayın.
  10. (İsteğe bağlı) Aşağıdaki yöntemlerden birini veya daha fazlasını kullanarak apigee-mtls başlatma işleminin başarılı olduğunu doğrulayın:
    1. IPtables yapılandırmasını doğrulama
    2. Uzak proxy durumunu doğrula
    3. Yeterli çoğunluk durumunu doğrulayın

    Bu yöntemlerin her biri, Yapılandırmanızı doğrulama bölümünde açıklanmıştır.

Mevcut Apigee-mtls yapılandırmasını değiştirme

Mevcut bir apigee-mtls yapılandırmasını özelleştirmek için apigee-mtls uygulamasını kaldırıp yeniden yüklemeniz gerekir.

Mevcut bir Apigee mTLS yapılandırmasını değiştirirken bu noktayı tekrarlamak gerekirse:

  • Bir yapılandırma dosyasını değiştirirseniz önce apigee-mtls uygulamasını kaldırıp setup veya configure dosyasını yeniden çalıştırmanız gerekir:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • setup veya configure uygulamasını kaldırıp tek bir düğümde değil, kümedeki tüm düğümlerde yeniden çalıştırmanız gerekir.