Azure Cosmos DB hesabını geri yükleme izinlerini yönetme

Azure Cosmos DB, sürekli yedekleme hesabının geri yükleme izinlerini belirli bir rol veya sorumluyla yalıtmanıza ve kısıtlamanıza olanak tanır. Bu izinler, aşağıdaki görüntüde gösterildiği gibi abonelik kapsamında veya kaynak hesap kapsamında daha ayrıntılı olarak uygulanabilir:

Geri yükleme işlemini gerçekleştirmek için gereken rollerin listesi.

Kapsam, erişim izni olan bir kaynak kümesidir. Kapsamlar hakkında daha fazla bilgi edinmek için Azure RBAC belgelerine bakın. Azure Cosmos DB'de geçerli kapsamlar, kullanım örneklerinin çoğu için kaynak abonelik ve veritabanı hesabıdır. Geri yükleme eylemlerini gerçekleştiren sorumlunun hedef kaynak grubuna yazma izinleri olmalıdır.

Azure portalını kullanarak geri yükleme rolleri atama

Geri yükleme gerçekleştirmek için, bir kullanıcı veya sorumlunun geri yükleme iznine (geri yükleme/eylem izni) ve yeni bir hesap sağlama iznine (yazma izni) ihtiyacı vardır. Bu izinleri vermek için, bu aboneliğin sahibi CosmosRestoreOperator ve Cosmos DB Operator yerleşik-rolleri bir sorumluya atayabilir.

  1. Azure portalında oturum açın ve aboneliğinize gidin. CosmosRestoreOperator rolü abonelik seviyesinde kullanılabilir.

  2. Erişim denetimi (IAM) öğesini seçin.

  3. "Ekle>Rol atamasını ekle sayfasını açmak için Rol atamasını ekle seçeneğini seçin."

  4. Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

    Ayarlar Value
    Rol CosmosRestoreOperator
    Şu kişiye erişim ata: Kullanıcı, grup veya hizmet sorumlusu
    Members <Tercihinize göre kullanıcı>

    Azure portalında Rol ataması ekle sayfasını gösteren ekran görüntüsü.

  5. Yazma izni vermek için Cosmos DB İşleci rolüyle 4. adımı yineleyin. Bu rolü Azure portalından atarken, aboneliğin tamamına geri yükleme izni verir.

İzin kapsamları

Scope Example
Subscription /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e
Kaynak Grubu /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/resourceGroups/Example-cosmosdb-rg
CosmosDB geri yüklenebilen hesap kaynağı /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e

Geri yüklenebilir olan hesap kaynağı, CLI'deki az cosmosdb restorable-database-account list --account-name <accountname> komutunun çıkışından veya PowerShell'deki Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> cmdlet'inden ayıklanabilir. Çıktıdaki name özniteliği, geri yüklenecek hesabın instanceID'sini temsil eder.

Kaynak hesap üzerindeki izinler

Sürekli yedekleme modu hesapları için geri yüklemeyle ilgili farklı etkinlikleri gerçekleştirmek için aşağıdaki izinler gereklidir:

Note

İzinler, hesap kapsamında veya abonelik kapsamında geri yüklenebilir bir veritabanı hesabına atanabilir. Kaynak grubu kapsamında izin atama desteklenmez.

