Gizli anahtar şifrelemesini etkinleştirme

Bu dokümanda, şifrelemenin nasıl etkinleştirileceği açıklanmaktadır. geliştirici uygulaması için depolanan tüketici sırları (istemci kimlik bilgileri) dizin işlevi görür.

Genel Bakış

Private Cloud için Apigee Edge geleneksel olarak anahtar/değer eşlemesi için isteğe bağlı şifreleme sağladı (KVM) verilerini ve OAuth erişim jetonlarını içerir.

Aşağıdaki tabloda Private Cloud için Apigee'deki aktif olmayan verilere yönelik şifreleme seçenekleri açıklanmaktadır:

Varlık Şifreleme varsayılan olarak etkindir İsteğe bağlı olarak şifreleme mevcuttur İlgili belgeler
KVM'ler Hayır Evet Şifrelenmiş KVM'ler hakkında başlıklı makaleyi inceleyin.
OAuth erişim jetonları Hayır Evet Ek güvenlik için jetonlardan karma oluşturma başlıklı makaleyi inceleyin.
Geliştirici uygulaması tüketici sırları Hayır Evet Etkinleştirmek için bu dokümandaki yapılandırma adımlarını uygulayın.

İstemci kimlik bilgilerinin şifrelenmesini etkinleştirmek için aşağıdaki görevleri tüm mesaj işlemcisi ve yönetim sunucusu düğümleri:

  • Depolayacak bir anahtar deposu oluşturun: Anahtar şifreleme anahtarı (KEK) olarak değiştirebilirsiniz. Apigee, bu şifrelenmiş anahtarı verilerinizi şifrelemek için gereken gizli anahtarları şifrelemek amacıyla kullanır.
  • Tüm yönetim sunucusu ve mesaj işlemci düğümlerindeki yapılandırma özelliklerini düzenleyin.
  • Anahtar oluşturmayı tetiklemek için bir geliştirici uygulaması oluşturun.
  • Düğümleri yeniden başlatın.

Bu görevler bu belgede açıklanmıştır.

Anahtar hakkında bilmeniz gerekenler şifreleme özelliği

Bu belgedeki adımlarda, Apigee'nin geliştirici uygulamasını şifrelemek için kullanılan gizli anahtarlar depolanan tüketici sırlarını saklamanızı sağlar.

Varsayılan olarak, veritabanında mevcut olan değerler değişmeden (düz metin) kalır ve eskisi gibi çalışmaya devam ediyor.

Şifrelenmemiş bir varlık üzerinde yazma işlemi gerçekleştirirseniz bu varlık, işlemi kaydedilir. Örneğin, şifrelenmemiş bir jetonu iptal edip daha sonra yeni onaylanan jeton şifrelenir.

Anahtarları güvende tutma

KEK'nin depolandığı anahtar deposunun bir kopyasını güvenli bir yerde sakladığınızdan emin olun. Şunu kullanmanızı öneririz: anahtar deposunun bir kopyasını kaydetmek için güvenli bir mekanizma kullanabilirsiniz. Bu belgedeki talimatlarda açıklandığı üzere, yerel iletinin sağlandığı her mesaj işlemcisi ve yönetim sunucusu düğümüne bir anahtar deposu referans olabilir. Ancak proje boyunca olarak saklanmasını ve yedek olarak saklanmasını sağlayan anahtar deposunu başka bir yere taşımanızı sağlar.

Anahtar şifrelemeyi etkinleştirme

Tüketici gizli anahtarı şifrelemesi için şu adımları uygulayın:

Ön koşullar

Bu belgedeki adımları uygulamadan önce şu gereksinimleri karşılamanız gerekir:

  • Private Cloud 4.50.00.10 veya sonraki sürümleri için Apigee Edge'i yüklemeniz veya daha yeni bir sürüme geçmeniz gerekir.
  • Private Cloud için Apigee Edge yöneticisi olmanız gerekir.

1. Adım: Anahtar deposu oluşturun

