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:
- Ş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.
- (İ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. 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
- 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
/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ı olarakKEYSTORE_PASSWORD
ile aynı olabileceğini unutmayın.- 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.
- 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:
- 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.
- İ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. 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
- Dosyanın
apigee
kullanıcısı tarafından okunabildiğinden emin olun:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
- 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ğerininKEYSTORE_PASSWORD
ile aynı olabileceğini unutmayın anahtar deposunu oluşturmak için kullanılan araca bağlıdır. - 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.
- 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. |