İzin Impact En düşük kapsam Azami kapsam
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Geri yüklenen hesabı oluşturmak için ARM şablonu dağıtımı için bu izinler gereklidir. Bu rolü ayarlama hakkında bilgi için aşağıdaki RestoreableAction örnek iznine bakın. Uygulanamaz Uygulanamaz
Microsoft.DocumentDB/databaseAccounts/write Bir hesabı kaynak grubuna geri yüklemek için bu izin gereklidir Geri yüklenen hesabın oluşturulduğu kaynak grubu. Geri yüklenen hesabın oluşturulduğu abonelik
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
İzin kapsamı olarak kaynak grubunu seçemezsiniz.
Bu izin, üzerinde geri yükleme eylemlerinin gerçekleştirilebilmesi için kaynak geri yüklenebilir veritabanı hesabı kapsamında gereklidir. Kaynak hesaba geri yüklenen RestorableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen bir hesap örneği /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> şeklindedir. Geri yüklenebilen veritabanı hesabını içeren abonelik.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
İzin kapsamı olarak kaynak grubunu seçemezsiniz.
Bu izin, geri yüklenebilen veritabanı hesaplarını listelemek için kaynak geri yüklenebilir veritabanı hesabı kapsamında gereklidir. Kaynak hesaba geri yüklenen RestorableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen bir hesap örneği /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> şeklindedir. Geri yüklenebilen veritabanı hesabını içeren abonelik.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
İzin kapsamı olarak kaynak grubunu seçemezsiniz.
Geri yüklenebilir kaynaklar, örneğin bir geri yüklenebilir hesabın veritabanı ve kapsayıcı listesi gibi unsurların okunmasına izin vermek için, bu izin geri yüklenebilir hesap kaynağı düzeyinde gereklidir. Kaynak hesaba geri yüklenen RestorableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen bir hesap örneği /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> şeklindedir. Geri yüklenebilen veritabanı hesabını içeren abonelik.

Hedef hesap üzerindeki izinler

Sürekli yedekleme modu hesapları için geri yüklemeyle ilgili farklı etkinlikleri gerçekleştirmek için aşağıdaki izinler gereklidir:

İzin Impact
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Geri yüklenen hesabı oluşturmak için ARM şablonu dağıtımı için bu izinler gereklidir. Bu rolü ayarlama hakkında bilgi için aşağıdaki RestoreableAction örnek iznine bakın.
Microsoft.DocumentDB/databaseAccounts/write Bir hesabı kaynak grubuna geri yüklemek için bu izin gereklidir

Farklı kapsamlarda geri yüklemek için Azure CLI rol atama senaryoları

İzinli roller, abonelikte veya belirli bir hesapta geri yükleme işlemini kimlerin gerçekleştirebileceği üzerinde ayrıntılı denetim elde etmek için farklı kapsamlara atanabilir.

Abonelikteki herhangi bir geri yüklenebilir hesaptan geri yükleme yeteneği atanması

  • Belirli bir abonelik düzeyine CosmosRestoreOperator yerleşik rolü atayın.
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Belirli bir hesaptan geri yükleme yetkisi atama

  • Belirli bir kaynak grubuna kullanıcı yazma eylemi atayın. Bu eylem, kaynak grubunda yeni bir hesap oluşturmak için gereklidir.
  • Geri yüklenebilir belirli bir veritabanı hesabına CosmosRestoreOperator yerleşik rolünü atayın. Aşağıdaki komutta, RestorableDatabaseAccount için kapsam, yürütme sonucunun ID özelliğinden (CLI kullanılıyorsa az cosmosdb restorable-database-account list veya PowerShell kullanılıyorsa Get-AzCosmosDBRestorableDatabaseAccount) ayıklanır.
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Bir kaynak grubundaki herhangi bir kaynak hesaptan geri yükleme yeteneği atayın.

Bu işlem şu anda desteklenmiyor.

CLI ile geri yükleme eylemi için özel rol oluşturma

Abonelik sahibi, başka bir Microsoft Entra kimliğine geri yükleme izni verebilir. Geri yükleme izni şu eylemi temel alır: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/actionve geri yükleme izinlerine dahil edilmelidir. Bu role sahip CosmosRestoreOperator adlı yerleşik bir rol vardır. Bu yerleşik rolü kullanarak izni atayabilir veya özel bir rol oluşturabilirsiniz.

Aşağıdaki RestoreableAction özel bir rolü temsil eder. Bu rolü açıkça oluşturmanız gerekir. Aşağıdaki JSON şablonu, geri yükleme izniyle RestorableAction özel bir rol oluşturur:

{
  "assignableScopes": [
    "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
  ],
  "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"
}

Ardından ARM şablonunu kullanarak geri yükleme iznine sahip bir rol oluşturmak için aşağıdaki şablon dağıtım komutunu kullanın:

az role definition create --role-definition <JSON_Role_Definition_Path>

Sonraki Adımlar