列出 "Azure" 的拒绝分配

拒绝分配类似于角色分配,可将一组拒绝操作附加到特定范围内的用户、组或服务主体,以便拒绝访问。 即使角色分配授予用户访问权限,拒绝分配也会阻止用户执行特定的Azure资源操作。

本文介绍如何列出拒绝分配。

重要

不能直接创建自己的拒绝分配。 拒绝分配由Azure创建和管理。

如何创建拒绝分配权限

拒绝分配由Azure创建和管理,以保护资源。 不能直接创建自己的"拒绝分配"规则。 但是,可以在创建部署堆栈时指定拒绝设置,这会创建部署堆栈资源拥有的拒绝分配。 有关详细信息,请参阅 Azure RBAC 限制

比较角色分配和拒绝分配

拒绝权限分配遵循与角色分配类似的模式,但还存在一些差异。

能力 角色分配 拒绝分配
授予访问权限
拒绝访问
可以直接创建
在某个范围应用
排除主要负责人
阻止继承到子作用域
申请经典订阅管理员分配。

拒绝分配属性

拒绝分配具有以下属性:

资产 必选 类型 DESCRIPTION
DenyAssignmentName 是的 字符串 拒绝分配的显示名称。 对于给定作用域,名称必须是唯一的。
Description 字符串 拒绝分配的说明。
Permissions.Actions 至少一个 Actions 或一个 DataActions 字符串数组[] 这是一个字符串数组,用于指定被拒绝访问授权所阻止的控制平面操作。
Permissions.NotActions 字符串数组[] 一个字符串数组,用于指定要从拒绝分配中排除的控制平面操作。
Permissions.DataActions 至少一个Actions或一个DataActions 字符串数组[] 一个字符串数组,用于指定被拒绝分配阻止访问的数据平面操作。
Permissions.NotDataActions 字符串数组[] 一个字符串数组,用于指定要从拒绝分配中排除的数据平面操作。
Scope 字符串 用于指定拒绝分配应用到的作用域的字符串。
DoNotApplyToChildScopes 布尔 指定拒绝分配规则是否适用于子作用域。 默认值为 false。
Principals[i].Id 是的 字符串数组[] 拒绝分配应用到的Microsoft Entra主体对象 ID(用户、组、服务主体或托管标识)数组。 设置为空 GUID 00000000-0000-0000-0000-000000000000 以表示所有主体。
Principals[i].Type 字符串数组[] 由 Principals[i].Id 表示的对象类型数组。将其设置为 SystemDefined 代表所有主体。
ExcludePrincipals[i].Id 字符串数组[] 不适用拒绝分配的 Microsoft Entra 主体对象 ID(用户、组、服务主体或托管标识)数组。
ExcludePrincipals[i].Type 字符串数组[] ExcludePrincipals[i].Id 所表示的对象类型的数组。
IsSystemProtected 布尔 指定此拒绝分配是由Azure创建的,不能编辑或删除。 当前,所有拒绝分配受系统保护。

“所有主体”主体

为了支持拒绝分配,引入了名为“所有主体”的系统定义的主体。 此主体表示Microsoft Entra目录中的所有用户、组、服务主体和托管标识。 如果主体 ID 是零 GUID 00000000-0000-0000-0000-000000000000 且主体类型是 SystemDefined,则此主体表示所有主体。 在 Azure PowerShell 的输出中,所有主体显示如下所示:

Principals              : {
                          DisplayName:  All Principals
                          ObjectType:   SystemDefined
                          ObjectId:     00000000-0000-0000-0000-000000000000
                          }

可以将“所有主体”与 ExcludePrincipals 组合使用来拒绝除了某些用户之外的所有主体。 所有 Principals 具有以下约束:

  • 只能用于 Principals,不能用于 ExcludePrincipals
  • Principals[i].Type 必须设置为 SystemDefined

列出拒绝分配

按照以下步骤列出拒绝的分配。

重要

不能直接创建自己的拒绝分配。 拒绝分配是由 Azure 创建和管理的。

先决条件

要获取有关拒绝分配的信息,您必须拥有:

  • Microsoft.Authorization/denyAssignments/read 权限被包含在大多数 Azure 内置角色中。

列出 Azure 门户中的拒绝分配

请执行以下步骤,在订阅或管理组范围列出拒绝分配项。

  1. 在Azure门户中,打开所选范围,例如资源组或订阅。

  2. 选择“访问控制(IAM)”

  3. 选择“拒绝分配”选项卡(或选择“查看拒绝分配”磁贴上的“视图”按钮)

    如果此范围内或继承至此范围的任何拒绝项存在,它们将被列出。

    “访问控制 (IAM)”页和“拒绝分配”选项卡的屏幕截图,其中列出了所选范围内的拒绝分配。

  4. 若要显示其他列,请选择“编辑列”。

    “拒绝分配”列窗格的屏幕截图,其中显示了如何将列添加到拒绝分配列表。

    DESCRIPTION
    名称 拒绝分配的名称。
    主体类型 用户、组、系统定义的组或服务主体。
    已拒绝 包括在拒绝分配中的安全主体的名称。
    Id 拒绝分配的唯一标识符。
    排除的主体 是否有安全主体被排除在拒绝权限分配之外。
    不适用于儿童 拒绝策略是否已继承到子范围。
    受系统保护 拒绝分配是否由 Azure 云服务进行管理。 当前始终为“是”。
    范围 管理组、订阅、资源组或资源。
  5. 将勾选标记添加到任何已启用的项目,然后选择确定以显示所选列。

列出有关拒绝分配的详细信息

执行以下步骤,以便列出有关拒绝分配的更多详细信息。

  1. 按照上一部分的说明打开“拒绝分配”窗格。

  2. 选择拒绝的分配名称以打开用户页面。

    “用户”页的屏幕截图,显示了“拒绝分配”中“适用于”和“排除”的内容。

    “用户”页包括下述两个部分。

    拒绝设置 DESCRIPTION
    拒绝分配适用于 否定分配适用的安全主体。
    拒绝分配例外 排除在拒绝分配之外的安全主体。

    系统定义的主体表示 Azure AD 目录中的所有用户、组、服务主体和托管标识。

  3. 若要查看已拒绝权限的列表,请选择“已拒绝权限”。

    一个拒绝分配的“拒绝权限”页面的屏幕截图,列出了被拒绝的权限。

    操作类型 DESCRIPTION
    行动 拒绝执行控制平面的操作。
    未操作 从被拒绝的控制平面操作中排除的控制平面操作。
    DataActions 拒绝数据平面操作。
    NotDataActions 从拒绝数据平面操作中排除的数据平面操作。

    就上一屏幕截图中显示的示例来说,下面是有效的权限:

    • 数据平面上的所有存储操作都已拒绝,计算操作除外。
  4. 若要查看拒绝分配的属性,请选择“属性”。

    拒绝分配的属性页面的屏幕截图,列出了各项属性。

    在“属性”页上,可以看到拒绝分配名称、ID、说明和范围。 “不适用于儿童”开关指示是否已将拒绝分配继承到子范围。 System protected 开关指示此拒绝分配是否由Azure管理。 当前,所有情况下此项均为“是”。