Bu belgede, Cassandra veritabanında depolanan geliştirici uygulaması tüketici gizli anahtarlarının (istemci kimlik bilgileri) şifrelenmesinin nasıl etkinleştirileceği açıklanmaktadır.
Genel Bakış
Geleneksel olarak, Private Cloud için Apigee Edge, anahtar değer eşlemesi (KVM) verileri ve OAuth erişim jetonları için isteğe bağlı şifreleme sağlar.
Aşağıdaki tabloda, Apigee for Private Cloud'da bekleyen veriler için şifreleme seçenekleri açıklanmaktadır:
| Varlık | Şifreleme varsayılan olarak etkindir | Şifreleme isteğe bağlı olarak kullanılabilir | İ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 jetonları karma oluşturma bölümüne bakın. |
| Geliştirici uygulaması tüketici gizli anahtarları | 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 tüm Mesaj İşleyici ve yönetim sunucusu düğümlerinde aşağıdaki görevleri gerçekleştirmeniz gerekir:
- Anahtar şifreleme anahtarını (KEK) depolamak için bir anahtar deposu oluşturun. Apigee, verilerinizi şifrelemek için gereken gizli anahtarları şifrelemek üzere bu şifrelenmiş anahtarı 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 dokümanda açıklanmıştır.
Anahtar şifreleme özelliği hakkında bilmeniz gerekenler
Bu belgedeki adımlarda, Apigee'nin geliştirici uygulaması tüketici sırlarını şifrelemek için kullanılan gizli anahtarları Cassandra veritabanında dinlenme durumunda depolandıklarında şifrelemesine olanak tanıyan KEK özelliğinin nasıl etkinleştirileceği açıklanmaktadır.
Veritabanındaki mevcut değerler varsayılan olarak değişmeden (düz metin olarak) kalır ve eskisi gibi çalışmaya devam eder.
Şifrelenmemiş bir varlık üzerinde herhangi bir yazma işlemi gerçekleştirirseniz işlem kaydedildiğinde varlık şifrelenir. Örneğin, şifrelenmemiş bir jetonu iptal edip daha sonra onaylarsanız yeni onaylanan jeton şifrelenir.
Anahtarları güvende tutma
KEK'in depolandığı anahtar deposunun bir kopyasını güvenli bir yerde sakladığınızdan emin olun. Anahtar deposunun bir kopyasını kaydetmek için kendi güvenli mekanizmanızı kullanmanızı öneririz. Bu belgedeki talimatlarda açıklandığı gibi, yerel yapılandırma dosyasının referans verebileceği her mesaj işlemcisi ve yönetim sunucusu düğümüne bir anahtar deposu yerleştirilmelidir. Ancak, güvenli bir şekilde saklamak ve yedek olarak kullanmak için anahtar deposunun bir kopyasını başka bir yerde saklamanız da önemlidir.
Anahtar şifrelemeyi etkinleştirme
Tüketici gizli anahtarı şifrelemesi için aşağıdaki adımları uygulayın:
Ön koşullar
Bu belgedeki adımları uygulamadan önce aşağıdaki koşulları karşılamanız gerekir:
- Apigee Edge for Private Cloud 4.50.00.10 veya sonraki bir sürümü yüklemeniz ya da bu sürüme yükseltmeniz gerekir.
- Apigee Edge for Private Cloud yöneticisi olmanız gerekir.
1. adım: Anahtar deposu oluşturun
Anahtar şifreleme anahtarını (KEK) barındıracak bir anahtar deposu oluşturmak için aşağıdaki adımları uygulayın:
- KEK'yi şifrelemek için kullanılacak bir anahtarı depolamak üzere anahtar deposu oluşturmak için aşağıdaki komutu yürütün. Komutu tam olarak gösterildiği şekilde girin. (İstediğiniz keystore adını girebilirsiniz):
keytool -genseckey -alias KEYSTORE_NAME -keyalg AES -keysize 256 \ -keystore kekstore.p12 -storetype PKCS12
İstendiğinde bir şifre girin. Yönetim sunucusunu ve mesaj işlemcisini yapılandırırken bu şifreyi sonraki bölümlerde kullanacaksınız.
Bu komut, KEYSTORE_NAME diğer adıyla bir anahtar içeren kekstore.p12 anahtar deposu dosyasını oluşturur.
- (İsteğe bağlı) Aşağıdaki komutla dosyanın doğru şekilde oluşturulduğunu doğrulayın. Dosya doğruysa 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. Yönetim sunucularınız birden fazla düğüme yüklendiyse bu adımları her düğümde tekrarlamanız gerekir.
- 1. adımda oluşturduğunuz anahtar deposu dosyasını yönetim sunucusu düğümündeki bir dizine (ör.
/opt/apigee/customer/application) kopyalayın. Örneğin:cp certs/kekstore.p12 /opt/apigee/customer/application
- Dosyanın
apigeekullanı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öğesine aşağıdaki özellikleri ekleyin. Dosya yoksa oluşturun. Özellik dosyası referansı bölümüne de bakın.
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
Anahtar deposunu oluşturmak için kullanılan araca bağlı olarak
KEK_PASSWORDileKEYSTORE_PASSWORDaynı olabilir.- 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_readykomutu aşağıdaki mesajı döndürür:Checking if management-server is up: management-server is up.
- Yönetim sunucularınız birden fazla düğüme yüklendiyse yukarıdaki 1-4 arasındaki adımları her yönetim sunucusu düğümünde tekrarlayın.
3. adım: Geliştirici uygulaması oluşturun
Yönetim sunucuları güncellendiğine göre, istemci kimlik bilgileri verilerini şifrelemek için kullanılan anahtarın oluşturulmasını tetikleyecek bir geliştirici uygulaması oluşturmanız gerekir:
- Veri şifreleme anahtarı (KEK) oluşturulmasını tetiklemek için bir geliştirici uygulaması oluşturun. Adımlar için Uygulama kaydetme başlıklı makaleyi inceleyin.
- İsterseniz geliştirici uygulamasını silebilirsiniz. Şifreleme anahtarı oluşturulduktan sonra bu dosyayı saklamanız gerekmez.
4. adım: Mesaj işlemcileri yapılandırın
Mesaj işlemcilerde şifreleme etkinleştirilene kadar çalışma zamanı istekleri, şifrelenmiş kimlik bilgilerini işleyemez.
- 1. adımda oluşturduğunuz anahtar deposu dosyasını, mesaj işleyici düğümündeki bir dizine (ör.
/opt/apigee/customer/application) kopyalayın. Örneğin:cp certs/kekstore.p12 /opt/apigee/customer/application
- Dosyanın
apigeekullanıcısı tarafından okunabildiğinden emin olun:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
/opt/apigee/customer/application/message-processor.propertiesöğesine aşağıdaki özellikleri ekleyin. Dosya yoksa oluşturun. Özellik dosyası referansı bölümüne de bakın.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
Anahtar deposunu oluşturmak için kullanılan araca bağlı olarak
KEK_PASSWORDileKEYSTORE_PASSWORDaynı olabilir.- 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şleyici mesajları işlemeye hazır olduğunda
wait_for_readykomutu aşağıdaki mesajı döndürür:Checking if message-processor is up: message-processor is up.
- Birden fazla düğüme Mesaj İşleyici yüklediyseniz her Mesaj İşleyici düğümünde 1-4 arasındaki adımları tekrarlayın.
Özet
Şu andan itibaren oluşturacağınız tüm geliştirici uygulamalarının kimlik bilgisi gizli anahtarı, Cassandra veritabanında şifrelenir.
Yapılandırma özellikleri için ortam değişkenlerini kullanma
Alternatif olarak, ortam değişkenlerini kullanarak aşağıdaki mesaj işlemci ve yönetim sunucusu yapılandırma özelliklerini ayarlayabilirsiniz. Ayarlanırsa ortam değişkenleri, Mesaj İşleyici veya yönetim sunucusu yapılandırma dosyasında ayarlanan özellikleri geçersiz kılar.
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 mesaj işlemci ve yönetim sunucusu düğümlerindeki yapılandırma dosyalarından bu yapılandırma özelliklerini çıkarabilirsiniz. Bu özellikler yok sayılır:
conf_keymanagement_kmscred.encryption.keystore.pass conf_keymanagement_kmscred.encryption.kek.pass
Tesis dosyası referansı
Bu bölümde, bu belgede daha önce açıklandığı gibi tüm Mesaj İşleyici ve yönetim sunucusu düğümlerinde ayarlamanız gereken yapılandırma özellikleri açıklanmaktadır.
| Mülk | Varsayılan | Açıklama |
conf_keymanagement_kmscred.encryption.enabled
|
false
|
Anahtar şifrelemeyi etkinleştirmek için true olmalıdır.
|
conf_keymanagement_kmscred.encryption.allowFallback
|
false
|
Mevcut düz metin kimlik bilgilerinizin çalışmaya devam etmesini sağlamak için allowFallback'i true olarak ayarlayın.
|
conf_keymanagement_kmscred.encryption.keystore.path
|
Yok | Mesaj işlemci veya yönetim sunucusu düğümünde KEK anahtar deposunun yolunu belirtin. 2. adım: Yönetim sunucusunu yapılandırma ve 3. adım: Mesaj işlemcileri yapılandırma bölümlerini inceleyin. |
conf_keymanagement_kmscred.encryption.kek.alias
|
Yok | KEK'in anahtar deposunda saklandığı 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. Ayrıca bkz. Yapılandırma özellikleri için ortam değişkenlerini kullanma. |
conf_keymanagement_kmscred.encryption.kek.pass
|
Yok | Bu özellikleri ayarlamak için ortam değişkenleri kullanıyorsanız isteğe bağlıdır. Ayrıca Yapılandırma özellikleri için ortam değişkenlerini kullanma başlıklı makaleyi de inceleyin. |