Azure Cosmos DB 계정을 복원하는 권한 관리
적용 대상: NoSQL MongoDB Gremlin 테이블
Azure Cosmos DB를 사용하면 지속적인 백업 계정에 대한 복원 권한을 특정 역할 또는 보안 주체로 분리하고 제한할 수 있습니다. 이러한 권한은 다음 이미지에 표시된 것처럼 구독 범위나 더 세부적으로 원본 계정 범위에 적용될 수 있습니다.
범위는 액세스 권한이 있는 리소스 집합입니다. 범위에 관해 자세히 알아보려면 Azure RBAC 설명서를 참조하세요. Azure Cosmos DB에서 적용 가능한 범위는 대부분의 사용 사례에 대한 원본 구독 및 데이터베이스 계정입니다. 복원 작업을 수행하는 보안 주체에는 대상 리소스 그룹에 대한 쓰기 권한이 있어야 합니다.
Azure Portal을 사용한 복원용 역할 할당
복원을 수행하려면 사용자 또는 보안 주체에 복원 권한(즉, 복원/작업 권한)과 새 계정(즉, 쓰기 권한)을 프로비저닝할 수 있는 권한이 필요합니다. 이러한 권한을 부여하려면 구독의 소유자는 CosmosRestoreOperator
및 Cosmos DB Operator
기본 제공 역할을 보안 주체에 할당할 수 있습니다.
Azure Portal에 로그인하여 구독으로 이동합니다.
CosmosRestoreOperator
역할은 구독 수준에서 사용할 수 있습니다.액세스 제어(IAM) 를 선택합니다.
추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.
다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.
설정 값 역할 CosmosRestoreOperator 다음에 대한 액세스 할당 사용자, 그룹 또는 서비스 주체 멤버 <선택한 사용자> Cosmos DB Operator 역할을 사용해 4단계를 반복하여 쓰기 권한을 부여합니다. Azure Portal에서 이 역할을 할당할 때 전체 구독에 대한 복원 권한을 부여합니다.
사용 권한 범위
범위 | 예시 |
---|---|
구독 | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Resource group | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/Example-cosmosdb-rg |
CosmosDB 복원 가능한 계정 리소스 | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e |
복원 가능한 계정 리소스는 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/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"
}
다음 템플릿 배포 명령을 사용하여 ARM 템플릿을 사용하는 복원 권한이 있는 역할을 만듭니다.
az role definition create --role-definition <JSON_Role_Definition_Path>
다음 단계
- Azure Portal, PowerShell, CLI 또는 Azure Resource Manager를 사용하여 지속적인 백업을 프로비전합니다.
- SQL 및 MongoDB 계정에 대한 자세한 내용은 복원 가능한 최신 타임스탬프 가져오기를 참조하세요.
- Azure Portal, PowerShell, CLI 또는 Azure Resource Manager를 사용하여 계정을 복원합니다.
- 정기적 백업에서 지속적인 백업으로 계정에 마이그레이션합니다.
- 지속적인 백업 모드의 리소스 모델