条件を使用して Azure ロールの割り当て管理を委任する例
- [アーティクル]
-
-
この記事では、条件を使用して Azure ロールの割り当て管理を他のユーザーに委任する方法の例を示します。
前提条件
ロールの割り当て条件を追加または編集するための前提条件の詳細については、条件の前提条件に関するページを参照してください。
例: ロールを制約する
この条件により、代理人は、バックアップ共同作成者またはバックアップ閲覧者ロールのロールの割り当てを追加または削除できます。
この条件は、次のアクションを含むデリゲートのロールの割り当てに追加する必要があります。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Azure portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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 portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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 portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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
例: 仮想マシンの管理を制約する
この条件により、デリゲートは、仮想マシン管理者ログインまたは仮想マシン ユーザー ログイン ロールのロールの割り当てを追加または削除できます。 また、デリゲートは、"Dara" (ea585310-c95c-4a68-af22-49af4363bbb1) という名前の特定のユーザーにのみこれらのロールを割り当てることができます。
この条件は、先ほど作成した仮想マシンに対して、デリゲートが自身に仮想マシン ログイン ロールを割り当てることができるようにする場合に便利です。
この条件は、次のアクションを含むデリゲートのロールの割り当てに追加する必要があります。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Azure portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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 portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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 ロールのロールの割り当てを追加または削除できます。 また、デリゲートは、サービス プリンシパルの種類のプリンシパルにのみこれらのロールを割り当てることができます。
この条件は、Azure Container Registry (ACR) からイメージをプルできるように、開発者がマネージド ID 自体に AcrPull ロールを割り当てることができるようにする場合に便利です。
この条件は、次のアクションを含むデリゲートのロールの割り当てに追加する必要があります。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Azure portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
状態 |
設定 |
Template |
ロールとプリンシパルの種類を制約する |
ロール |
AcrPull |
プリンシパルの種類 |
サービス プリンシパル |
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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 portal と条件エディターを使用してこの条件を追加する設定を次に示します。
(
(
!(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
例: ほとんどのロールを許可するが、他のユーザーにロールの割り当てを許可しない
この条件により、デリゲートは、所有者、ロール ベースのアクセスの制御の管理者、およびユーザー アクセス管理者ロールを除くすべてのロールに対してロールの割り当てを追加または削除できます。
この条件は、代理人にほとんどのロールの割り当てを許可するが、他のユーザーにロールの割り当てを許可しない場合に便利です。
Note
この条件の使用には注意が必要です。 ロールの割り当てを作成するアクセス許可を含む新しい組み込みロールまたはカスタム ロールが後で追加された場合、この条件では、代理人がロールを割り当てなくなります。 新しい組み込みロールまたはカスタム ロールを含めるには、条件を更新する必要があります。
この条件は、次のアクションを含むデリゲートのロールの割り当てに追加する必要があります。
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Azure portal と条件テンプレートを使用してこの条件を追加する設定を次に示します。
Azure portal と条件エディターを使用してこの条件を追加する設定を次に示します。
ロールの割り当ての追加と削除の両方のアクションを対象にするには、2 つの条件を追加する必要があることにご注意ください。 属性ソースはアクションごとに異なるため、2 つの条件を追加する必要があります。 両方のアクションを同じ条件でターゲットにしようとすると、式を追加できなくなります。 詳細については、「現象 - 使用可能なオプションがありませんエラー」をご覧ください。
(
(
!(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
次のステップ