Azure Cosmos DB'de rol tabanlı erişim denetimi

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Not

Bu makale, Azure Cosmos DB'deki yönetim düzlemi işlemleri için rol tabanlı erişim denetimi hakkındadır. Veri düzlemi işlemleri kullanıyorsanız verilerin güvenliği birincil anahtarlar, kaynak belirteçleri veya Azure Cosmos DB RBAC kullanılarak sağlanır.

NoSQL için API'de veri düzlemi işlemlerine uygulanan rol tabanlı erişim denetimi hakkında daha fazla bilgi edinmek için bkz . Verilere güvenli erişim ve Azure Cosmos DB RBAC makaleleri. MongoDB için Azure Cosmos DB API'si için bkz . MongoDB API'sindeki Veri Düzlemi RBAC.

Azure Cosmos DB, Azure Cosmos DB içindeki yaygın yönetim senaryoları için yerleşik Azure rol tabanlı erişim denetimi (Azure RBAC) sağlar. Microsoft Entra Id'de profili olan bir kişi, Azure Cosmos DB kaynaklarındaki kaynaklara ve işlemlere erişim vermek veya reddetmek için bu Azure rollerini kullanıcılara, gruplara, hizmet sorumlularına veya yönetilen kimliklere atayabilir. Rol atamalarının kapsamı yalnızca denetim düzlemi erişimi olarak belirlenmiştir. Bu erişim Azure Cosmos DB hesaplarına, veritabanlarına, kapsayıcılara ve tekliflere (aktarım hızı) erişim içerir.

Yerleşik roller

Azure Cosmos DB tarafından desteklenen yerleşik roller şunlardır:

Yerleşik rol Açıklama
DocumentDB Hesabı Katkıda Bulunanı Azure Cosmos DB hesaplarını yönetebilir.
Cosmos DB Hesap OkuyucuSu Rolü Azure Cosmos DB hesap verilerini okuyabilir.
CosmosBackupOperator Düzenli yedekleme özelliği etkinleştirilmiş bir veritabanı veya kapsayıcı için Azure portalında geri yükleme isteği gönderebilir. Azure portalında yedekleme aralığını ve saklama süresini değiştirebilir. Hiçbir veriye erişilemez veya Veri Gezgini kullanılamaz.
CosmosRestoreOperator Sürekli yedekleme moduna sahip bir Azure Cosmos DB hesabı için geri yükleme eylemi gerçekleştirebilir.
Cosmos DB İşleci Azure Cosmos DB hesapları, veritabanları ve kapsayıcıları sağlayabilir. Hiçbir veriye erişilemez veya Veri Gezgini kullanılamaz.

Kimlik ve erişim yönetimi (IAM)

Azure portalındaki Erişim denetimi (IAM) bölmesi, Azure Cosmos DB kaynaklarında Azure rol tabanlı erişim denetimini yapılandırmak için kullanılır. Roller Active Directory'deki kullanıcılara, gruplara, hizmet sorumlularına ve yönetilen kimliklere uygulanır. Kişiler ve gruplar için yerleşik rolleri veya özel rolleri kullanabilirsiniz. Aşağıdaki ekran görüntüsünde, Azure portalında erişim denetimi (IAM) kullanan Active Directory tümleştirmesi (Azure RBAC) gösterilmektedir:

Access control (IAM) in the Azure portal - demonstrating database security.

Özel roller

Yerleşik rollere ek olarak, kullanıcılar Azure'da özel roller oluşturabilir ve bu rolleri Active Directory kiracılarındaki tüm aboneliklerde hizmet sorumlularına uygulayabilir. Özel roller, kullanıcılara özel bir kaynak sağlayıcısı işlemleri kümesiyle Azure rol tanımları oluşturmanın bir yolunu sağlar. Azure Cosmos DB için özel roller oluşturmak için hangi işlemlerin kullanılabilir olduğunu öğrenmek için bkz. Azure Cosmos DB kaynak sağlayıcısı işlemleri

İpucu

Azure Cosmos DB'de depolanan verilere erişmesi veya Azure portalında Veri Gezgini kullanması gereken özel rollerin eyleme sahip Microsoft.DocumentDB/databaseAccounts/listKeys/* olması gerekir.

Not

Özel rol atamaları Her zaman Azure portalında görünmeyebilir.

Uyarı

Yönetim RBAC değişiklikleri sonrasında hesap anahtarları otomatik olarak döndürülemez veya iptal edilmez. Bu anahtarlar veri düzlemi işlemlerine erişim verir. Bir kullanıcıdan anahtarlara erişimi kaldırırken, anahtarların da döndürülmüş olması önerilir. RBAC Veri Düzlemi için Cosmos DB arka ucu, roller/talepler artık eşleşmedikten sonra istekleri reddeder. Bir kullanıcı veri düzlemi işlemlerine geçici erişim gerektiriyorsa Azure Cosmos DB RBAC Veri Düzlemi'nin kullanılması önerilir.

