Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Cosmos DB hesabınıza kaydedilen veriler, Microsoft tarafından yönetilen anahtarlarla (hizmet tarafından yönetilen anahtarlar) otomatik ve sorunsuz bir şekilde şifrelenir. İsteğe bağlı olarak, sizin yönettiğiniz anahtarlarla (müşteri tarafından yönetilen anahtarlar veya CMK) şifrelemenin ikinci katmanını eklemeyi tercih edebilirsiniz.
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, o hesaba kaydedilen tüm verileri şifrelemek için kullanılır.
Note
Mevcut Azure Cosmos DB hesaplarınızda müşteri tarafından yönetilen anahtarları etkinleştirmek istiyorsanız bkz. Azure Key Vault ile mevcut Azure Cosmos DB hesabınız için müşteri tarafından yönetilen anahtarları yapılandırma.
Warning
Aşağıdaki alan adları, müşteri tarafından yönetilen Anahtarlar kullanılarak hesaplardaki Cassandra API tablolarında ayrılmıştır:
idttl_ts_etag_rid_self_attachments_epk
Müşteri tarafından yönetilen anahtarlar etkinleştirilmediğinde, yalnızca __sys_ ile başlayan alan adları ayrılır.
Prerequisites
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
Azure Cosmos DB kaynak sağlayıcısını kaydedin
Eğer Microsoft.DocumentDB kaynak sağlayıcısı henüz kayıtlı değilse, bu sağlayıcıyı ilk adım olarak kaydetmelisiniz.
Azure portal'a giriş yapın, Azure aboneliğinize gidin ve Ayarlar sekmesi altında Kaynak sağlayıcıları seçin.
Microsoft.DocumentDB kaynak sağlayıcısını arayın. Kaynak sağlayıcının zaten kayıtlı olarak işaretlenip işaretlenmediğini doğrulayın. Eğer değilse, kaynak sağlayıcıyı seçin ve Kaydet'i seçin:
Azure Key Vault örneğinizi yapılandırın
Important
Azure Key Vault örneğiniz, genel ağ erişimi yoluyla erişilebilir olmalı veya güvenilir Microsoft hizmetlerinin güvenlik duvarını atlamasına izin vermelidir. Özel uç noktalar üzerinden özel olarak erişilebilen bir örnek, müşteri tarafından yönetilen anahtarlarınızı barındırmak için kullanılamaz.
Beklenmeyen bölgesel kesintiler sırasında sürekli kullanılabilirlik sağlamak için oluşturulan Azure Key Vault Kaynağı'nda veri çoğaltmanın etkinleştirilmesi kesinlikle önerilir.
Azure Cosmos DB ile müşteri tarafından yönetilen anahtarları kullanmak, şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız Azure Key Vault örneğinde iki özelliği ayarlamanızı gerektirir: Soft Delete ve Purge Protection.
- 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çin
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 kontrolü 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 ilkeleri veya rol tabanlı erişim kontrolü kullanmasına bağlı olarak değişir.
Note
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 dağıtımını yapmanız gerekmez ve tam tersi de geçerlidir.
Bir erişim politikası ekleyin.
Bu varyasyonda, uygun izinlere sahip bir erişim politikası oluşturmak için Azure Cosmos DB ilkesini 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 Politikaları öğesini seçin.
+ Erişim Politikası Ekle'yi seçin.
Anahtar izinleri açılır menüsünden Al, Anahtarı Çöz ve Anahtarı Paketle izinlerini seçin.
"Ana bileşeni seç altında, Hiçbiri seçilmedi seçeneğini seçin."
Azure Cosmos DB sorumlusunu arayın ve seçin.
Tip
Bu, Azure Key Vault erişim politikanızda Azure Cosmos DB birinci taraf kimliğini kaydeder. Azure Cosmos DB yetkilisi listede yoksa, Microsoft.DocumentDB kaynak sağlayıcısını yeniden kaydetmeniz gerekebilir.
Alttaki Select seçeneğini seçin.
Ekle'yi seçerek yeni erişim politikasını ekleyin.
Key Vault örneğinde tüm değişiklikleri kaydetmek için Kaydet seçeneğini 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. Sol menüden Erişim kontrolü (IAM)'ü seçin ve Bu kaynağa erişim verin.
Key Vault Administrator 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.
Daha sonra, gerekli izinler Cosmos DB'nin asıl kullanıcısına atanmalıdır. Bu nedenle, son rol ataması gibi atama sayfasına gidin, ancak bu kez Key Vault Kripto Hizmeti Şifreleme Kullanıcısı rolünü arayın ve üyeler sekmesinde Cosmos DB'nin asıl sorumlusunu arayın. Ana bilgisayarı bulmak için, Azure Cosmos DB ana bilgisayarını arayın ve seçin.
Gözden geçir ve ata'yı seçtiğinizde, rol Cosmos DB'ye atanır.
Rollerin doğru ayarlandığını doğrulama
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'yi seçin.
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 Anahtar Kasasında bir anahtar oluşturun
Burada Azure Key Vault 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, sol menüden Keys'i seçin.
Oluştur/İçe Aktar'yı seçin, yeni anahtar için bir ad verin ve bir RSA anahtar boyutu seçin. En iyi güvenlik için en az 3072 önerilmektedir. Ardından Oluştur'u seçin:
Tip
Alternatif olarak, bir anahtar oluşturmak için Azure CLI kullanabilirsiniz:
az keyvault key create \ --vault-name <name-of-key-vault> \ --name <name-of-key>Daha fazla bilgi için Azure CLI ile bir anahtar kasasını yönetmeyi Azure CLI ile Azure Anahtar Kasası yönetme bölümünde inceleyin.
Anahtar oluşturulduktan sonra, yeni oluşturulan anahtarı ve ardından mevcut sürümünü seçin.
Anahtarın Anahtar Tanımlayıcısını kopyalayın, son eğik çizgiden sonraki kısmı hariç.
Yeni bir Azure Cosmos DB hesabı oluşturun
Azure portal veya Azure CLI kullanarak yeni bir Azure Cosmos DB hesabı oluşturun.
Azure portalundan yeni bir Azure Cosmos DB hesabı oluşturduğunuzda, Şifreleme adımında Müşteri tarafından yönetilen anahtar'ı seçin. Anahtar URI alanına, önceki adımdan kopyaladığınız Azure Anahtar Kasası anahtarının URI/anahtar kimliğini yapıştırın.
Important
Ağ yapılandırmanıza bağlı olarak, diğer Azure hizmetlerinden Azure Cosmos DB'ye erişime izin vermeniz gerekebilir.
Azure Anahtar Kasası erişim politikasında yönetilen bir kimlik kullanmak
Bu erişim politikası, şifreleme anahtarlarınıza Azure Cosmos DB hesabınız tarafından erişilmesini sağlar. Erişim politikası, belirli bir Microsoft Entra kimliğine erişim izni verilerek uygulanır. İki tür kimlik desteklenmektedir:
- Azure Cosmos DB'nin birinci taraf kimliği, Azure Cosmos DB hizmetine erişim izni vermek için kullanılabilir.
- Azure Cosmos DB hesabınızın yönetilen kimliği, hesabınıza özel erişim izni vermek için kullanılabilir.
Sürekli yedekleme ile müşteri tarafından yönetilen anahtarları kullanın.
Azure CLI veya ARM şablonu kullanarak sürekli yedekleme hesabı oluşturabilirsiniz.
Şu anda, sürekli yedekleme hesapları oluşturmak için yalnızca kullanıcı tarafından atanmış 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ılar önce düzenli yedekleme moduyla bir sistem kimliği oluşturabilir, ardından hesabı Sürekli yedekleme moduna geçirebilir. Ayrıntılı adımlar için bkz. Azure Cosmos DB hesabını düzenli aralıklarla sürekli yedekleme moduna geçirme.
Yönetilen kimlikle yapılandırılmış kesintisiz bir hesabı geri yükle
Kaynak hesap yönetilen kimliği (kullanıcı tarafından atanan ve sistem tarafından atanan kimlikler) otomatik olarak hedef veritabanı hesabına 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ıldığında, Azure Cosmos DB hesabınıza depoladığınız veriler iki kez şifrelenir.
- Microsoft tarafından yönetilen anahtarlarla gerçekleştirilen varsayılan şifreleme aracılığıyla bir kez.
- Müşteri tarafından yönetilen anahtarlarla gerçekleştirilen ek şifreleme üzerinden bir kez.
Çift şifreleme yalnızca ana Azure Cosmos DB işlemsel depolaması için geçerlidir. Bazı özellikler, müşteri tarafından yönetilen anahtarlar kullanıldığında bile, verilerinizin ikinci bir depolama katmanına dahili olarak çoğaltılmasını ancak çift şifrelemenin sağlanmadığı bir yapı içerir. Bu özellikler şunlardır:
Anahtar döndürme
Azure Cosmos DB hesabınızda kullanılan müşteri tarafından yönetilen anahtarı döndürmenin iki yolu vardır.
Azure Anahtar Kasası'nda şu anda kullanılan anahtarın yeni bir sürümünü oluşturun.
Hesabınızda anahtar URI'sini güncelleyerek, şu anda kullanılan anahtarı farklı bir anahtarla değiştirin. Azure portalundan Azure Cosmos DB hesabınıza gidin ve sol menüden Veri Şifreleme'yi seçin.
Ardından, kullanmak istediğiniz yeni anahtarla Key URI'yi değiştirin ve Kaydet'i seçin.
PowerShell'de aynı sonuca nasıl ulaşılacağını burada görebilirsiniz:
# 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
Önceki anahtar veya anahtar sürümü, Azure Key Vault denetim günlükleri artık Azure Cosmos DB'den o anahtar veya anahtar sürümüyle ilgili etkinlik göstermediğinde devre dışı bırakılabilir. Anahtar döndürmeden 24 saat sonra, önceki anahtar veya anahtar sürümünde artık hiçbir işlem yapılmamalıdır.
Önceki anahtar devre dışı bırakılmadığından veya silinmediği sürece Azure Key Vault'ta anahtar otomatik döndürme desteklenir. Dahili sistemlerin, hesabın iptal edilmiş durumda olmadığını veya müşteri tarafından yönetilen anahtarları etkinleştirmek için geçişte olmadığını doğruladıktan sonra anahtarın yeni sürümünü yakalaması için biraz zamana ihtiyacı vardır.
Hata yönetimi
Azure Cosmos DB'de müşteri tarafından yönetilen anahtarlarla ilgili herhangi bir hata varsa, Azure Cosmos DB hata ayrıntılarını ve bir HTTP alt durum kodunu yanıtla birlikte döndürür. Sorunun kök nedenini ayıklamak için HTTP alt durum kodunu kullanabilirsiniz. Desteklenen HTTP alt durum kodlarının listesini almak için bkz. Azure Cosmos DB için HTTP Durum Kodları.
Sık sorulan sorular
Burada, Azure Cosmos DB'de müşteri tarafından yönetilen anahtarların kurulumu hakkında sık sorulan sorular yer almaktadır.
Müşteri tarafından yönetilen anahtarları etkinleştirmek için ek ücret var mı?
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 (RU), müşteri tarafından yönetilen anahtarları kullanırken verilerinizin şifrelenmesi ve şifre çözmesi 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. Bu tabloyu rehberlik için kullanın.
| İşlem türü | Birim artışı talebi |
|---|---|
| Nokta-okumalar (öğeleri kimliklerine göre getirme) | + 5% işlem başına |
| Herhangi bir yazma işlemi | İşlem başına + %6 | İndekslenmiş özellik başına yaklaşık olarak + 0.06 RU |
| Sorgular, değişim toplanını okuma veya çakışma akışı. | + %15 her işlem başına |
Müşteri tarafından yönetilen anahtarlarla hangi veriler şifrelenir?
Azure Cosmos DB hesabınıza kaydedilen tüm veriler, müşteri tarafından yönetilen anahtarlarla şifrelenmiştir, aşağıdaki meta veriler hariç:
Azure Cosmos DB hesaplarınızın, veritabanlarınızın ve kapsayıcılarınızın adları
The names of your saklı yordamlar
Bildirim politikalarınızda belirtilen özellik yolları
Konteynerlerinizin bölüm anahtarlarının değerleri
Mevcut Azure Cosmos DB hesapları için müşteri tarafından yönetilen anahtarlar destekleniyor mu?
Evet. Daha fazla bilgi edinmek için bkz. Azure Key Vault ile mevcut Azure Cosmos DB hesabınız için müşteri tarafından yönetilen anahtarları yapılandırma.
Hesap düzeyindeki anahtarlardan daha ince bir ayrıntı düzeyini desteklemek için bir plan var mı?
Şu anda değil, ancak konteyner seviyesinde anahtarlar düşünülü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 giriş varsa, hesabınızda müşteri tarafından yönetilen anahtarlar etkinleştirilir:
Azure Cosmos DB hesabınızın ayrıntılarını programlı bir şekilde çekebilir ve keyVaultKeyUri özelliğinin mevcut olup olmadığını kontrol edebilirsiniz.
Müşteri tarafından yönetilen anahtarlar, periyodik yedeklemeleri nasıl etkiler?
Azure Cosmos DB, hesabınızda depolanan verilerin düzenli ve otomatik yedeklerini alır. Bu işlem, şifrelenmiş veriyi yedekler.
Periyodik bir yedekleme dosyasını 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 Anahtar Kasası'nda mevcut olmalıdır. Bu koşul, herhangi bir iptalin yapılmadığını ve yedekleme sırasında kullanılan anahtar sürümünün hala etkin olduğunu gerektirir.
- Erişim politikasında sistem tarafından atanmış bir yönetilen kimlik kullandıysanız, verilerinizi geri yüklemeden önce geçici olarak Azure Cosmos DB birinci taraf kimliğine erişim izni verin. Bu gereklilik, sistem tarafından atanan yönetilen kimliğin bir hesaba özgü olması ve hedef hesapta yeniden kullanılamaması nedeniyle vardır. Veriler hedef hesaba tam olarak yüklendiğinde, istediğiniz kimlik yapılandırmasını ayarlayabilir ve birinci taraf kimliğini Key Vault erişim politikasından kaldırabilirsiniz.
Müşteri tarafından yönetilen anahtarlar sürekli yedeklemeleri nasıl etkiler?
Azure Cosmos DB hesabınızda sürekli yedekleme yapılandırma seçeneği sunar. Sürekli yedeklemeler sayesinde, verilerinizi son 30 gün içinde herhangi bir zaman noktasına geri yükleyebilirsiniz. Müşteri tarafından yönetilen anahtarların etkin olduğu bir hesapta sürekli yedeklemeleri kullanmak için, Key Vault erişim politikasında sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen bir kimlik 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 anahtarlarla etkinleştirilen hesaplar için önkoşul adımları.
- Cosmos DB hesabına kullanıcı atamalı bir kimlik ekleyin ve anahtar kasası erişim politikasında izinler verin.
- Azure CLI veya Azure Resource Manager (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
Başarılı bir zaman noktasına geri yükleme yapmak için aşağıdaki koşullar gereklidir:
Müşteri tarafından yönetilen anahtara erişim, hesabın varsayılan kimliği tarafından kullanılabilir olmalıdır. Anahtar döndürüldüyse, döndürme işleminin tamamen tamamlanması veya hesabın hem eski hem de yeni anahtar sürümlerine erişimi olmalıdır.
Kaynak hesapta başlangıçta kullanılan kullanıcı tarafından atanan yönetilen kimliğin, hâlâ Key Vault erişim politikasında belirtildiğinden emin olmalısınız.
Important
Hesabınızı silmeden önce şifreleme anahtarını iptal ederseniz, hesabınızın yedeklemesi iptal işlemi yapılmadan bir saat öncesine kadar yazılan verileri kaçırabilir.
Şifreleme anahtarını nasıl iptal ederim?
Anahtar iptali, anahtarın en son sürümünü devre dışı bırakarak gerçekleştirilir.
Alternatif olarak, bir Azure Key Vault örneğinden tüm anahtarları iptal etmek için Azure Cosmos DB ilkesine verilen erişim politikasını silebilirsiniz:
Müşteri tarafından yönetilen bir anahtar iptal edildikten sonra hangi işlemler kullanılabilir?
Şifreleme anahtarı iptal edildiğinde hesap silme işlemi mümkün olan tek işlemdir.
Restore edilen veritabanı hesabına yeni bir yönetilen kimlik atayarak veritabanı hesabına erişimi sürdürün veya erişimi geri kazanın.
Kullanıcı tarafından atanan kimlik belirtilen bir Cosmos DB hesabına bağlıdır. Bir hesaba kullanıcı tarafından atanan bir 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 kimliğ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ına bağlıdır ve geri yükleme iş akışı, kimliği hedef veritabanı hesabına yeniden kapsamlandırmaz. 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şturma
- Bu kimliğe Key Vault anahtarı erişimi ver
- Bu yeni kimliği geri yüklenen veritabanı hesabınıza atayın