Azure Key Vault ile Azure Cosmos DB hesabınız için müşteri tarafından yönetilen anahtarları yapılandırma
ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa
Azure Cosmos DB hesabınızda depolanan veriler, Microsoft tarafından yönetilen anahtarlarla (hizmet tarafından yönetilen anahtarlar) otomatik ve sorunsuz bir şekilde şifrelenir. İsteğe bağlı olarak, yönettiğiniz anahtarlarla (müşteri tarafından yönetilen anahtarlar veya CMK) ikinci bir şifreleme katmanı eklemeyi seçebilirsiniz.
Müşteri tarafından yönetilen anahtarları Azure Key Vault'ta depolamanız ve müşteri tarafından yönetilen anahtarlarla etkinleştirilen her Azure Cosmos DB hesabı için bir anahtar sağlamanız gerekir. Bu anahtar, söz konusu hesapta depolanan tüm verileri şifrelemek için kullanılır.
Not
Mevcut Azure Cosmos DB hesaplarınızda müşteri tarafından yönetilen anahtarları etkinleştirmek istiyorsanız daha fazla ayrıntı için buradaki bağlantıya bakabilirsiniz
Uyarı
Aşağıdaki alan adları, Müşteri tarafından yönetilen anahtarlar kullanılarak hesaplardaki Cassandra API tablolarında ayrılmıştır:
id
ttl
_ts
_etag
_rid
_self
_attachments
_epk
Müşteri tarafından yönetilen anahtarlar etkinleştirilmediğinde, yalnızca ile __sys_
başlayan alan adları ayrılır.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Azure Cosmos DB kaynak sağlayıcısını kaydetme
Microsoft.DocumentDB kaynak sağlayıcısı henüz kayıtlı değilse, bu sağlayıcıyı ilk adım olarak kaydetmeniz gerekir.
Azure portalında oturum açın, Azure aboneliğinize gidin ve Ayarlar sekmesinde Kaynak sağlayıcıları'nı seçin:
Microsoft.DocumentDB kaynak sağlayıcısını arayın. Kaynak sağlayıcısının zaten kayıtlı olarak işaretlenip işaretlenmediğini doğrulayın. Aksi takdirde kaynak sağlayıcısını seçin ve Kaydet'i seçin:
Azure Key Vault örneğinizi yapılandırma
Önemli
Azure Key Vault örneğinize genel ağ erişimi üzerinden erişilebilir veya güvenilen Microsoft hizmetleri güvenlik duvarını atlamasına izin verilmelidir. Özel uç noktalar aracılığıyla özel olarak erişilebilen bir örnek, müşteri tarafından yönetilen anahtarlarınızı barındırmak için kullanılamaz.
Azure Cosmos DB ile müşteri tarafından yönetilen anahtarları kullanmak için Azure Key Vault örneğinde şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız iki özellik ayarlamanız gerekir: Geçici Silme ve Temizleme Koruması.
Yeni bir Azure Key Vault örneği oluşturursanız oluşturma sırasında şu özellikleri etkinleştirin:
Mevcut bir Azure Key Vault örneği kullanıyorsanız, Azure portalındaki Özellikler bölümüne bakarak bu özelliklerin etkinleştirildiğini doğrulayabilirsiniz. Bu özelliklerden herhangi biri etkinleştirilmediyse, aşağıdaki makalelerden birinde "Geçici silmeyi etkinleştirme" ve "Temizleme Korumasını Etkinleştirme" bölümlerine bakın:
Tercih edilen güvenlik modelini seçme
Temizleme koruması ve geçici silme etkinleştirildikten sonra, erişim ilkesi sekmesinde kullanmak üzere tercih ettiğiniz izin modelini seçebilirsiniz. Erişim ilkeleri varsayılan olarak ayarlanır, ancak Azure rol tabanlı erişim denetimi de desteklenir.
Cosmos DB'nin şifreleme anahtarınızı kullanmasına izin vermek için gerekli izinler verilmelidir. Bu adım, Azure Key Vault'un Erişim ilkelerini mi yoksa rol tabanlı erişim denetimini mi kullandığına bağlı olarak değişir.
Not
Aynı anda yalnızca bir güvenlik modelinin etkin olabileceğine dikkat etmek önemlidir, bu nedenle Azure Key Vault erişim ilkelerini kullanacak şekilde ayarlandıysa rol tabanlı erişim denetiminin tohumlanması gerekmez ve tam tersi de geçerlidir)
Erişim ilkesi ekleme
Bu varyasyonda, uygun izinlere sahip bir erişim ilkesi oluşturmak için Azure Cosmos DB sorumlusunu kullanın.
Azure portalından, şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız Azure Key Vault örneğine gidin. Sol menüden Erişim İlkeleri'ni seçin:
+ Erişim İlkesi Ekle'yi seçin.
Anahtar izinleri açılan menüsünde Al, Anahtarı Kaldır ve Anahtar Sarmala izinlerini seçin:
Sorumlu seç'in altında Hiçbiri seçilmedi'yi seçin.
Azure Cosmos DB sorumlusunu arayın ve seçin (bulmayı kolaylaştırmak için uygulama kimliğine göre de arama yapabilirsiniz:
00001111-aaaa-2222-bbbb-3333cccc4444
uygulama kimliğinin11112222-bbbb-3333-cccc-4444dddd5555
bulunduğu Azure Kamu bölgeler dışında herhangi bir Azure bölgesi için).İpucu
Bu, Azure Cosmos DB birinci taraf kimliğini Azure Key Vault erişim ilkenize kaydeder. Azure Cosmos DB sorumlusu listede yoksa Microsoft.DocumentDB kaynak sağlayıcısını yeniden kaydetmeniz gerekebilir.
En alttaki Seç'i seçin.
Yeni erişim ilkesini eklemek için Ekle'yi seçin.
Tüm değişiklikleri kaydetmek için Key Vault örneğinde Kaydet'i seçin.
Rol tabanlı erişim denetimi rolleri ekleme
Azure portalından, şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız Azure Key Vault örneğine gidin. Soldaki menüden Erişim denetimi (IAM) seçeneğini belirleyin ve Bu kaynağa erişim izni ver'i seçin.
Key Vault Yöneticisi rolünü arayın ve kendinize atayın. Bu atama, önce listeden rol adı aranarak ve ardından "Üyeler" sekmesine tıklanarak yapılır. Sekmeye geldikten sonra radyodan "Kullanıcı, grup veya hizmet sorumlusu" seçeneğini belirleyin ve Ardından Azure hesabınızı arayın. Hesap seçildikten sonra rol atanabilir.
Ardından gerekli izinler Cosmos DB'nin sorumlusuna atanmalıdır. Bu nedenle, son rol ataması gibi atama sayfasına gidin, ancak bu kez "Key Vault Şifreleme Hizmeti Şifreleme Kullanıcısı" rolünü arayın ve üyeler sekmesinde Cosmos DB'nin sorumlusunu arayın. Sorumluyu bulmak için Azure Cosmos DB sorumlusunu arayın ve seçin.
Önemli
Azure Kamu bölgesinde uygulama kimliği şeklindedir
11112222-bbbb-3333-cccc-4444dddd5555
.Gözden geçir ve ata'yı seçtiğinizde rol Cosmos DB'ye atanır.
Rollerin doğru ayarlandığını doğrulayın
Ardından, tüm rollerin doğru yapılandırıldığını onaylamak için erişim denetimi sayfasını kullanın.
Roller atandıktan sonra, her şeyin doğru ayarlandığını doğrulamak için Erişim Denetimi IAM sayfasında "Bu kaynağa erişimi görüntüle" seçeneğini belirleyin.
Sayfada kapsamı "bu kaynak" olarak ayarlayın ve Key Vault Yöneticisi rolüne sahip olduğunuzu ve Cosmos DB sorumlusunun Key Vault Şifreleme Kullanıcı rolüne sahip olduğunu doğrulayın.
Azure Key Vault'ta anahtar oluşturma
Burada Azure Key Vault'u kullanarak yeni bir anahtar oluşturun ve benzersiz tanımlayıcıyı alın.
Azure portalından, şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız Azure Key Vault örneğine gidin. Ardından soldaki menüden Anahtarlar'ı seçin:
Oluştur/İçeri Aktar'ı seçin, yeni anahtar için bir ad girin ve bir RSA anahtarı boyutu seçin. En iyi güvenlik için en az 3072 önerilir. Ardından Oluştur'u seçin:
İpucu
Alternatif olarak, Azure CLI'yi kullanarak aşağıdakilerle bir anahtar oluşturabilirsiniz:
az keyvault key create \ --vault-name <name-of-key-vault> \ --name <name-of-key>
Azure CLI ile anahtar kasasını yönetme hakkında daha fazla bilgi için bkz . Azure Key Vault'ı Azure CLI ile yönetme.
Anahtar oluşturulduktan sonra yeni oluşturulan anahtarı ve ardından geçerli sürümünü seçin.
Son eğik çizgiden sonraki bölüm dışında anahtarın Anahtar Tanımlayıcısını kopyalayın:
Yeni bir Azure Cosmos DB hesabı oluşturma
Azure portalını veya Azure CLI'yi kullanarak yeni bir Azure Cosmos DB hesabı oluşturun.
Azure portalından yeni bir Azure Cosmos DB hesabı oluşturduğunuzda Şifreleme adımında Müşteri tarafından yönetilen anahtar'ı seçin. Anahtar URI'si alanına, önceki adımda kopyaladığınız Azure Key Vault anahtarının URI/anahtar tanımlayıcısını yapıştırın:
Önemli
Ağ yapılandırmanıza bağlı olarak, diğer Azure hizmetlerinden Azure Cosmos DB'ye erişime izin vermeniz gerekebilir.
Azure Key Vault erişim ilkesinde yönetilen kimlik kullanma
Bu erişim ilkesi, şifreleme anahtarlarınıza Azure Cosmos DB hesabınız tarafından erişilmesini sağlar. Erişim ilkesi, belirli bir Microsoft Entra kimliğine erişim verilerek uygulanır. İki kimlik türü desteklenir:
- Azure Cosmos DB'nin birinci taraf kimliği, Azure Cosmos DB hizmetine erişim vermek için kullanılabilir.
- Azure Cosmos DB hesabınızın yönetilen kimliği , hesabınıza özel olarak erişim vermek için kullanılabilir.
Müşteri tarafından yönetilen anahtarları sürekli yedekleme ile kullanma
Azure CLI veya Azure Resource Manager şablonunu kullanarak sürekli yedekleme hesabı oluşturabilirsiniz.
Şu anda sürekli yedekleme hesapları oluşturmak için yalnızca kullanıcı tarafından atanan yönetilen kimlik desteklenmektedir.
Hesap oluşturulduktan sonra, kimliği sistem tarafından atanan yönetilen kimliğe güncelleştirebilirsiniz.
Alternatif olarak, kullanıcı önce düzenli yedekleme moduyla bir sistem kimliği oluşturabilir, ardından bu yönergeleri kullanarak hesabı Sürekli yedekleme moduna geçirerek Azure Cosmos DB hesabını düzenli aralıklarla sürekli yedekleme moduna geçirme
Yönetilen kimlikle yapılandırılmış sürekli hesabı geri yükleme
Kaynak hesap yönetilen kimliği (Kullanıcı tarafından atanan ve Sistem tarafından atanan kimlikler) hedef veritabanı hesabına otomatik olarak taşınamadığından, geri yükleme isteğinde kullanıcı tarafından atanan kimlik gereklidir.
Müşteri tarafından yönetilen anahtarlar ve çift şifreleme
Müşteri tarafından yönetilen anahtarları kullanırken Azure Cosmos DB hesabınızda depoladığınız veriler iki kez şifrelenir:
- Microsoft tarafından yönetilen anahtarlarla gerçekleştirilen varsayılan şifrelemeden sonra.
- Müşteri tarafından yönetilen anahtarlarla gerçekleştirilen ek şifreleme işleminden sonra.
Çift şifreleme yalnızca ana Azure Cosmos DB işlem depolaması için geçerlidir. Bazı özellikler, verilerinizin, müşteri tarafından yönetilen anahtarlarla bile çift şifrelemenin sağlanmadığı ikinci bir depolama katmanına iç çoğaltmayı içerir. Bu özellikler şunları içerir:
Anahtar döndürme
Azure Cosmos DB hesabınız tarafından kullanılan müşteri tarafından yönetilen anahtarı döndürme işlemi iki şekilde yapılabilir.
Azure Key Vault'tan şu anda kullanılan anahtarın yeni bir sürümünü oluşturun:
Hesabınızdaki anahtar URI'sini güncelleştirerek şu anda farklı bir anahtarla kullanılan anahtarı değiştirin. Azure portalından Azure Cosmos DB hesabınıza gidin ve soldaki menüden Veri Şifrelemesi'ni seçin:
Ardından Anahtar URI'sini kullanmak istediğiniz yeni anahtarla değiştirin ve Kaydet'i seçin:
PowerShell'de aynı sonucu elde etmek için şunları yapabilirsiniz:
# Variable for resource group name $RESOURCE_GROUP_NAME = "<resource-group-name>" # Variable for account name $ACCOUNT_NAME = "<globally-unique-account-name>" # Variable for new key URI in the key vault $NEW_KEY_VAULT_KEY_URI="https://<key-vault-name>.vault.azure.net/keys/<new-key-name>" $parameters = @{ ResourceGroupName = $RESOURCE_GROUP_NAME Name = $ACCOUNT_NAME ResourceType = "Microsoft.DocumentDb/databaseAccounts" } $ACCOUNT = Get-AzResource @parameters $ACCOUNT.Properties.keyVaultKeyUri = $NEW_KEY_VAULT_KEY_URI $ACCOUNT | Set-AzResource -Force
Azure Key Vault denetim günlükleri artık bu anahtar veya anahtar sürümünde Azure Cosmos DB'den etkinlik göstermedikten sonra önceki anahtar veya anahtar sürümü devre dışı bırakılabilir. 24 saatlik anahtar döndürme sonrasında önceki anahtar veya anahtar sürümünde başka etkinlik gerçekleşmemelidir.
Önceki anahtar devre dışı bırakılmadığı veya silinmediği sürece Azure Key Vault'ta anahtar otomatik döndürme desteklenir. İç sistemlerin, hesabın iptal edilmiş durumda olmadığını veya müşteri tarafından yönetilen anahtarları etkinleştirmek için geçişte olduğunu doğruladıktan sonra anahtarın yeni sürümünü yakalaması için biraz zamana ihtiyacı vardır.
Hata işleme
Azure Cosmos DB'de müşteri tarafından yönetilen anahtarlarla ilgili hatalar varsa, Azure Cosmos DB yanıtta bir HTTP alt durum koduyla birlikte hata ayrıntılarını döndürür. Sorunun kök nedeninin hatalarını ayıklamak için HTTP alt durumu kodunu kullanabilirsiniz. Desteklenen HTTP alt durum kodlarının listesini almak için Azure Cosmos DB için HTTP Durum Kodları makalesine bakın.
Sık sorulan sorular
Azure Cosmos DB'de müşteri tarafından yönetilen anahtarları ayarlama hakkında sık sorulan sorular burada verilmiştir.
Müşteri tarafından yönetilen anahtarları etkinleştirmek için daha fazla ücret alınıyor mu?
Hayır, bu özelliği etkinleştirmek için ücret alınmaz.
Müşteri tarafından yönetilen anahtarlar kapasite planlamasını nasıl etkiler?
Veritabanı işlemleriniz tarafından kullanılan İstek Birimleri , müşteri tarafından yönetilen anahtarları kullanırken verilerinizin şifrelenmesi ve şifresinin çözülmesi için gereken ek işlemleri yansıtacak bir artışla karşılaşır. Ek RU tüketimi, sağlanan kapasitenizin biraz daha yüksek kullanımına yol açabilir. Rehberlik için bu tabloyu kullanın:
İşlem türü | İstek Birimi artışı |
---|---|
Noktadan okumalar (öğeleri kimliklerine göre getirme) | İşlem başına + %5 |
Herhangi bir yazma işlemi | İşlem başına + %6 | Dizine alınan özellik başına yaklaşık + 0,06 RU |
Sorgular, okuma değişiklik akışı veya çakışma akışı | İşlem başına + %15 |
Hangi veriler müşteri tarafından yönetilen anahtarlarla şifrelenir?
Aşağıdaki meta veriler dışında Azure Cosmos DB hesabınızda depolanan tüm veriler müşteri tarafından yönetilen anahtarlarla şifrelenir:
Azure Cosmos DB hesaplarınızın, veritabanlarınızın ve kapsayıcılarınızın adları
Saklı yordamlarınızın adları
Dizin oluşturma ilkelerinizde bildirilen özellik yolları
Kapsayıcılarınızın bölüm anahtarlarının değerleri
Müşteri tarafından yönetilen anahtarlar mevcut Azure Cosmos DB hesapları için destekleniyor mu?
Evet. Mevcut Azure Cosmos DB hesaplarınız için müşteri tarafından yönetilen anahtarları ayarlama bölümüne bakın
Müşteri tarafından yönetilen anahtarları Azure Cosmos DB analiz deposuyla kullanmak mümkün mü?
Evet, Azure Synapse Link yalnızca Azure Cosmos DB hesabınızın yönetilen kimliğini kullanarak müşteri tarafından yönetilen anahtarları yapılandırmayı destekler. Hesabınızda Azure Synapse Link'i etkinleştirmeden önce Azure Key Vault erişim ilkenizde Azure Cosmos DB hesabınızın yönetilen kimliğini kullanmanız gerekir. Yönetilen kimliği etkinleştirme ve erişim ilkesinde kullanma hakkında nasıl yapılır kılavuzu için bkz . Yönetilen kimlik kullanarak Azure Cosmos DB'den Azure Key Vault'a erişme.
Hesap düzeyindeki anahtarlardan daha ayrıntılı bir şekilde destekleniyor mu?
Şu anda değil, ancak kapsayıcı düzeyi anahtarlar dikkate alınıyor.
Azure Cosmos DB hesabımda müşteri tarafından yönetilen anahtarların etkinleştirilip etkinleştirilmediğini nasıl anlayabilirim?
Azure portalından Azure Cosmos DB hesabınıza gidin ve soldaki menüde Veri Şifrelemesi girişini izleyin; bu girdi varsa, hesabınızda müşteri tarafından yönetilen anahtarlar etkinleştirilir:
Ayrıca Azure Cosmos DB hesabınızın ayrıntılarını program aracılığıyla getirebilir ve özelliğin keyVaultKeyUri
varlığını arayabilirsiniz.
Müşteri tarafından yönetilen anahtarlar düzenli yedeklemeleri nasıl etkiler?
Azure Cosmos DB, hesabınızda depolanan verilerin düzenli ve otomatik yedeklemelerini alır. Bu işlem şifrelenmiş verileri yedekler.
Düzenli bir yedeklemeyi başarıyla geri yüklemek için aşağıdaki koşullar gereklidir:
- Yedekleme sırasında kullandığınız şifreleme anahtarı gereklidir ve Azure Key Vault'ta kullanılabilir olmalıdır. Bu koşul, iptal yapılmamış olmasını ve yedekleme sırasında kullanılan anahtarın sürümünün hala etkinleştirilmesini gerektirir.
- Erişim ilkesinde sistem tarafından atanan bir yönetilen kimlik kullandıysanız, verilerinizi geri yüklemeden önce Azure Cosmos DB birinci taraf kimliğine geçici olarak erişim verin. Sistem tarafından atanan yönetilen kimlik bir hesaba özel olduğundan ve hedef hesapta yeniden kullanılamadığından bu gereksinim mevcuttur. Veriler hedef hesaba tamamen geri yüklendikten sonra, istediğiniz kimlik yapılandırmasını ayarlayabilir ve Key Vault erişim ilkesinden birinci taraf kimliğini kaldırabilirsiniz.
Müşteri tarafından yönetilen anahtarlar sürekli yedeklemeleri nasıl etkiler?
Azure Cosmos DB, hesabınızda sürekli yedeklemeleri yapılandırma seçeneği sunar. Sürekli yedeklemelerle, verilerinizi son 30 gün içinde herhangi bir noktaya geri yükleyebilirsiniz. Müşteri tarafından yönetilen anahtarların etkinleştirildiği bir hesapta sürekli yedeklemeleri kullanmak için Key Vault erişim ilkesinde sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanmanız gerekir. Azure Cosmos DB birinci taraf kimlikleri şu anda sürekli yedekleme kullanan hesaplarda desteklenmemektedir.
Kullanıcı tarafından atanan kimliği güncelleştirmek için Müşteri Tarafından Yönetilen Anahtarlar özellikli hesapların önkoşul adımları.
- Cosmos DB hesabına kullanıcı tarafından atanan bir kimlik ekleyin ve anahtar kasası erişim ilkesinde izinler verin.
- Azure CLI veya ARM aracılığıyla kullanıcı tarafından atanan varsayılan kimliği ayarlayın.
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity
Belirli bir noktaya geri yüklemeyi başarıyla gerçekleştirmek için aşağıdaki koşullar gereklidir:
- Yedekleme sırasında kullandığınız şifreleme anahtarı gereklidir ve Azure Key Vault'ta kullanılabilir olmalıdır. Bu gereksinim, iptal yapılmadığını ve yedekleme sırasında kullanılan anahtarın sürümünün hala etkin olduğu anlamına gelir.
- İlk olarak kaynak hesapta kullanılan kullanıcı tarafından atanan yönetilen kimliğin Hala Key Vault erişim ilkesinde bildirildiğinden emin olmanız gerekir.
Önemli
Hesabınızı silmeden önce şifreleme anahtarını iptal ederseniz, hesabınızın yedeklemesi iptal işlemi yapılmadan 1 saat öncesine kadar yazılan verileri kaçırabilir.
Şifreleme anahtarını iptal Nasıl yaparım??
Anahtar iptali, anahtarın en son sürümü devre dışı bırakılarak yapılır:
Alternatif olarak, bir Azure Key Vault örneğindeki tüm anahtarları iptal etmek için Azure Cosmos DB sorumlusuna verilen erişim ilkesini silebilirsiniz:
Müşteri tarafından yönetilen anahtar iptal edildikten sonra hangi işlemler kullanılabilir?
Şifreleme anahtarı iptal edildiğinde mümkün olan tek işlem hesap silme işlemidir.
Veritabanı hesabına erişmeye veya erişimi kurtarmaya devam etmek için geri yüklenen veritabanı hesabına yeni bir yönetilen kimlik atayın
Kullanıcı Tarafından Atanan Kimlik belirtilen bir Cosmos DB hesabına bağlıdır. Bir hesaba Kullanıcı Tarafından Atanan Kimlik atadığımız her durumda ARM, bu bağlantıyı yapmak için isteği yönetilen hizmet kimliklerine iletir. Şu anda CMK + Kullanıcı Tarafından Atanan Kimlik'in geri yüklenmesi sırasında (hem Sürekli hem de Düzenli yedekleme geri yükleme için) kaynak veritabanı hesabından hedef veritabanı hesabına kullanıcı kimliği bilgilerini taşıyoruz.
Kimlik meta verileri kaynak veritabanı hesabıyla ilişkili olduğundan ve geri yükleme iş akışı kimliği hedef veritabanı hesabına yeniden kapsamaz. Bu, geri yüklenen veritabanı hesaplarının hatalı durumda olmasına ve kaynak hesap silindikten ve kimliğin yenileme süresinin dolmasından sonra erişilemez duruma gelmesine neden olur.
Yeni bir yönetilen kimlik atama adımları:
- Kullanıcı tarafından atanan yeni bir yönetilen kimlik oluşturun.
- Bu kimliğe KeyVault anahtarı erişimi verin.
- Bu yeni kimliği geri yüklenen veritabanı hesabınıza atayın.
Sonraki adımlar
- Azure Cosmos DB'de veri şifreleme hakkında daha fazla bilgi edinin.