Apigee mTLS'yi yapılandırma

apigee-mtls bileşenini kümedeki her düğüme yükledikten sonra yapılandırmanız ve başlatmanız gerekir. Bunu, bir sertifika/anahtar çifti oluşturarak ve yönetim makinenizde yapılandırma dosyasını güncelleyerek yapabilirsiniz. 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'yi yapılandırma (ilk kurulumdan 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 edinmek için Mevcut bir apigee-mtls yapılandırmasını değiştirme başlıklı makaleyi inceleyin. Birden fazla veri merkezini yapılandırma hakkında bilgi edinmek için Apigee mTLS için birden fazla veri merkezini yapılandırma başlıklı makaleyi inceleyin.

Yapılandırmayla ilgili genel süreç şu şekildedir:apigee-mtls

  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ükleyip kimlik bilgileri oluşturun: Consul'u yükleyin ve TLS kimlik bilgilerini oluşturmak için kullanın (yalnızca bir kez).

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

    1. Kimlik bilgisi bilgilerini ekleme
    2. Kümenin topolojisini tanımlama

    Mevcut kimlik bilgilerinizi kullanabileceğinizi veya 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üncellenmiş yapılandırma dosyasını kümenizdeki tüm düğümlere dağıtın.
  4. Apigee-mtls ilk kullanıma hazır: 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 genel bilgi için Yapılandırma dosyası oluşturma başlıklı makaleyi inceleyin.

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

Yapılandırma dosyasına atıfta bulunan komutlar, her düğümde depolama konumuna bağlı olarak konumunun değişken olduğunu belirtmek için "config_file" parametresini 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 özelliğin değerini yapılandırmanıza uygun şekilde ayarlayın.

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

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

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

    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 Cassandra sunucularının kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    PG_MTLS_HOSTS Postgres sunucularının kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    RT_MTLS_HOSTS Kümede yönlendiricilerin barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    MTLS_ENCAPSULATE_LDAP İleti İşleyen 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 işleyicilerin kümede barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    QP_MTLS_HOSTS Kümede Qpid sunucularının barındırıldığı özel ana makine IP adreslerinin boşlukla ayrılmış listesi.
    ENABLE_SIDECAR_PROXY Cassandra ve Postgres'in hizmet örgüsünü bilip bilmeyeceği belirlenir.

    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ükleyin ve kimlik bilgilerini oluşturun bölümündeki 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'u yükleyin ve kimlik bilgilerini oluşturun bölümünde 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 kodlu olmalıdır.

    PATH_TO_CA_KEY Anahtar dosyasının düğümdeki konumu. Bu dosyayı 2. Adım: Consul'u yükleyin ve kimlik bilgilerini oluşturun bölümünde 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 kodlu olmalıdır.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Özel sertifika oluşturduğunuzda sertifikanın geçerlilik süresi.

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

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

  3. ENABLE_SIDECAR_PROXY özelliğinin "y" olarak ayarlandığından emin olun.
  4. Ana makineyle ilgili mülklerdeki IP adreslerini güncelleyin. Her düğümden bahsederken 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 değerlerini ayarlamadıysanız

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

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

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

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

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

  • Bu bölümde açıklandığı gibi Consul'u kullanarak kendi CA'nızı oluşturun (önerilen)
  • Apigee mTLS ile mevcut bir CA'nın kimlik bilgilerini kullanma (gelişmiş)

Kimlik bilgileri hakkında

Kimlik bilgileri aşağıdakilerden oluşur:

  • Sertifika: Her düğümde barındırılan TLS sertifikası
  • Anahtar: Her düğümde barındırılan TLS ortak anahtarı
  • Dedikodu mesajı: Base64 kodlu bir ş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 kopyalarsınız ve şifreleme anahtarını, tüm düğümlere de kopyaladığınız yapılandırma dosyanıza eklersiniz.

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

Consul'u yükleyin ve kimlik bilgisi oluşturun

Apigee mTLS'nin, Özel Bulut kümenizdeki düğümler arasındaki güvenli iletişimi doğrulamak için kullandığı kimlik bilgilerini oluşturmak üzere yerel bir Consul ikili dosyası kullanırsınız. Bu nedenle, kimlik bilgileri oluşturabilmek için önce yönetim makinenize Consul'u yüklemeniz gerekir.

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

  1. Yönetim makinenizde, HashiCorp web sitesinden Consul 1.6.2 ikili dosyasını indirin.
  2. İndirilen arşiv dosyasının içeriğini ayıklayın. Örneğin, içeriği /opt/consul/ içine aktarın.
  3. Yönetim makinenizde aşağıdaki komutu yürüterek 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 kodlamalıdır.

    Daha sonra bu dosyaları kümedeki tüm düğümlere kopyalayacaksınız. Ancak şu anda bu dosyaları düğümlerde yalnızca nereye yerleştireceğinize karar vermeniz gerekir. 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 yürüterek Consul için bir şifreleme anahtarı oluşturun:
    /opt/consul/consul keygen

    Consul, aşağıdakine benzer rastgele bir dize döndürür:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Dizeyi kopyalayıp yapılandırma dosyanızdaki ENCRYPT_DATA mülkünün 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ında mTLS ile ilgili ayarlar (örnek değerlerle birlikte) 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 yalnızca ZooKeeper çalıştıran düğümler değil, tüm düğümlerdeki 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.

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

4. Adım: apigee-mtls'yi başlatın

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 yükledikten sonra her düğümde apigee-mtls bileşenini ilk kullanıma hazırlamaya hazırsınız demektir.

apigee-mtls'yi başlatmak için:

  1. Kök kullanıcı olarak kümedeki bir düğüme giriş yapın. Düğümler üzerinde bu adımları istediğiniz sırayla 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. Şu 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 yürüterek 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'nın güvenlik ağında çalışabilmesi için ek bağımsız değişkenler gerekir. Sonuç olarak, her Cassandra düğümünde aşağıdaki komutları yürütmeniz 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'in güvenlik ağında çalışması için ek bağımsız değişkenler gerekir. Bu nedenle, Postgres düğümlerinde şunları 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 modu)

    1. Mevcut Postgres verilerinizi yedekleyin. Apigee mTLS'yi yüklemek için ana/beklemedeki düğümleri yeniden başlatmanız gerekir. Böylece veri kaybı yaşanabilir. Daha fazla bilgi için Postgres için ana/yedek çoğaltma ayarlama başlıklı makaleyi inceleyin.
    2. Tüm Postgres verilerini silme:
      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

    Birden fazla veri merkezi topolojisine yüklüyorsanız yapılandırma dosyası için mutlak bir yol kullanın.

  8. Aşağıdaki örnekte gösterildiği gibi, düğümdeki kalan Apigee bileşenlerini başlatma sırasına göre 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şlatmanın başarılı olduğunu doğrulayın:
    1. iptables yapılandırmasını doğrulama
    2. Uzaktan proxy durumunu doğrulama
    3. Çoğunluğun sağlanıp sağlanmadığını doğrulama

    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ı tekrar belirtmek isteriz:

  • Bir yapılandırma dosyasını değiştirirseniz önce apigee-mtls'ü kaldırmanız ve setup veya configure'yi 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 hizmetini tek bir düğümde değil, kümedeki tüm düğümlerde kaldırıp yeniden çalıştırmanız gerekir.