Kontrol akses berbasis peran Azure pada Azure Cosmos DB

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Catatan

Artikel ini menjelaskan tentang kontrol akses berbasis peran untuk operasi management plane di Azure Cosmos DB. Jika Anda menggunakan operasi data plane, data diamankan menggunakan kunci primer, token sumber daya, atau RBAC pada Azure Cosmos DB.

Untuk mempelajari selengkapnya tentang kontrol akses berbasis peran yang diterapkan pada operasi sarana data di API untuk NoSQL, lihat Mengamankan akses ke data dan artikel RBAC Azure Cosmos DB. Untuk API Azure Cosmos DB untuk MongoDB, lihat Data Plane RBAC di API untuk MongoDB.

Azure Cosmos DB menyediakan Azure RBAC bawaan untuk skenario manajemen umum di Azure Cosmos DB. Individu yang memiliki profil di ID Microsoft Entra dapat menetapkan peran Azure ini kepada pengguna, grup, perwakilan layanan, atau identitas terkelola untuk memberikan atau menolak akses ke sumber daya dan operasi pada sumber daya Azure Cosmos DB. Penetapan peran hanya dilingkup ke akses sarana kontrol, yang mencakup akses ke akun, database, kontainer, dan penawaran Azure Cosmos DB (throughput).

Peran bawaan

Berikut ini adalah peran bawaan yang didukung oleh Azure Cosmos DB:

Peran bawaan Keterangan
Kontributor Akun DocumentDB Dapat mengelola akun Azure Cosmos DB.
Peran Cosmos DB Account Reader Dapat membaca data Akun Azure Cosmos DB.
CosmosBackupOperator Dapat mengirimkan permintaan pemulihan di portal Azure untuk database yang diaktifkan cadangan berkala atau kontainer. Dapat mengubah interval dan retensi cadangan di portal Azure. Tidak dapat mengakses data apa pun atau menggunakan Data Explorer.
CosmosRestoreOperator Dapat melakukan tindakan pemulihan untuk akun Azure Cosmos DB dengan mode pencadangan berkelanjutan.
Operator Cosmos DB Dapat menyediakan akun, database, dan kontainer Azure Cosmos DB. Tidak dapat mengakses data apa pun atau menggunakan Data Explorer.

IAM (Identity and access management/Manajemen Identitas & Akses)

Panel Kontrol akses (IAM) di portal Azure digunakan untuk mengonfigurasi kontrol akses berbasis peran Azure pada sumber daya Azure Cosmos DB. Peran diterapkan pada pengguna, grup, perwakilan layanan, dan identitas terkelola di Direktori Aktif. Anda dapat menggunakan peran bawaan atau peran kustom untuk individu dan grup. Cuplikan layar berikut menunjukkan integrasi Direktori Aktif (Azure RBAC) menggunakan kontrol akses (IAM) di portal Microsoft Azure:

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

Peran kustom

Selain peran bawaan, pengguna juga dapat membuat peran kustom di Azure dan menerapkan peran ini ke perwakilan layanan di seluru langganan dalam penyewa Direktori Aktif mereka. Peran kustom memberi pengguna jalan untuk membuat definisi peran Azure dengan serangkaian operasi penyedia sumber daya kustom. Untuk mempelajari operasi mana yang tersedia untuk membangun peran kustom untuk Azure Cosmos DB lihat, operasi penyedia sumber daya Azure Cosmos DB

Tip