Anahtar şifreleme anahtarını (KEK) saklayacak bir anahtar deposu oluşturmak için şu adımları uygulayın:

  1. Şu işlemler için kullanılacak bir anahtarı depolayacak bir anahtar deposu oluşturmak üzere aşağıdaki komutu yürütün: şifrelemeyi göstereceğim. Komutu tam olarak gösterildiği gibi girin. (İstediğiniz anahtar deposu adını girebilirsiniz):
    keytool -genseckey -alias KEYSTORE_NAME -keyalg AES -keysize 256 \
    -keystore kekstore.p12 -storetype PKCS12

    İstendiğinde bir şifre girin. Bu şifreyi, yönetim sunucusunu ve mesaj işleyiciyi yapılandırırken sonraki bölümlerde kullanacaksınız.

    Bu komut, kekstore.p12 takma adı KEYSTORE_NAME.

  2. (İsteğe bağlı) Aşağıdaki komutla dosyanın doğru şekilde oluşturulduğunu doğrulayın. Dosya doğru ise komut, KEYSTORE_NAME takma adına sahip bir anahtar döndürür:
    keytool -list -keystore kekstore.p12

2. Adım: Yönetim sunucusunu yapılandırın

Ardından yönetim sunucusunu yapılandırın. Birden fazla düğüme yönetim sunucusu yüklediyseniz bu adımları her düğümde tekrarlamanız gerekir.

  1. 1. Adım'da oluşturduğunuz anahtar deposu dosyasını yönetim sunucusu düğümündeki /opt/apigee/customer/application gibi bir dizine kopyalayın. Örnek:
    cp certs/kekstore.p12 /opt/apigee/customer/application
  2. Dosyanın apigee kullanıcısı tarafından okunabildiğinden emin olun:
    chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
    chmod 400 /opt/apigee/customer/application/kekstore.p12
  3. /opt/apigee/customer/application/management-server.properties alanına aşağıdaki özellikleri ekleyin. Dosya yoksa, oluşturun. Ayrıca Mülk dosyası referansı başlıklı makaleyi inceleyin.
    conf_keymanagement_kmscred.encryption.enabled=true
    
    # Fallback is true to ensure your existing plaintext credentials continue to work
    conf_keymanagement_kmscred.encryption.allowFallback=true
    
    conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE
    conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME
    
    # These could alternately be set as environment variables. These variables should be
    # accessible to Apigee user during bootup of the Java process. If environment
    # variables are specified, you can skip the password configs below.
    # KMSCRED_ENCRYPTION_KEYSTORE_PASS=
    # KMSCRED_ENCRYPTION_KEK_PASS=
    See also Using environment variables for configuration properties.
    
    conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD
    conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD

    KEK_PASSWORD değerinin, anahtar deposu oluşturmak için kullanılan araca bağlı olarak KEYSTORE_PASSWORD ile aynı olabileceğini unutmayın.

  4. Aşağıdaki komutları kullanarak yönetim sunucusunu yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server wait_for_ready

    Yönetim sunucusu hazır olduğunda wait_for_ready komutu aşağıdaki mesajı döndürür:

    Checking if management-server is up: management-server is up.
    
  5. Birden fazla düğümde yönetim sunucuları yüklüyse her yönetimde yukarıda belirtilen 1-4 arası adımları tekrarlayın sunucu düğümüne bağlı olarak değişir.

3. Adım: Geliştirici uygulaması oluşturun

Yönetim sunucuları güncellendiğine göre artık oluşturma işlemini tetiklemek için bir geliştirici uygulaması oluşturmanız gerekiyor. istemci kimlik bilgisi verilerini şifrelemek için kullanılan anahtara ait verileri içerir:

  1. Veri şifreleme anahtarı (KEK) oluşturulmasını tetiklemek için bir geliştirici uygulaması oluşturun. Adımlar için Uygulama kaydetme adlı makaleyi inceleyin.
  2. İsterseniz geliştirici uygulamasını silebilirsiniz. Şifreleme tamamlandıktan sonra saklamanız gerekmez. anahtarı oluşturulur.

4. adım: İleti işleyicileri yapılandırın

