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:

List of roles required to perform restore operation.

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.

  1. Masuk ke portal Azure dan navigasikan ke langganan Anda. Peran CosmosRestoreOperator ini tersedia di tingkat langganan.

  2. Pilih Kontrol akses (IAM).

  3. Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  4. 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>

    Screenshot that shows Add role assignment page in Azure portal.

  5. 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 untuk RestorableDatabaseAccount diekstrak dari ID properti hasil eksekusi az cosmosdb restorable-database-account list(jika menggunakan CLI) atau Get-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