Peran kustom yang perlu mengakses data yang disimpan dalam Azure Cosmos DB atau menggunakan Data Explorer di portal Azure harus memiliki Microsoft.DocumentDB/databaseAccounts/listKeys/* tindakan.

Catatan

Penetapan peran kustom mungkin tidak selalu terlihat di portal Azure.

Peringatan

Kunci akun tidak diputar atau dicabut secara otomatis setelah RBAC manajemen berubah. Kunci ini memberikan akses ke operasi sarana data. Saat menghapus akses ke kunci dari pengguna, disarankan untuk memutar kunci juga. Untuk RBAC Data Plane, backend Cosmos DB akan menolak permintaan setelah peran/klaim tidak lagi cocok. Jika pengguna memerlukan akses sementara ke operasi sarana data, disarankan untuk menggunakan Azure Cosmos DB RBAC Data Plane.

Mencegah perubahan dari SDK Azure Cosmos DB

Penyedia sumber daya Azure Cosmos DB dapat dikunci untuk mencegah perubahan apa pun pada sumber daya dari klien yang terhubung menggunakan kunci akun (yaitu aplikasi yang terhubung melalui Azure Cosmos DB SDK). Fitur ini mungkin diinginkan oleh pengguna yang menginginkan tingkat kontrol dan tata kelola yang lebih tinggi untuk lingkungan produksi. Mencegah perubahan dari SDK juga memungkinkan fitur seperti kunci sumber daya dan log diagnostik untuk operasi sarana kontrol. Klien yang terhubung dari Azure Cosmos DB SDK akan dicegah untuk mengubah properti apa pun untuk akun, database, kontainer, dan throughput Azure Cosmos DB. Operasi yang melibatkan membaca dan menulis data ke kontainer Azure Cosmos DB itu sendiri tidak terpengaruh.

Ketika fitur ini diaktifkan, perubahan pada sumber daya apa pun hanya dapat dilakukan dari pengguna dengan peran Azure yang tepat dan kredensial Microsoft Entra termasuk Identitas Layanan Terkelola.

Peringatan

Mengaktifkan fitur ini dapat berdampak pada aplikasi Anda. Pastikan Anda memahami dampaknya sebelum mengaktifkan fitur ini.

Periksa daftar sebelum mengaktifkan fitur

Pengaturan ini akan mencegah perubahan apa pun pada sumber daya Azure Cosmos DB apa pun dari klien mana pun yang terhubung menggunakan kunci akun termasuk SDK Azure Cosmos DB apa pun, alat apa pun yang terhubung melalui kunci akun. Untuk mencegah masalah atau kesalahan dari aplikasi setelah mengaktifkan fitur ini, periksa apakah aplikasi melakukan tindakan berikut sebelum mengaktifkan fitur ini, termasuk:

  • Membuat, menghapus sumber daya anak seperti database dan kontainer. Sumber daya ini termasuk sumber daya untuk API lain seperti Cassandra, MongoDB, Gremlin, dan sumber daya tabel.

  • Membaca atau memperbarui throughput pada database atau sumber daya tingkat kontainer.

  • Memodifikasi properti kontainer termasuk kebijakan indeks, TTL, dan kunci unik.

  • Memodifikasi prosedur, pemicu, atau fungsi yang ditentukan pengguna yang tersimpan.

Jika aplikasi Anda (atau pengguna melalui portal Microsoft Azure) melakukan salah satu tindakan ini, mereka harus dimigrasikan untuk mengeksekusi tindakan melalui Templat ARM, PowerShell, Azure CLI, REST, atau Pustaka Manajemn Azure. Perhatikan bahwa Manajemen Azure tersedia dalam beberapa bahasa.

Diatur melalui Templat ARM

Untuk mengatur properti ini menggunakan templat ARM, perbarui templat yang sudah ada atau ekspor templat baru untuk penyebaran Anda saat ini, lalu sertakan "disableKeyBasedMetadataWriteAccess": trueke properti untuk sumber daya databaseAccounts tersebut. Di bawah ini adalah contoh dasar templat Azure Resource Manager dengan pengaturan properti ini.

{
    {
      "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
        }
    }
}

Penting

Pastikan Anda menyertakan properti lain untuk akun dan sumber daya turunan saat menyebarkan ulang dengan properti ini. Jangan menyebarkan templat ini dalam bentuk aslinya karena templat ini akan mereset semua properti akun Anda.

Atur melalui Azure CLI

Untuk mengaktifkan penggunaan Azure CLI, gunakan perintah di bawah ini:

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

Atur melalui PowerShell

Untuk mengaktifkan penggunaan Azure PowerShell, gunakan perintah di bawah ini:

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

Langkah berikutnya