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

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Gremlin Tablo

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:

List of roles required to perform restore operation.

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, aboneliğin sahibi ve Cosmos DB Operator yerleşik rollerini bir sorumluya atayabilirCosmosRestoreOperator.

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

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

  3. Rol ataması ekle sayfasını açmak için Rol ataması ekle'yi> seçin.

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

    Ayar Değer
    Rol CosmosRestoreOperator
    Şu kişiye erişim ata: Kullanıcı, grup veya hizmet sorumlusu
    Üyeler <Tercihinize göre kullanıcı>

    Screenshot that shows Add role assignment page in Azure portal.

  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 Örnek
Abonelik /subscriptions/00000000-0000-0000-0000-00000000000
Kaynak grubu /subscriptions/00000000-0000-0000-0000-00000000000000/resourceGroups/Example-cosmosdb-rg
CosmosDB geri yüklenebilen hesap kaynağı /subscriptions/00000000-0000-0000-00000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

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

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:

Dekont

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

İzin Etki En düşük kapsam En fazla 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 Geçerli değil
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. Geri yüklenen kaynak hesaba ait RestoreableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen hesaba örnek olarak /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid örneklerinden biri örnektir> 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. Geri yüklenen kaynak hesaba ait RestoreableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen hesaba örnek olarak /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid örneklerinden biri örnektir> 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 bir hesabın veritabanı ve kapsayıcı listesi gibi geri yüklenebilen kaynakların okunmasına izin vermek için kaynak geri yüklenebilir hesap kapsamında gereklidir. Geri yüklenen kaynak hesaba ait RestoreableDatabaseAccount kaynağı. Bu değer, geri yüklenebilen ID veritabanı hesabı kaynağının özelliği tarafından da verilir. Geri yüklenebilen hesaba örnek olarak /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid örneklerinden biri örnektir> 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 Etki
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 geri yüklenebilir hesaplardan geri yükleme yeteneği atama

  • CosmosRestoreOperator Yerleşik rolü belirli bir abonelik düzeyine atama
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Belirli bir hesaptan geri yükleme yeteneği atama

  • Belirli bir kaynak grubuna kullanıcı yazma eylemi atayın. Bu eylem, kaynak grubunda yeni bir hesap oluşturmak için gereklidir.
  • CosmosRestoreOperator Yerleşik rolü, geri yüklenmesi gereken belirli geri yüklenebilir veritabanı hesabına atayın. Aşağıdaki komutta, için kapsamı RestorableDatabaseAccount yürütme sonucunun az cosmosdb restorable-database-account listözelliğinden ID (CLI kullanılıyorsa) veya Get-AzCosmosDBRestorableDatabaseAccount(PowerShell kullanılıyorsa) 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 RestoreableAction özel bir rol oluşturur:

{
  "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"
}

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