Bu belgede, Cassandra veritabanında depolanan geliştirici uygulaması tüketici gizli anahtarlarının (istemci kimlik bilgileri) şifrelemesinin 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 aktif olmayan 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 işlemci 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şturma işlemini 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, KEK özelliğinin nasıl etkinleştirileceği açıklanmaktadır. Bu özellik, Apigee'nin Cassandra veritabanında depolanan geliştirici uygulaması tüketici gizli anahtarlarını şifrelemek için kullanılan gizli anahtarları şifrelemesine olanak tanır.
Varsayılan olarak, veritabanındaki mevcut değerler değişmeden kalır (düz metin olarak) 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 dokümandaki talimatlarda açıklandığı gibi, her mesaj işlemci ve yönetim sunucusu düğümüne, yerel yapılandırma dosyasının referans verebileceği bir anahtar deposu yerleştirilmelidir. Ancak anahtar deposunun bir kopyasını güvenli bir yerde ve yedek olarak saklamak 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 anahtarı depolayacak bir anahtar deposu oluşturmak üzere aşağıdaki komutu yürütün. Komutu tam olarak gösterildiği şekilde 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. Yönetim sunucusunu ve mesaj işlemcisini yapılandırırken bu şifreyi kullanacaksınız.
Bu komut, takma adı KEYSTORE_NAME olan 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. Birden fazla düğüme yönetim sunucuları yüklediyseniz 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.
- Birden fazla düğüme yönetim sunucusu yüklediyseniz her yönetim sunucusu düğümünde yukarıdaki 1-4. adımları 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şleyicileri 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 yüklenmiş mesaj işlemcileriniz varsa her mesaj işlemci 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 işlemci 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 dokümanda daha önce açıklandığı gibi tüm mesaj işlemci 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 etmesi için allowFallback değerini 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 bkz. Yapılandırma özellikleri için ortam değişkenlerini kullanma. |