Azure Cosmos DB 계정을 복원하는 권한 관리

적용 대상: NoSQL MongoDB Gremlin 테이블

Azure Cosmos DB를 사용하면 지속적인 백업 계정에 대한 복원 권한을 특정 역할 또는 보안 주체로 분리하고 제한할 수 있습니다. 이러한 권한은 다음 이미지에 표시된 것처럼 구독 범위나 더 세부적으로 원본 계정 범위에 적용될 수 있습니다.

List of roles required to perform restore operation.

범위는 액세스 권한이 있는 리소스 집합입니다. 범위에 관해 자세히 알아보려면 Azure RBAC 설명서를 참조하세요. Azure Cosmos DB에서 적용 가능한 범위는 대부분의 사용 사례에 대한 원본 구독 및 데이터베이스 계정입니다. 복원 작업을 수행하는 보안 주체에는 대상 리소스 그룹에 대한 쓰기 권한이 있어야 합니다.

Azure Portal을 사용한 복원용 역할 할당

복원을 수행하려면 사용자 또는 보안 주체에 복원 권한(즉, 복원/작업 권한)과 새 계정(즉, 쓰기 권한)을 프로비저닝할 수 있는 권한이 필요합니다. 이러한 권한을 부여하려면 구독의 소유자는 CosmosRestoreOperatorCosmos DB Operator 기본 제공 역할을 보안 주체에 할당할 수 있습니다.

  1. Azure Portal에 로그인하여 구독으로 이동합니다. CosmosRestoreOperator 역할은 구독 수준에서 사용할 수 있습니다.

  2. 액세스 제어(IAM) 를 선택합니다.

  3. 추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.

  4. 다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    설정
    역할 CosmosRestoreOperator
    다음에 대한 액세스 할당 사용자, 그룹 또는 서비스 주체
    멤버 <선택한 사용자>

    Screenshot that shows Add role assignment page in Azure portal.

  5. Cosmos DB Operator 역할을 사용해 4단계를 반복하여 쓰기 권한을 부여합니다. Azure Portal에서 이 역할을 할당할 때 전체 구독에 대한 복원 권한을 부여합니다.

사용 권한 범위

범위 예시
구독 /subscriptions/00000000-0000-0000-0000-000000000000
Resource group /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
CosmosDB 복원 가능한 계정 리소스 /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

복원 가능한 계정 리소스는 az cosmosdb restorable-database-account list --account-name <accountname> CLI의 명령이나 PowerShell의 Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> cmdlet의 출력에서 추출할 수 있습니다. 출력의 이름 특성은 복원 가능한 계정의 instanceID를 나타냅니다.

원본 계정에 대한 권한

지속적인 백업 모드 계정을 복원과 관련된 여러 작업을 수행하려면 다음 권한이 필요합니다.

참고 항목

계정 범위 또는 구독 범위에서 복원 가능한 데이터베이스 계정에 사용 권한을 할당할 수 있습니다. 리소스 그룹 범위에서 사용 권한을 할당하는 것은 지원되지 않습니다.

