Kelola izin akses untuk memulihkan akun Microsoft Azure Cosmos DB
BERLAKU UNTUK: Nosql MongoDB Gremlin Meja
Azure Cosmos DB memungkinkan Anda mengisolasi dan membatasi izin pemulihan untuk akun cadangan berkelanjutan ke peran tertentu atau utama. Izin akses ini dapat diterapkan pada cakupan langganan atau lebih terperinci pada lingkup akun sumber seperti yang ditunjukkan pada gambar berikut:
Cakupan adalah set sumber daya yang dapat diakses, untuk mempelajari selengkapnya tentang cakupan, lihat dokumentasi Azure RBAC. Di Microsoft Azure Cosmos DB, cakupan yang dapat diberlakukan diantaranya langganan sumber dan akun database untuk sebagian besar kasus penggunaan. Prinsipal yang melakukan tindakan pemulihan harus memiliki izin akses tertulis ke grup sumber daya tujuan.
Tetapkan peran untuk pemulihan menggunakan portal Microsoft Azure
Untuk melakukan pemulihan, pengguna atau prinsipal memerlukan izin untuk memulihkan (yang merupakan izin pemulihan/tindakan), dan izin untuk menyediakan akun baru (yang merupakan izin tulis). Untuk memberikan izin ini, pemilik langganan dapat menetapkan CosmosRestoreOperator
peran bawaan dan Cosmos DB Operator
kepada prinsipal.
Masuk ke portal Azure dan navigasikan ke langganan Anda. Peran
CosmosRestoreOperator
ini tersedia di tingkat langganan.Pilih Kontrol akses (IAM).
Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.
Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Pengaturan Nilai Peran CosmosRestoreOperator Tetapkan akses ke Pengguna, grup, atau perwakilan layanan Anggota <Pengguna pilihan Anda> Ulangi Langkah 4 dengan peran Operator Cosmos DB untuk memberikan izin menulis. Saat menetapkan peran ini dari portal Microsoft Azure, peran tersebut memberikan izin pemulihan ke seluruh langganan.
Cakupan izin
Scope | Contoh |
---|---|
Langganan | /langganan/00000000-0000-0000-0000-000000000000 |
Grup sumber daya | /langganan/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg |
sumber daya akun CosmosDB yang dapat dipulihkan | /langganan/00000000-0000-0000-0000-000000000000/penyedia/Microsoft.DocumentDB/lokasi/US Barat/dapatdipulihkanDatabaseAkun/23e99a35-cd36-4df4-9614-f767a03b9995 |
Sumber daya akun yang dapat dilepas dapat diekstraksi dari output az cosmosdb restorable-database-account list --account-name <accountname>
perintah dalam CLI atau Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname>
cmdlet di PowerShell. Atribut nama dalam output mewakili akun instanceID
yang dapat di pulihkan.
Izin pada akun sumber
Izin berikut diperlukan untuk melakukan berbagai aktivitas yang berkaitan dengan pemulihan untuk akun mode cadangan yang berkelanjutan:
Catatan
Izin dapat diberikan ke akun basis data yang dapat dipulihkan pada cakupan akun atau cakupan langganan. Menetapkan izin pada cakupan grup sumber daya tidak didukung.
Izin | Dampak | Cakupan minimum | Cakupan maksimum |
---|---|---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Izin akses ini diperlukan untuk penyebaran templat ARM untuk membuat akun yang dipulihkan. Lihat izin sampel TindakanDapatDipulihkan di bawah ini untuk cara mengatur peran ini. | Tidak berlaku | Tidak berlaku |
Microsoft.DocumentDB/databaseAccounts/write |
Izin ini diperlukan untuk memulihkan akun ke dalam grup sumber daya | Grup sumber daya tempat akun yang dipulihkan dibuat. | Langganan di mana akun yang dipulihkan dibuat |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action Anda tidak dapat memilih grup sumber daya sebagai cakupan izin. |
Izin ini diperlukan pada lingkup akun database sumber yang dapat dipulihkan untuk memungkinkan tindakan pemulihan dilakukan di atasnya. | Sumber daya AkunDatabaseDapatDipulihkan milik akun sumber sedang dipulihkan. Nilai ini juga diberikan oleh properti ID sumber daya akun database yang dapat di memulihkan. Contoh akun yang dapat dipulihkan adalah /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
Langganan yang berisi akun database yang dapat dipulihkan. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read Anda tidak dapat memilih grup sumber daya sebagai cakupan izin. |
Izin ini diperlukan pada cakupan akun database sumber yang dapat dipulihkan untuk mencantumkan akun database yang bisa dipulihkan. | Sumber daya AkunDatabaseDapatDipulihkan milik akun sumber sedang dipulihkan. Nilai ini juga diberikan oleh properti ID sumber daya akun database yang dapat di memulihkan. Contoh akun yang dapat dipulihkan adalah /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
Langganan yang berisi akun database yang dapat dipulihkan. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read Anda tidak dapat memilih grup sumber daya sebagai cakupan izin. |
Izin ini diperlukan pada lingkup akun sumber yang dapat di memulihkan untuk memungkinkan pembacaan sumber daya yang dapat di memulihkan seperti daftar database dan kontainer untuk akun yang dapat di memulihkan. | Sumber daya AkunDatabaseDapatDipulihkan milik akun sumber sedang dipulihkan. Nilai ini juga diberikan oleh properti ID sumber daya akun database yang dapat di memulihkan. Contoh akun yang dapat dipulihkan adalah /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
Langganan yang berisi akun database yang dapat dipulihkan. |
Izin di akun tujuan
Izin berikut diperlukan untuk melakukan berbagai aktivitas yang berkaitan dengan pemulihan untuk akun mode cadangan yang berkelanjutan:
Izin | Dampak |
---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Izin akses ini diperlukan untuk penyebaran templat ARM untuk membuat akun yang dipulihkan. Lihat izin sampel TindakanDapatDipulihkan di bawah ini untuk cara mengatur peran ini. |
Microsoft.DocumentDB/databaseAccounts/write |
Izin ini diperlukan untuk memulihkan akun ke dalam grup sumber daya |
Skenario penetapan peran Azure CLI untuk dipulihkan pada cakupan yang berbeda
Peran dengan izin dapat ditetapkan ke cakupan yang berbeda untuk mencapai kontrol terperinci tentang siapa yang dapat melakukan operasi pemulihan dalam langganan atau akun tertentu.
Tetapkan kapabilitas untuk memulihkan dari akun apa pun yang dapat dipulihkan dalam langganan
- Menetapkan peran bawaan
CosmosRestoreOperator
ke tingkat langganan tertentu
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>
Tetapkan kapabilitas untuk memulihkan dari akun tertentu
- Tetapkan tindakan tertulis pengguna pada grup sumber daya tertentu. Tindakan ini diperlukan untuk membuat akun baru di grup sumber daya.
- Tetapkan peran bawaan
CosmosRestoreOperator
ke akun database tertentu yang dapat dipulihkan yang perlu dipulihkan. Dalam perintah berikut, cakupan untukRestorableDatabaseAccount
diekstrak dariID
properti hasil eksekusiaz cosmosdb restorable-database-account list
(jika menggunakan CLI) atauGet-AzCosmosDBRestorableDatabaseAccount
(jika menggunakan PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope <RestorableDatabaseAccount>
Tetapkan kapabilitas untuk memulihkan dari akun sumber apa pun dalam grup sumber daya.
Untuk saat ini, operasi ini tidak didukung.
Pembuatan peran kustom untuk tindakan pemulihan dengan CLI
Pemilik langganan dapat memberikan izin untuk memulihkan ke identitas Microsoft Entra lainnya. Izin pemulihan didasarkan pada tindakan: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
, dan harus disertakan dalam izin pemulihan mereka. Ada peran bawaan yang disebut OperatorPemulihanKosmos yang memiliki peran ini disertakan. Anda dapat menetapkan izin menggunakan peran bawaan ini atau membuat peran kustom.
TindakanDapatDipulihkan di bawah ini mewakili peran kustom. Anda harus secara eksplisit membuat peran ini. Templat JSON berikut membuat peran kustom TindakanDapatDIpulihkan dengan izin pemulihan:
{
"assignableScopes": [
"/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744"
],
"description": "Can do a restore request for any Azure Cosmos DB database account with continuous backup",
"permissions": [
{
"actions": [
"Microsoft.Resources/deployments/validate/action",
"Microsoft.DocumentDB/databaseAccounts/write",
"Microsoft.Resources/deployments/write",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"Name": "RestorableAction",
"roleType": "CustomRole"
}
Selanjutnya gunakan perintah penyebaran templat berikut untuk membuat peran dengan izin pemulihan menggunakan templat ARM:
az role definition create --role-definition <JSON_Role_Definition_Path>
Langkah berikutnya
- Provisikan pencadangan berkelanjutan menggunakan portal Azure, PowerShell, CLI, atau Azure Resource Manager.
- Dapatkan tanda waktu terbaru yang dapat dipulihkan untuk akun SQL dan MongoDB.
- Pulihkan akun menggunakan portal Azure, PowerShell, CLI, atau Azure Resource Manager.
- Bermigrasi ke akun dari pencadangan berkala ke cadangan berkelanjutan.
- Model sumber daya mode cadangan berkelanjutan