W tym artykule wymieniono przykłady delegowania zarządzania przypisaniem ról platformy Azure do innych użytkowników z warunkami.
Wymagania wstępne
Aby uzyskać informacje o wymaganiach wstępnych dotyczących dodawania lub edytowania warunków przypisywania ról, zobacz Warunki wstępne.
Przykład: Ograniczanie ról
Ten warunek umożliwia delegatowi dodawanie lub usuwanie przypisań ról tylko dla ról Współautor kopii zapasowej lub Czytelnik kopii zapasowych .
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby uwzględnić zarówno akcje dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz kierować obie akcje w tym samym warunku, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: Ograniczanie ról i typów głównych
Ten warunek umożliwia delegatowi dodawanie lub usuwanie przypisań ról tylko dla ról Współautor kopii zapasowej lub Czytelnik kopii zapasowych . Ponadto pełnomocnik może przydzielić te role tylko do podmiotów typu użytkownik lub grupa.
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby ukierunkować zarówno akcje dodawania, jak i usuwania przypisania roli, należy zauważyć, że trzeba dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz kierować obie akcje w tym samym warunku, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: ograniczenia ról i określonych grup
Ten warunek umożliwia delegatowi dodawanie lub usuwanie przypisań ról tylko dla ról Współautor kopii zapasowej lub Czytelnik kopii zapasowych . Ponadto pełnomocnik może przypisać te role tylko do określonych grup o nazwie Marketing (28c35fea-2099-4cf5-8ad9-473547bc9423) lub Sales (86951b8b-723a-407b-a74a-1bca3f0c95d0).
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby wybrać zarówno akcje dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz skierować obydwie akcje pod tym samym warunkiem, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: Ograniczanie zarządzania maszynami wirtualnymi
Ten warunek umożliwia delegowaniu dodawanie lub usuwanie przypisań ról tylko dla ról logowania administratora maszyny wirtualnej lub logowania użytkownika maszyny wirtualnej . Ponadto pełnomocnik może przypisać te role tylko do określonego użytkownika o nazwie Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Ten warunek jest przydatny, gdy chcesz zezwolić delegatowi na przypisanie sobie roli logowania do maszyny wirtualnej, którą dopiero co utworzyli.
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby wybrać zarówno akcje dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz kierować obie akcje w tym samym warunku, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: ogranicz zarządzanie klastrem AKS
Ten warunek umożliwia delegatowi dodawanie lub usuwanie przypisań ról tylko dla ról Azure Kubernetes Service RBAC Admin, Azure Kubernetes Service RBAC Cluster Admin, Azure Kubernetes Service RBAC Reader lub Azure Kubernetes Service RBAC Writer. Ponadto pełnomocnik może przypisać te role tylko do określonego użytkownika o nazwie Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Ten warunek jest przydatny, gdy chcesz zezwolić delegatowi na przypisanie samemu sobie ról autoryzacji klastra płaszczyzny danych usługi Azure Kubernetes Service (AKS) dla właśnie utworzonego klastra.
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby uwzględnić zarówno akcje dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz kierować obie akcje w tym samym warunku, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: ograniczanie zarządzania usługą ACR
Ten warunek umożliwia delegatowi dodawanie lub usuwanie przypisań ról tylko dla roli AcrPull . Ponadto pełnomocnik może przypisywać te role tylko do jednostek typu jednostki usługi.
Ten warunek jest przydatny, gdy chcesz zezwolić deweloperowi na przypisanie roli AcrPull do tożsamości zarządzanej, aby można było ściągać obrazy z usługi Azure Container Registry (ACR).
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
| Warunek |
Ustawienie |
| Szablon |
Ogranicz role i typy główne |
| Role |
AcrPull |
| Główne typy |
Podmioty usługowe |
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby skierować zarówno działania dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz wybrać obie akcje pod tym samym warunkiem, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: Ograniczenie dodawania przypisań ról
Ten warunek umożliwia delegatowi dodawanie tylko przydziałów dla ról Współautor kopii zapasowej lub Czytelnik kopii zapasowych. Pełnomocnik może usunąć wszystkie przypisania ról.
Ten warunek należy dodać do wszystkich przypisań ról dla pełnomocnika, które obejmują następującą akcję.
Microsoft.Authorization/roleAssignments/write
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Przykład: Zezwalaj na większość ról, ale nie zezwalaj innym osobom na przypisywanie ról
Ten warunek umożliwia pełnomocnikowi dodawanie lub usuwanie przypisań ról dla wszystkich ról, z wyjątkiem ról Właściciel, Administrator kontroli dostępu opartej na rolach i Administrator dostępu użytkowników .
Ten warunek jest przydatny, gdy chcesz zezwolić delegatowi na przypisywanie większości ról, ale nie zezwalaj delegatowi na przypisywanie ról innym osobom.
Uwaga
Ten warunek należy stosować ostrożnie. Jeśli zostanie później dodana nowa wbudowana lub niestandardowa rola, która zawiera uprawnienie do tworzenia przypisań ról, ten warunek nie uniemożliwi delegatowi przypisywania ról. Warunek musi zostać zaktualizowany, aby uwzględnić nową wbudowaną lub niestandardową rolę.
Ten warunek należy dodać do wszystkich przypisań ról dla delegata, które obejmują następujące akcje.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i szablonu warunku.
Poniżej przedstawiono ustawienia umożliwiające dodanie tego warunku przy użyciu witryny Azure Portal i edytora warunków.
Aby wybrać zarówno akcje dodawania, jak i usuwania przypisania roli, należy dodać dwa warunki. Należy dodać dwa warunki, ponieważ źródło atrybutów jest inne dla każdej akcji. Jeśli spróbujesz kierować obie akcje w tym samym warunku, nie będzie można dodać wyrażenia. Aby uzyskać więcej informacji, zobacz Objaw — brak dostępnych opcji błędu.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)
Poniżej przedstawiono sposób dodawania tego warunku przy użyciu programu Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Następne kroki