Azure 역할 할당 조건은 필요에 따라 역할 할당에 추가하여 보다 세분화된 액세스 제어를 제공할 수 있는 추가 검사입니다. 예를 들어 개체를 읽는 데 특정 태그가 있어야 하는 조건을 추가할 수 있습니다. 이 문서에서는 REST API를 사용하여 역할 할당에 대한 조건을 추가, 편집, 나열 또는 삭제하는 방법을 설명합니다.
필수 조건
다음 버전을 사용해야 합니다.
-
2020-03-01-preview이상 -
2020-04-01-preview이후에 역할 할당을 위해description속성을 활용하려는 경우 -
2022-04-01는 안정적인 첫 번째 버전입니다.
역할 할당 조건을 추가하거나 편집하기 위한 필수 구성 요소에 대한 자세한 내용은 조건 필수 조건을 참조하세요.
조건 추가
역할 할당 조건을 추가하려면 역할 할당 - REST API 만들기를 사용합니다. 역할 할당 - 만들기 에는 조건과 관련된 다음 매개 변수가 포함됩니다.
| 매개 변수 | 유형 | Description |
|---|---|---|
condition |
String | 사용자에게 사용 권한을 부여할 수 있는 조건입니다. |
conditionVersion |
String | 조건 구문의 버전입니다. 지정하지 않고 condition지정하면 conditionVersion 버전이 기본값인 2.0으로 설정됩니다. |
다음 요청 및 내용을 사용하세요.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"condition": "{condition}",
"conditionVersion": "2.0",
"description": "{description}"
}
}
다음 예제에서는 조건을 사용하여 Storage Blob 데이터 판독기 역할을 할당하는 방법을 보여 줍니다. 조건은 컨테이너 이름이 'blobs-example-container'인지 여부를 확인합니다.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container"
}
}
다음은 출력의 예를 보여줍니다.
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"createdOn": "2022-07-20T06:20:44.0205560Z",
"updatedOn": "2022-07-20T06:20:44.2955371Z",
"createdBy": null,
"updatedBy": "{updatedById}",
"delegatedManagedIdentityResourceId": null,
"description": "Read access if container name equals blobs-example-container"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId}"
}
조건 편집
기존 역할 할당 조건을 편집하려면 역할 할당 조건을 추가하는 데 사용한 것과 동일한 역할 할당 - REST API 만들기를 사용합니다. 다음은 업데이트되는 conditiondescription JSON 예제를 보여줍니다.
condition, conditionVersion및 description 속성만 편집할 수 있습니다. 기존 역할 할당과 일치하도록 다른 속성을 지정해야 합니다.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2"
}
}
조건 나열
역할 할당 조건을 나열하려면 역할 할당 가져오기 또는 REST API 나열을 사용합니다. 자세한 내용은 REST API를 사용하여 Azure 역할 할당 나열을 참조하세요.
조건 삭제
역할 할당 조건을 삭제하려면 역할 할당 조건을 편집하고 조건 및 조건 버전을 모두 빈 문자열 또는 null로 설정합니다.
또는 역할 할당과 조건을 모두 삭제하려는 경우 역할 할당 - API 삭제를 사용할 수 있습니다. 자세한 내용은 Azure 역할 할당 제거를 참조하세요.