Permission 영향 최소 범위 최대 범위
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write 이러한 권한은 ARM 템플릿 배포에서 복원된 계정을 만드는 데 필요합니다. 이 역할을 설정하는 방법은 아래의 샘플 권한 RestorableAction을 참조하세요. 해당 없음 해당 없음
Microsoft.DocumentDB/databaseAccounts/write 계정을 리소스 그룹으로 복원하려면 이 권한이 필요합니다. 복원된 계정이 만들어진 리소스 그룹입니다. 복원된 계정이 만들어진 구독
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
권한 범위로 리소스 그룹을 선택할 수 없습니다.
이 권한은 원본 복원이 가능한 데이터베이스 계정 범위에서 복원 동작을 수행할 수 있도록 하는 데 필요합니다. 복원 중인 원본 계정에 속하는 RestorableDatabaseAccount 리소스입니다. 이 값은 복원 가능한 데이터베이스 계정 리소스의 ID 속성에도 제공됩니다. 복원 가능한 계정의 예시 중 하나인 /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>입니다. 복원 가능한 데이터베이스 계정이 포함된 구독입니다.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
권한 범위로 리소스 그룹을 선택할 수 없습니다.
이 권한은 복원 가능한 원본 데이터베이스 계정 범위에서 복원할 수 있는 데이터베이스 계정을 나열하는 데 필요합니다. 복원 중인 원본 계정에 속하는 RestorableDatabaseAccount 리소스입니다. 이 값은 복원 가능한 데이터베이스 계정 리소스의 ID 속성에도 제공됩니다. 복원 가능한 계정의 예시 중 하나인 /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>입니다. 복원 가능한 데이터베이스 계정이 포함된 구독입니다.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
권한 범위로 리소스 그룹을 선택할 수 없습니다.
이 권한은 원본 복원이 가능한 계정 범위에서 복원 가능한 계정에 대한 데이터베이스 및 컨테이너 목록과 같은 복원 가능한 리소스를 읽을 수 있도록 하는 데 필요합니다. 복원 중인 원본 계정에 속하는 RestorableDatabaseAccount 리소스입니다. 이 값은 복원 가능한 데이터베이스 계정 리소스의 ID 속성에도 제공됩니다. 복원 가능한 계정의 예시 중 하나인 /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>입니다. 복원 가능한 데이터베이스 계정이 포함된 구독입니다.

대상 계정에 대한 권한

지속적인 백업 모드 계정을 복원과 관련된 여러 작업을 수행하려면 다음 권한이 필요합니다.

Permission 영향
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write 이러한 권한은 ARM 템플릿 배포에서 복원된 계정을 만드는 데 필요합니다. 이 역할을 설정하는 방법은 아래의 샘플 권한 RestorableAction을 참조하세요.
Microsoft.DocumentDB/databaseAccounts/write 계정을 리소스 그룹으로 복원하려면 이 권한이 필요합니다.

다른 범위에서 복원하는 Azure CLI 역할 할당 시나리오

구독 또는 지정된 계정 내에서 복원 작업을 수행할 수 있는 사용자를 세부적으로 제어하기 위해 사용 권한이 있는 역할을 다른 범위에 할당할 수 있습니다.

구독 내의 모든 복원 가능한 계정에 복원 기능을 할당합니다

  • CosmosRestoreOperator 기본 제공 역할을 특정 구독 수준에 할당
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

특정 계정에서 복원 기능 할당

  • 특정 리소스 그룹에 대한 사용자 쓰기 작업을 할당합니다. 이 작업은 리소스 그룹에 새 계정을 만드는 데 필요합니다.
  • 복원해야 하는 특정 복원 가능한 데이터베이스 계정에 CosmosRestoreOperator 기본 제공 역할을 할당합니다. 다음 명령에서 az cosmosdb restorable-database-account list(CLI를 사용하는 경우) 또는 Get-AzCosmosDBRestorableDatabaseAccount(PowerShell을 사용하는 경우)의 실행 결과의 ID 속성에서 RestorableDatabaseAccount에 대한 범위가 추출됩니다.
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

리소스 그룹의 모든 원본 계정에 복원 기능을 할당합니다.

이 작업은 현재 지원되지 않습니다.

CLI를 사용한 복원 작업에 대한 사용자 지정 역할 만들기

구독 소유자는 다른 Microsoft Entra ID로 복원할 수 있는 권한을 제공할 수 있습니다. 복원 권한은 Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action 동작을 기반으로 하며, 이는 해당 복원 권한에 포함되어야 합니다. 이 역할을 포함하는 CosmosRestoreOperator라는 기본 제공 역할이 있습니다. 이 기본 제공 역할을 사용하여 사용 권한을 할당하거나 사용자 지정 역할을 만들 수 있습니다.

아래의 RestorableAction는 사용자 지정 역할을 나타냅니다. 이 역할은 명시적으로 만들어야 합니다. 다음 JSON 템플릿은 복원 권한이 있는 RestorableAction 사용자 지정 역할을 만듭니다.

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

다음 템플릿 배포 명령을 사용하여 ARM 템플릿을 사용하는 복원 권한이 있는 역할을 만듭니다.

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

다음 단계