Azure Cosmos DB SDK'larından değişiklikleri engelleme

Azure Cosmos DB kaynak sağlayıcısı, hesap anahtarları (Azure Cosmos DB SDK'sı aracılığıyla bağlanan uygulamalar) kullanılarak bağlanan bir istemciden kaynaklarda herhangi bir değişiklik yapılmasını önlemek için kilitlenebilir. Bu özellik, üretim ortamları için daha yüksek denetim ve idare dereceleri isteyen kullanıcılar için tercih edilebilir. SDK'dan değişikliklerin engellenmesi, denetim düzlemi işlemleri için kaynak kilitleri ve tanılama günlükleri gibi özellikleri de etkinleştirir. Azure Cosmos DB SDK'sından bağlanan istemcilerin Azure Cosmos DB hesapları, veritabanları, kapsayıcılar ve aktarım hızı için herhangi bir özelliği değiştirmesi engellenir. Azure Cosmos DB kapsayıcılarına veri okuma ve yazma işlemleri etkilenmez.

Bu özellik etkinleştirildiğinde, herhangi bir kaynakta yapılan değişiklikler yalnızca doğru Azure rolüne sahip bir kullanıcıdan ve Yönetilen Hizmet Kimlikleri de dahil olmak üzere Microsoft Entra kimlik bilgilerine sahip bir kullanıcıdan yapılabilir.

Uyarı

Bu özelliğin etkinleştirilmesi uygulamanızı etkileyebilir. Etkinleştirmeden önce etkiyi anladığınızdan emin olun.

Etkinleştirmeden önce listeyi denetleyin

Bu ayar, herhangi bir Azure Cosmos DB SDK'sı ve hesap anahtarları aracılığıyla bağlanan araçlar dahil olmak üzere hesap anahtarları kullanılarak bağlanan herhangi bir istemciden herhangi bir Azure Cosmos DB kaynağında değişiklik yapılmasını engeller. Bu özelliği etkinleştirdikten sonra uygulamalardan gelen sorunları veya hataları önlemek için, bu özelliği etkinleştirmeden önce uygulamaların aşağıdaki eylemlerden herhangi birini gerçekleştirip gerçekleştirmediğini denetleyin, örneğin:

  • Veritabanları ve kapsayıcılar gibi alt kaynakları oluşturma, silme. Buna Cassandra, MongoDB, Gremlin ve tablo kaynakları gibi diğer API'ler için kaynaklar dahildir.

  • Veritabanı veya kapsayıcı düzeyindeki kaynaklarda aktarım hızını okuma veya güncelleştirme.

  • Dizin ilkesi, TTL ve benzersiz anahtarlar dahil olmak üzere kapsayıcı özelliklerini değiştirme.

  • Saklı yordamları, tetikleyicileri veya kullanıcı tanımlı işlevleri değiştirme.

Uygulamalarınız (veya Azure portalı aracılığıyla kullanıcılar) bu eylemlerden herhangi birini gerçekleştiriyorsa ARM Şablonları, PowerShell, Azure CLI, REST veya Azure Yönetim Kitaplığı aracılığıyla yürütülmek üzere geçirilmesi gerekir. Azure Yönetimi'nin birden çok dilde kullanılabildiğini unutmayın.

ARM Şablonu aracılığıyla ayarlama

Arm şablonu kullanarak bu özelliği ayarlamak için mevcut şablonunuzu güncelleştirin veya geçerli dağıtımınız için yeni bir şablon dışarı aktarın, ardından öğesini kaynakların özelliklerine databaseAccounts ekleyin"disableKeyBasedMetadataWriteAccess": true. Aşağıda, bu özellik ayarına sahip bir Azure Resource Manager şablonunun temel bir örneği verilmiştir.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2020-04-01",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
        "locations": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "disableKeyBasedMetadataWriteAccess": true
        }
    }
}

Önemli

Bu özellik ile yeniden dağıtırken hesabınızın ve alt kaynaklarınızın diğer özelliklerini eklediğinizden emin olun. Bu şablonu olduğu gibi dağıtmayın, aksi takdirde tüm hesap özelliklerinizi sıfırlar.

Azure CLI aracılığıyla ayarlama

Azure CLI'yı kullanmayı etkinleştirmek için aşağıdaki komutu kullanın:

az cosmosdb update  --name [CosmosDBAccountName] --resource-group [ResourceGroupName]  --disable-key-based-metadata-write-access true

PowerShell aracılığıyla ayarlama

Azure PowerShell'i kullanmayı etkinleştirmek için aşağıdaki komutu kullanın:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

Sonraki adımlar