Şifreleme, ileti işleyicilerde etkinleştirilene kadar çalışma zamanındaki istekler şifrelenmiş kimlik bilgilerini işleyemez.

  1. 1. adımda oluşturduğunuz anahtar mağazası dosyasını, mesaj işleyici düğümündeki bir dizine (ör. /opt/apigee/customer/application) kopyalayın. Örnek:
    cp certs/kekstore.p12 /opt/apigee/customer/application
  2. Dosyanın apigee kullanıcısı tarafından okunabildiğinden emin olun:
    chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
  3. Aşağıdaki özellikleri /opt/apigee/customer/application/message-processor.properties öğesine ekleyin. Dosya yoksa, oluşturun. Mülk dosya referansı başlıklı makaleyi de inceleyin.
    conf_keymanagement_kmscred.encryption.enabled=true
    
    # Fallback is true to ensure your existing plaintext credentials continue to work
    conf_keymanagement_kmscred.encryption.allowFallback=true
    
    conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE
    conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME
    
    # These could alternately be set as environment variables. These variables should be
    # accessible to Apigee user during bootup of the Java process. If environment
    # variables are specified, you can skip the password configs below.
    # KMSCRED_ENCRYPTION_KEYSTORE_PASS=
    # KMSCRED_ENCRYPTION_KEK_PASS=
    See also Using environment variables for configuration properties.
    
    
    conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD
    conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD

    KEK_PASSWORD değerinin KEYSTORE_PASSWORD ile aynı olabileceğini unutmayın anahtar deposunu oluşturmak için kullanılan araca bağlıdır.

  4. Aşağıdaki komutları kullanarak mesaj işlemcisini yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready

    Mesaj işlemcisi, wait_for_ready komutunu kullanarak aşağıdaki mesajı döndürür: , mesajları işlemeye hazır:

    Checking if message-processor is up: message-processor is up.
  5. Birden fazla düğümde mesaj işlemcileri yüklüyse her düğümde 1-4 arası adımları tekrarlayın mesaj işlemcisi düğümünü gösterir.

Özet

Bundan sonra oluşturacağınız tüm geliştirici uygulamalarının kimlik bilgisi gizli bilgileri şu adreste şifrelenir: Cassandra veritabanında saklanır.

Şunun için ortam değişkenlerini kullanma: yapılandırma özellikleri

Alternatif olarak aşağıdaki mesaj işlemcisi ve yönetim sunucusu yapılandırmasını ayarlayabilirsiniz: mülklerini nasıl kullanacağınızı göstereceğim. Ayarlanırsa ortam değişkenleri özellikleri geçersiz kılar yapılandırma dosyasında ayarlanmış olması gerekir.

conf_keymanagement_kmscred.encryption.keystore.pass=
conf_keymanagement_kmscred.encryption.kek.pass=

İlgili ortam değişkenleri şunlardır:

export KMSCRED_ENCRYPTION_KEYSTORE_PASS=KEYSTORE_PASSWORD
export KMSCRED_ENCRYPTION_KEK_PASS=KEK_PASSWORD

Bu ortam değişkenlerini ayarlarsanız bu yapılandırma özelliklerini yoksayılacakları için ileti işlemcisi ve yönetim sunucusu düğümlerindeki yapılandırma dosyalarını kullanabilirsiniz:

conf_keymanagement_kmscred.encryption.keystore.pass
conf_keymanagement_kmscred.encryption.kek.pass

Özellik dosyası referansı

Bu bölümde, tüm ileti işlemcilerinde ayarlamanız gereken yapılandırma özellikleri açıklanmaktadır ve yönetim sunucusu düğümlerini bu belgede açıklandığı gibi yönetebilirsiniz.

Özellik Varsayılan Açıklama
conf_keymanagement_kmscred.encryption.enabled false Anahtar şifrelemenin etkinleştirilmesi için true olmalıdır.
conf_keymanagement_kmscred.encryption.allowFallback false Mevcut düz metin kimlik bilgilerinizin çalışmaya devam etmesi için allowFallback değerini true olarak ayarlayın.
conf_keymanagement_kmscred.encryption.keystore.path Yok İleti işlemcisi veya yönetim sunucusu düğümündeki KEK anahtar deposunun yolunu sağlayın. Bkz. 2. Adım: Yönetimi yapılandırın sunucu başlıklı makaleyi inceleyin ve 3. Adım: Mesaj işlemcilerini yapılandırın.
conf_keymanagement_kmscred.encryption.kek.alias Yok KEK'nin anahtar deposunda depolandığı takma ad.
conf_keymanagement_kmscred.encryption.keystore.pass Yok Bu özellikleri ayarlamak için ortam değişkenleri kullanıyorsanız isteğe bağlıdır. Şu kaynakları da inceleyin Ortam kullanma değişkenleri ile birlikte kullanılamaz.
conf_keymanagement_kmscred.encryption.kek.pass Yok Bu özellikleri ayarlamak için ortam değişkenlerini kullanıyorsanız isteğe bağlıdır. Şu kaynakları da inceleyin Ortam kullanma değişkenleri ile birlikte kullanılamaz.