使用條件委派 Azure 角色指派管理的範例
本文列出如何將 Azure 角色指派管理委派給有條件的其他使用者的範例。
必要條件
如需新增或編輯角色指派條件的必要條件相關資訊,請參閱條件必要要件。
範例:限制角色
此條件可讓委派只新增或移除備份參與者或備份讀取者角色的角色指派。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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}
)
)
以下是使用 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
範例:限制角色和主體類型
此條件可讓委派只新增或移除備份參與者或備份讀取者角色的角色指派。 此外,委派只能將這些角色指派給使用者或群組類型的主體。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
Condition |
設定 |
範本 |
限制角色和主體類型 |
角色 |
備份參與者 備份讀取器 |
主體類型 |
使用者 群組 |
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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'}
)
)
以下是使用 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
範例:限制角色和特定群組
此條件可讓委派只新增或移除備份參與者或備份讀取者角色的角色指派。 此外,委派只能將這些角色指派給名為 Marketing 的特定群組(28c35fea-2099-4cf5-8ad9-473547bc9423) 或 Sales (86951b8b-723a-407b-a74a-1bca3f0c95d0)。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
Condition |
設定 |
範本 |
限制角色和主體 |
角色 |
備份參與者 備份讀取器 |
Principals |
Marketing Sales |
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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}
)
)
以下是使用 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
範例:限制虛擬機管理
此條件可讓委派只新增或移除虛擬機 管理員 istrator 登入或虛擬機使用者登入角色的角色指派。 此外,委派只能將這些角色指派給名為 Dara 的特定使用者(ea585310-c95c-4a68-af22-49af4363bbb1)。
當您想要允許委派針對剛建立的虛擬機,將虛擬機登入角色指派給自己時,此條件很有用。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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}
)
)
以下是使用 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
範例:限制 AKS 叢集管理
此條件可讓委派只新增或移除 Azure Kubernetes Service RBAC 管理員、Azure Kubernetes Service RBAC 叢集 管理員、Azure Kubernetes Service RBAC 讀取器或 Azure Kubernetes Service RBAC 寫入器角色的角色指派。 此外,委派只能將這些角色指派給名為 Dara 的特定使用者(ea585310-c95c-4a68-af22-49af4363bbb1)。
當您想要允許委派將 Azure Kubernetes Service (AKS) 叢集數據平面授權角色指派給他們剛建立的叢集時,此條件很有用。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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}
)
)
以下是使用 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
範例:限制 ACR 管理
此條件可讓委派只新增或移除 AcrPull 角色的角色指派。 此外,委派只能將這些角色指派給服務主體類型的主體。
當您想要允許開發人員將 AcrPull 角色指派給受控識別本身,以便從 Azure Container Registry (ACR) 提取映像時,此條件很有用。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
Condition |
設定 |
範本 |
限制角色和主體類型 |
角色 |
AcrPull |
主體類型 |
服務主體 |
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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'}
)
)
以下是使用 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
範例:限制新增角色指派
此條件可讓委派只新增備份參與者或備份讀取者角色的角色指派。 委派可以移除任何角色指派。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
以下是使用 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
範例:允許大部分角色,但不允許其他人指派角色
此條件可讓委派新增或移除所有角色的角色指派,但擁有者、角色型 存取控制 管理員 istrator 和使用者存取 管理員 istrator 角色除外。
當您想要允許委派指派大部分角色,但不允許委派允許其他人指派角色時,此條件很有用。
注意
此條件應謹慎使用。 如果稍後新增包含建立角色指派許可權的新內建或自定義角色,則此條件不會防止委派指派角色。 條件必須更新,才能包含新的內建或自定義角色。
您必須將此條件新增至包含下列動作之委派的任何角色指派。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
以下是使用 Azure 入口網站和條件範本新增此條件的設定。
以下是使用 Azure 入口網站和條件編輯器新增此條件的設定。
若要同時以新增和移除角色指派動作為目標,請注意,您必須新增兩個條件。 您必須新增兩個條件,因為每個動作的屬性來源都不同。 如果您嘗試以相同條件中的這兩個動作為目標,您將無法新增表達式。 如需詳細資訊,請參閱 徵兆 - 沒有可用的選項錯誤。
(
(
!(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}
)
)
以下是使用 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
下一步