Dodawanie lub edytowanie warunków przypisywania ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Warunek przypisania roli platformy Azure to dodatkowa kontrola, którą można opcjonalnie dodać do przypisania roli, aby zapewnić bardziej szczegółową kontrolę dostępu. Można na przykład dodać warunek, który wymaga, aby obiekt miał określony tag do odczytania obiektu. W tym artykule opisano sposób dodawania, edytowania, wyświetlania listy lub usuwania warunków przypisań ról przy użyciu interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

Aby uzyskać informacje o wymaganiach wstępnych dotyczących dodawania lub edytowania warunków przypisywania ról, zobacz Warunki wstępne.

Dodaj warunek

Aby dodać warunek przypisania roli, użyj polecenia az role assignment create. Polecenie az role assignment create zawiera następujące parametry związane z warunkami.

Parametr Type opis
condition Ciąg Warunek, w którym użytkownik może mieć uprawnienia.
condition-version Ciąg Wersja składni warunku. Jeśli --condition określono wartość bez --condition-version, wersja jest ustawiona na wartość domyślną 2.0.

W poniższym przykładzie pokazano, jak przypisać rolę Czytelnik danych obiektu blob usługi Storage z warunkiem. Warunek sprawdza, czy nazwa kontenera jest równa "blobs-example-container".

az role assignment create --role "Storage Blob Data Reader" --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName --assignee "user1@contoso.com" \
--description "Read access if container name equals blobs-example-container" \
--condition "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))" \
--condition-version "2.0"

Poniżej przedstawiono przykład danych wyjściowych:

{
    "canDelegate": null,
    "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",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

Edytowanie warunku

Aby edytować istniejący warunek przypisania roli, użyj polecenia az role assignment update i pliku JSON jako danych wejściowych. Poniżej przedstawiono przykładowy plik JSON, w którym zaktualizowano warunek i opis. conditionTylko właściwości , conditionVersioni description można edytować. Należy określić wszystkie właściwości, aby zaktualizować warunek przypisania roli.

{
    "canDelegate": null,
    "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",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

Użyj polecenia az role assignment update , aby zaktualizować warunek przypisania roli.

az role assignment update --role-assignment "./path/roleassignment.json"

Poniżej przedstawiono przykład danych wyjściowych:

{
    "canDelegate": null,
    "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",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

Wyświetlanie listy warunku

Aby wyświetlić listę warunków przypisania roli, użyj polecenia az role assignment list. Aby uzyskać więcej informacji, zobacz Wyświetlanie listy przypisań ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

Usuwanie warunku

Aby usunąć warunek przypisania roli, zmodyfikuj warunek przypisania roli i ustaw zarówno właściwości , condition jak i condition-version na pusty ciąg ("") lub null.

Alternatywnie, jeśli chcesz usunąć zarówno przypisanie roli, jak i warunek, możesz użyć polecenia az role assignment delete . Aby uzyskać więcej informacji, zobacz Usuwanie przypisań ról platformy Azure.

Następne kroki