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. |
- Akun Azure Cosmos DB yang sudah ada.
- Jika Anda memiliki langganan Azure, buat akun baru.
- Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Atau, Anda dapat mencoba Azure Cosmos DB gratis sebelum berkomitmen.
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
.
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
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'))]"
}
Mengelola kunci sumber daya untuk Azure Cosmos DB:
- API untuk keyspace Cassandra dan tabel Azure CLI | Azure PowerShell
- API untuk database Gremlin dan grafik Azure CLI | Azure PowerShell
- API untuk database MongoDB dan pengumpulan Azure CLI| Azure PowerShell
- API untuk database NoSQL dan kontainer Azure CLI | Azure PowerShell
- API untuk tabel Tabel Azure CLI | Azure PowerShell