Baca dalam bahasa Inggris

Bagikan melalui


Melindungi sumber daya Azure Cosmos DB dengan kunci

BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja

Sebagai administrator, Anda mungkin perlu mengunci akun, database, atau kontainer Azure Cosmos DB. Kunci mencegah pengguna lain dalam organisasi menghapus atau memodifikasi sumber daya penting secara tidak sengaja. Anda dapat mengatur tingkat penguncian ke CanNotDelete atau ReadOnly.

Tingkat Deskripsi
CanNotDelete Pengguna yang berwenang masih dapat membaca dan memodifikasi sumber daya, tetapi mereka tidak dapat menghapus sumber daya.
ReadOnly Pengguna yang berwenang dapat membaca sumber daya, tetapi mereka tidak dapat menghapus atau memperbarui sumber daya. Menerapkan kunci ini mirip dengan membatasi semua pengguna yang berwenang pada izin yang diberikan oleh peran Pembaca.

Prasyarat

Cara kunci diterapkan

Saat Anda menerapkan kunci pada lingkup induk, semua sumber daya dalam lingkup tersebut menerapkan kunci yang sama. Bahkan, sumber daya yang Anda tambahkan nanti juga akan menerapkan kunci dari induk. Kunci yang paling ketat dalam warisan lebih diutamakan.

Tidak seperti kontrol akses berbasis peran Azure, kunci manajemen berguna untuk menerapkan pembatasan pada seluruh pengguna dan peran.

Kunci Resource Manager hanya berlaku untuk operasi yang terjadi di bidang manajemen, yang terdiri dari operasi yang dikirim ke https://management.azure.com. Kunci tidak membatasi bagaimana sumber daya menjalankan fungsinya sendiri. Perubahan sumber daya dibatasi, tetapi operasi sumber daya tidak dibatasi. Misalnya, kunci ReadOnly pada kontainer Azure Cosmos DB mencegah Anda menghapus atau memodifikasi kontainer. Namun, Anda tetap dapat membuat, memperbarui, atau menghapus data dalam kontainer. Transaksi data diizinkan karena operasi tersebut tidak dikirim ke https://management.azure.com.

Mengelola kunci

Kunci sumber daya tidak berfungsi untuk perubahan yang dilakukan oleh pengguna yang mengakses Azure Cosmos DB menggunakan kunci akun kecuali akun Azure Cosmos DB pertama kali dikunci dengan mengaktifkan disableKeyBasedMetadataWriteAccess properti . Pastikan properti ini tidak merusak aplikasi yang ada yang membuat perubahan pada sumber daya menggunakan SDK, portal Azure, atau alat pihak ketiga apa pun. Mengaktifkan properti ini merusak aplikasi yang terhubung melalui kunci akun untuk memodifikasi sumber daya. Modifikasi ini dapat mencakup perubahan throughput, memperbarui kebijakan indeks, dll.

$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"

Pertama, perbarui akun untuk mencegah perubahan oleh apa pun yang terhubung melalui kunci akun.

$parameters = @{
    Name = $ACCOUNT_NAME
    ResourceGroupName = $RESOURCE_GROUP_NAME
    DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters

Buat Kunci Hapus pada sumber daya akun Azure Cosmos DB dan semua sumber daya anak.

$parameters = @{
    ResourceGroupName = $RESOURCE_GROUP_NAME
    ResourceName = $ACCOUNT_NAME
    LockName = $LOCK_NAME
    ApiVersion = "2020-04-01"
    ResourceType = "Microsoft.DocumentDB/databaseAccounts"
    LockLevel = "CanNotDelete"
}
New-AzResourceLock @parameters

Templat

Saat menerapkan kunci ke sumber daya Azure Cosmos DB, gunakan sumber daya Microsoft.Authorization/locks Azure Resource Manager (ARM).

{
  "type": "Microsoft.Authorization/locks",
  "apiVersion": "2017-04-01",
  "name": "cosmoslock",
  "dependsOn": [
    "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
  ],
  "properties": {
    "level": "CanNotDelete",
    "notes": "Do not delete Azure Cosmos DB account."
  },
  "scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
}

Sampel

Mengelola kunci sumber daya untuk Azure Cosmos DB:

Langkah berikutnya