4.3. 基于角色的访问控制


有关或基于角色的访问控制的基础知识,请参阅基于角色的访问控制,并将 RBAC 添加到 安全架构指南的管理接口部分

4.3.1. 启用基于角色的访问控制

默认情况下禁用基于角色的访问控制(RBAC)系统。它通过将 provider 属性从 simple 改为 rbac 来启用。providermanagement 元素的 access-control 元素的属性。这可以通过管理 CLI 或编辑服务器配置 XML 文件(如果服务器离线)来完成。当在正在运行的服务器上禁用或启用 RBAC 时,必须先重新加载服务器配置,然后才能生效。

启用后,只能由 AdministratorSuperUser 角色的用户禁用。默认情况下,如果管理 CLI 在与服务器相同的计算机上运行,则管理 CLI 作为 SuperUser 角色运行。

要使用管理 CLI 启用 RBAC,请使用访问授权资源的 write-attribute 操作,将 provider 属性设置为 rbac

CLI 启用 RBAC

/core-service=management/access=authorization:write-attribute(name=provider, value=rbac)
Copy to Clipboard Toggle word wrap

要通过管理 CLI 禁用 RBAC,请使用访问授权资源的 write-attribute 操作,将 provider 属性设置为 simple

CLI 禁用 RBAC

/core-service=management/access=authorization:write-attribute(name=provider, value=simple)
Copy to Clipboard Toggle word wrap

如果服务器离线,可以编辑 XML 配置来启用或禁用 RBAC。为此,请编辑 management 元素的 access-control 元素的 provider 属性。将值设为 rbac 设为 enable,将 simple 设置为 disable。

XML 示例

<management>
  <access-control provider="rbac">
    <role-mapping>
      <role name="SuperUser">
        <include>
          <user name="$local"/>
        </include>
      </role>
    </role-mapping>
  </access-control>
</management>
Copy to Clipboard Toggle word wrap

4.3.2. 更改权限组合策略

权限组合策略决定如何确定用户是否分配多个角色。这可设置为 permissive 或 reject。默认值为 permissive

当设置为 permissive 时,如果为允许操作的用户分配了任何角色,则允许该操作。

当设置为 reject 时,如果为用户分配多个角色,则不允许操作。这意味着,当将策略设置为拒绝每个用户时,应该只分配一个角色。当策略设置为 reject 时,具有多个角色的用户将无法使用管理控制台或管理 CLI。

权限组合策略通过将 permission-combination-policy 属性设置为 permissiverejecting 来配置。这可以通过管理 CLI 或编辑服务器配置 XML 文件(如果服务器离线)来完成。permission-combination-policy 属性是 access-control 元素的一部分,可以在 management 元素中找到 access-control 元素。

设置权限组合策略

使用访问授权资源的 write-attribute 操作将 permission-combination-policy 属性设置为所需的策略名称。

/core-service=management/access=authorization:write-attribute(name=permission-combination-policy, value=POLICYNAME)
Copy to Clipboard Toggle word wrap

有效的策略名称是 rejectpermissive

CLI 示例

/core-service=management/access=authorization:write-attribute(name=permission-combination-policy, value=rejecting)
Copy to Clipboard Toggle word wrap

如果服务器离线,可以编辑 XML 配置以更改权限组合策略值。为此,请编辑 access-control 元素的 permission-combination-policy 属性。

XML 示例

<access-control provider="rbac" permission-combination-policy="rejecting">
  <role-mapping>
    <role name="SuperUser">
      <include>
        <user name="$local"/>
      </include>
    </role>
  </role-mapping>
</access-control>
Copy to Clipboard Toggle word wrap

4.3.3. 管理角色

启用基于角色的访问控制(RBAC)时,允许什么管理用户由为用户分配的角色决定。JBoss EAP 7 使用 的 includes 和 excludes,基于用户和组成员资格来确定用户所属的角色。

如果用户是:

  • 列出为要包含在角色中的用户,或者
  • 列出要包含在角色中的组的成员。

如果用户不是,则用户也被视为被分配给角色:

  • 列为从角色中排除的用户,或者
  • 列出要从角色中排除的组的成员。

排除的优先级高于包含项。

可以使用管理控制台和管理 CLI 配置用户和组的角色包括和排除设置。

只有 SuperUserAdministrator 角色的用户才能执行此配置。

4.3.3.1. 使用管理 CLI 配置用户角色分配

将用户和组映射到角色的配置位于: /core-service=management/access=authorization 作为 role-mapping 元素。

只有 SuperUserAdministrator 角色的用户才能执行此配置。

查看角色分配配置

使用 :read-children-names 操作获取配置的角色的完整列表:

/core-service=management/access=authorization:read-children-names(child-type=role-mapping)
{
    "outcome" => "success",
    "result" => [
        "Administrator",
        "Deployer",
        "Maintainer",
        "Monitor",
        "Operator",
        "SuperUser"
    ]
}
Copy to Clipboard Toggle word wrap

使用指定 role-mapping 的 read-resource 操作来获取特定角色的完整详情:

/core-service=management/access=authorization/role-mapping=ROLENAME:read-resource(recursive=true)
{
    "outcome" => "success",
    "result" => {
        "include-all" => false,
        "exclude" => undefined,
        "include" => {
            "user-theboss" => {
                "name" => "theboss",
                "realm" => undefined,
                "type" => "USER"
            },
            "user-harold" => {
                "name" => "harold",
                "realm" => undefined,
                "type" => "USER"
            },
            "group-SysOps" => {
                "name" => "SysOps",
                "realm" => undefined,
                "type" => "GROUP"
            }
        }
    }
}
Copy to Clipboard Toggle word wrap

添加新角色

此流程演示了如何为角色添加 role-mapping 条目。这必须在配置角色之前完成。

使用 add 操作来添加新角色配置。

/core-service=management/access=authorization/role-mapping=ROLENAME:add
Copy to Clipboard Toggle word wrap
  • ROLENAME 是新映射所针对的角色的名称(如审核员)。

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor:add
Copy to Clipboard Toggle word wrap

根据角色中包含的用户添加用户

此流程演示了如何将用户添加到角色包含列表中。

如果没有为角色配置,则必须首先为它执行 role-mapping 条目。

使用 add 操作,将用户条目添加到角色的 includes 列表中。

/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:add(name=USERNAME, type=USER)
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称。(如审核员)
  • ALIAS 是此映射的唯一名称。红帽建议对别名使用命名约定,如 user-USERNAME。(如 user-max)
  • USERNAME 是添加到 include 列表中的用户的名称。(例如 max)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/include=user-max:add(name=max, type=USER)
Copy to Clipboard Toggle word wrap

在角色中以排除的形式添加用户

此流程演示了如何将用户添加到角色的排除列表中。

如果没有为角色配置,则必须首先为它执行 role-mapping 条目。

使用 add 操作将用户条目添加到角色的 excludes 列表中。

/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:add(name=USERNAME, type=USER)
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称。(如审核员)
  • USERNAME 是添加到 exclude 列表中的用户的名称。(例如 max)
  • ALIAS 是此映射的唯一名称。红帽建议对别名使用命名约定,如 user-USERNAME。(如 user-max)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/exclude=user-max:add(name=max, type=USER)
Copy to Clipboard Toggle word wrap

删除用户角色包括配置

此流程演示了如何从角色映射中删除用户包含条目。

使用 remove 操作来删除该条目。

/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:remove
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称(如审核员)
  • ALIAS 是此映射的唯一名称。红帽建议对别名使用命名约定,如 user-USERNAME。(如 user-max)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/include=user-max:remove
Copy to Clipboard Toggle word wrap

注意

从 includes 列表中删除用户不会从系统中删除用户,也不保证该角色不会分配给该用户。该角色可能仍然根据组成员资格分配。

删除用户角色排除配置

此流程演示了如何从角色映射中删除用户排除的条目。

使用 remove 操作来删除该条目。

/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:remove
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称。(如审核员)
  • ALIAS 是此映射的唯一名称。红帽建议对别名使用命名约定,如 user-USERNAME。(如 user-max)
/core-service=management/access=authorization/role-mapping=Auditor/exclude=user-max:remove
Copy to Clipboard Toggle word wrap
注意

从 excludes 列表中删除用户不会从系统中删除用户,也不保证该角色将被分配给该用户。角色可能仍然根据组成员资格排除。

4.3.4. 角色和用户组

使用 mgmt-users.properties 文件或 LDAP 服务器进行身份验证的用户可以是用户组的成员。用户组是一个任意标签,可以分配给一个或多个用户。

可将 RBAC 系统配置为根据用户所属的用户组自动为用户分配角色。它还可以根据组成员资格从角色中排除用户。

使用 mgmt-users.properties 文件时,组信息存储在 mgmt-groups.properties 文件中。在使用 LDAP 时,组信息存储在 LDAP 服务器,并由负责 LDAP 服务器的那些存储在 LDAP 服务器中。

4.3.5. 使用管理 CLI 配置组角色分配

要在管理控制台和管理 CLI 中配置角色中包含的或排除的组。本主题仅显示使用管理 CLI。

将用户和组映射到角色的配置位于管理 API 中,地址为: /core-service=management/access=authorization 作为 role-mapping 元素。

只有 SuperUserAdministrator 角色的用户才能执行此配置。

查看组角色分配配置

使用 read-children-names 操作获取配置角色的完整列表:

/core-service=management/access=authorization:read-children-names(child-type=role-mapping)
{
    "outcome" => "success",
    "result" => [
        "Administrator",
        "Deployer",
        "Maintainer",
        "Monitor",
        "Operator",
        "SuperUser"
    ]
}
Copy to Clipboard Toggle word wrap

使用指定 role-mapping 的 read-resource 操作来获取特定角色的完整详情:

/core-service=management/access=authorization/role-mapping=ROLENAME:read-resource(recursive=true)
{
    "outcome" => "success",
    "result" => {
        "include-all" => false,
        "exclude" => undefined,
        "include" => {
            "user-theboss" => {
                "name" => "theboss",
                "realm" => undefined,
                "type" => "USER"
            },
            "user-harold" => {
                "name" => "harold",
                "realm" => undefined,
                "type" => "USER"
            },
            "group-SysOps" => {
                "name" => "SysOps",
                "realm" => undefined,
                "type" => "GROUP"
            }
        }
    }
}
Copy to Clipboard Toggle word wrap

添加新角色

此流程演示了如何为角色添加 role-mapping 条目。这必须在配置角色之前完成。

使用 add 操作来添加新角色配置。

/core-service=management/access=authorization/role-mapping=ROLENAME:add
Copy to Clipboard Toggle word wrap

根据角色中包含的组添加组

此流程演示了如何将组添加到角色包含列表中。

如果没有为角色配置,则必须首先为它执行 role-mapping 条目。

使用 add 操作,将 Group 条目添加到角色的 includes 列表中。

/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:add(name=GROUPNAME, type=GROUP)
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称。(如审核员)
  • GROUPNAME 是添加到 include 列表中的组名称。(例如,投资者)
  • ALIAS 是此映射的唯一名称。红帽建议为您的别名使用命名约定,如 group-GROUPNAME。(例如 group-investigators)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/include=group-investigators:add(name=investigators, type=GROUP)
Copy to Clipboard Toggle word wrap

在角色中添加排除的组

此流程演示了如何将组添加到角色的排除列表中。

如果没有为角色配置,则必须首先为其创建 role-mapping 条目。

使用 add 操作,将组条目添加到角色的 excludes 列表中。

/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:add(name=GROUPNAME, type=GROUP)
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称(如审核员)
  • GROUPNAME 是添加到 include 列表中的组名称(例如 supervisors)
  • ALIAS 是此映射的唯一名称。红帽建议为您的别名使用命名约定,如 group-GROUPNAME。(例如 group-supervisors)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/exclude=group-supervisors:add(name=supervisors, type=GROUP)
Copy to Clipboard Toggle word wrap

删除组角色包括配置

此流程演示了如何从角色映射中删除组包含条目。

使用 remove 操作来删除该条目。

/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:remove
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称(如审核员)
  • ALIAS 是此映射的唯一名称。红帽建议为您的别名使用命名约定,如 group-GROUPNAME。(例如 group-investigators)

CLI 示例

/core-service=management/access=authorization/role-mapping=Auditor/include=group-investigators:remove
Copy to Clipboard Toggle word wrap

注意

从 includes 列表中删除组不会从系统中删除组,也不保证该角色不会分配给此组中的用户。该角色可能仍然被单独分配给组中的用户。

删除用户组排除条目

此流程演示了如何从角色映射中删除组排除条目。

使用 remove 操作来删除该条目。

/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:remove
Copy to Clipboard Toggle word wrap
  • ROLENAME 是要配置的角色的名称。(如审核员)
  • ALIAS 是此映射的唯一名称。红帽建议为您的别名使用命名约定,如 group-GROUPNAME。(例如 group-supervisors)
/core-service=management/access=authorization/role-mapping=Auditor/exclude=group-supervisors:remove
Copy to Clipboard Toggle word wrap
注意

从 excludes 列表中删除组不会从系统中删除组。它还不能保证该角色将分配给组的成员。角色可能仍然根据组成员资格排除。

4.3.6. 使用 LDAP 的 RBAC

如何配置身份管理指南的 LDAP 和 RBAC 部分中介绍了通过 LDAP 使用 RBAC 的基础知识,以及如何将 JBoss EAP 7 配置为使用 LDAP

4.3.7. 有范围的角色

有作用域角色是用户定义的角色,授予其中一个标准角色的权限,但仅对 JBoss EAP 受管域中的一个或多个服务器组或主机授予权限。有范围角色允许管理用户被授予权限,仅限于那些所需的服务器组或主机。

重要

可为分配了 AdministratorSuperUser 角色的用户创建范围角色。

它们由五个特征定义:

  • 唯一的名称。
  • 它所基于的标准角色。
  • 如果它适用于服务器组或主机
  • 它限制的服务器组或主机列表。
  • 如果所有用户被自动包含。默认值为 false。

创建范围角色后,可以像标准角色一样分配给用户和组。

创建有范围的角色不允许定义新权限。有范围的角色只能用于应用有限范围内现有角色的权限。例如,可以基于限制为单个服务器组的 Deployer 角色来创建有范围的角色。

角色只能限制为两个范围:

主机范围角色
主机作用域的角色将该角色的权限限制为一个或多个主机。这意味着,为相关的 /hostcategories/ 资源树提供访问权限,但特定于其他主机的资源会被隐藏。
server-Group-scoped 角色
即 server-group 范围的角色将该角色的权限限制为一个或多个服务器组。此外,角色权限也将应用到与指定服务器组关联的配置集、套接字绑定组、服务器配置和服务器资源。与 server-group 无关的任何子资源都对用户不可见。

4.3.7.1. 通过管理 CLI 配置范围角色

重要

只有 SuperUserAdministrator 角色的用户才能执行此配置。

添加新的范围角色

要添加新的 Scoped 角色,必须执行以下操作:

/core-service=management/access=authorization/role-mapping=NEW-SCOPED-ROLE:add
Copy to Clipboard Toggle word wrap
/core-service=management/access=authorization/server-group-scoped-role=NEW-SCOPED-ROLE:add(base-role=BASE-ROLE, server-groups=[SERVER-GROUP-NAME])
Copy to Clipboard Toggle word wrap

将 NEW-SCOPED-ROLE、BASE-ROLE 和 SERVER-GROUP-NAME 替换为正确的信息。

查看并编辑范围角色映射

可以通过发出以下命令来查看范围角色的详情(包括成员):

/core-service=management/access=authorization/role-mapping=NEW-SCOPED-ROLE:read-resource(recursive=true)
Copy to Clipboard Toggle word wrap

将 NEW-SCOPED-ROLE 替换为正确的信息。

要编辑范围角色的详细信息,可以使用 write-attribute 命令。例如:

/core-service=management/access=authorization/role-mapping=NEW-SCOPED-ROLE:write-attribute(name=include-all, value=true)
Copy to Clipboard Toggle word wrap

将 NEW-SCOPED-ROLE 替换为正确的信息。

删除范围角色

/core-service=management/access=authorization/role-mapping=NEW-SCOPED-ROLE:remove
Copy to Clipboard Toggle word wrap

/core-service=management/access=authorization/server-group-scoped-role=NEW-SCOPED-ROLE:remove
Copy to Clipboard Toggle word wrap

将 NEW-SCOPED-ROLE 替换为正确的信息。

重要

如果为它分配了用户或组,则无法删除 Scoped 角色。首先删除角色分配,然后将其删除。

添加和删除用户

向范围角色添加或删除用户遵循与 添加和删除标准角色 相同的流程。

4.3.7.2. 从管理控制台配置范围角色

重要

只有 SuperUserAdministrator 角色的用户才能执行此配置。

管理控制台中的有范围角色配置可以通过以下步骤找到:

  1. 登录到管理控制台
  2. Access Control 选项卡
  3. 单击左侧的 Roles 菜单,并显示所有角色(包括有范围角色)。

以下流程演示了如何为有范围角色执行配置任务。

添加新的范围角色

  • 登录到管理控制台
  • Access Control 选项卡
  • 点左侧的 Roles 菜单。
  • 点击 Add
  • 指定以下详情:

    • 名称,新范围角色的唯一名称。
    • 基础 角色,此角色将在其上构建其权限的角色。
    • 键入,无论此角色是否仅限于主机还是服务器组。
    • 范围,角色仅限于的主机或服务器组列表。可以选择多个条目。
    • 包括 All,此角色应自动包含所有用户。默认值为 no。
  • 单击 Save,对话框将关闭,新创建的角色将显示在表中。

编辑范围角色

  • 登录到管理控制台
  • Access Control 选项卡
  • 点左侧的 Roles 菜单。
  • 单击所需范围的角色来编辑,然后单击 Edit
  • 更新所需更改的详细信息,然后单击 保存按钮

查看范围角色成员

  • 登录到管理控制台
  • Access Control 选项卡
  • 点左侧的 Roles 菜单。
  • 点所需范围的角色,然后选择 IncludeExclude 来查看包含或排除的成员。

删除范围角色

  • 登录到管理控制台
  • Access Control 选项卡
  • 点左侧的 Roles 菜单。
  • 单击所需范围角色,单击编辑按钮旁边的下拉菜单,再单击删除
  • 单击 Confirm。对话框关闭,并删除角色。
重要

如果为它分配了用户或组,则无法删除有范围的角色。首先删除角色分配,然后将其删除。

添加和删除用户

向范围角色添加和删除用户遵循与添加和删除标准角色相同的流程。更新用户的范围角色:

  • 登录到管理控制台
  • Access Control 选项卡
  • 点左侧的 Roles 菜单。
  • 点所需范围的角色,然后选择 IncludeExclude 来查看包含或排除的成员。
  • 要添加成员,请单击 Add,选择要包含或排除的成员,然后单击 Save
  • 要删除成员,请选择要删除的所需成员,然后单击 Remove

4.3.8. 配置约束

4.3.8.1. 配置敏感约束

每个敏感度约束都定义了一组被视为 敏感的 资源。敏感 资源通常是机密(如密码)或对服务器有严重影响的 secret,如网络、JVM 配置或系统属性。访问控制系统本身也被视为敏感。资源敏感度限制哪些角色能够读取、写入或处理特定资源。

敏感度约束配置位于 at /core-service=management/access=authorization/constraint=sensitivity-classification 中。

在管理模型中,每个敏感性约束被识别为分类。然后分类被分成不同的类型。有 39 个分类,它们被安排为 13 个类型。

要配置敏感度约束,请使用 write-attribute 操作来设置 configured-requires-readconfigured-requires-writeconfigured-requires-addressable 属性。要使该操作类型敏感,请将 属性的值设置为 true,否则将其非敏感性设置为 false。默认情况下,不会设置这些属性,并使用 default-requires-readdefault-requires-writedefault-requires-addressable 的值。设置配置的属性后,这是使用的值,而不是默认值。无法更改默认值。

示例 - 对敏感操作读取系统属性

/core-service=management/access=authorization/constraint=sensitivity-classification/type=core/classification=system-property:write-attribute(name=configured-requires-read,value=true)
Copy to Clipboard Toggle word wrap

结果

/core-service=management/access=authorization/constraint=sensitivity-classification/type=core/classification=system-property:read-resource
Copy to Clipboard Toggle word wrap

{
    "outcome" => "success",
    "result" => {
        "configured-requires-addressable" => undefined,
        "configured-requires-read" => true,
        "configured-requires-write" => undefined,
        "default-requires-addressable" => false,
        "default-requires-read" => false,
        "default-requires-write" => true,
        "applies-to" => {
            "/core-service=platform-mbean/type=runtime" => undefined,
            "/system-property=*" => undefined,
            "/" => undefined
        }
    }
}
Copy to Clipboard Toggle word wrap

下表总结了根据这些属性的配置来执行哪些角色:

Expand
表 4.1. Sensitivity Constraint Configuration Outcomes
requires-readrequires-writerequires-addressable

true

读取是敏感的。只有 Auditor、Administrator、SuperUser 可以读取。

写是敏感的。只有 Administrator 和 SuperUser 可以写入。

寻址非常敏感。只有 Auditor、Administrator、SuperUser 可以地址。

false

读取不敏感。任何管理用户都可以读取。

写不敏感。只有 Maintainer, Administrator 和 SuperUser 可以写入。Deployers 也可以编写资源是一个应用程序资源。

寻址不敏感。任何管理用户都可以解决。

4.3.8.2. 配置应用程序资源约束

每个应用程序资源约束都定义了一组资源、属性和操作,它们通常与应用程序和服务部署关联。当启用应用资源限制时,Deployer 角色的管理用户将被授予对其应用到的资源的访问权限。

应用程序约束配置位于 /core-service=management/access=authorization/constraint=application-classification/

每个应用程序资源约束都标识为分类。然后分类被分成不同的类型。14 包含的分类被安排为 8 个类型。每个分类都有一个 apply-to 元素,它是应用到分类配置的资源路径模式列表。

默认情况下,唯一启用的应用程序资源分类是 core。Core 包括部署、部署覆盖和部署操作。

要启用应用程序资源,请使用 write-attribute 操作将分类的 configured-application 属性设置为 true。要禁用应用程序资源,请将此属性设置为 false。默认情况下,不会设置这些属性,并使用 default-application 属性的值。无法更改默认值。

启用 logger-profile 应用程序资源分类

/core-service=management/access=authorization/constraint=application-classification/type=logging/classification=logging-profile:write-attribute(name=configured-application,value=true)
Copy to Clipboard Toggle word wrap

结果

/core-service=management/access=authorization/constraint=application-classification/type=logging/classification=logging-profile:read-resource
Copy to Clipboard Toggle word wrap

{
    "outcome" => "success",
    "result" => {
        "configured-application" => true,
        "default-application" => false,
        "applies-to" => {"/subsystem=logging/logging-profile=*" => undefined}
    }
}
Copy to Clipboard Toggle word wrap
重要

应用程序资源约束适用于匹配其配置的所有资源。例如,无法授予 Deployer 用户访问一个数据源资源,但不能访问另一个数据源资源。如果需要这种隔离级别,建议在不同的服务器组中配置资源,并为每个组创建不同的范围 Deployer 角色。

4.3.8.3. 配置 Vault 表达式约束

默认情况下,读取和写入 vault 表达式是敏感操作。配置 Vault Expression Constraint 允许将这些操作设置为非敏感。更改此约束允许更多角色读取和写入 vault 表达式。

vault 表达式约束可在 /core-service=management/access=authorization/constraint=vault-expression 中找到。

要配置 vault 表达式约束,请使用 write-attribute 操作将 configured-requires-writeconfigured-requires-read 设为 truefalse 的属性。默认情况下,它们没有被设置,并使用 default-requires-readdefault-requires-write 的值。无法更改默认值。

编写对 vault 表达式的非敏感操作

/core-service=management/access=authorization/constraint=vault-expression:write-attribute(name=configured-requires-write,value=false)
Copy to Clipboard Toggle word wrap

结果

/core-service=management/access=authorization/constraint=vault-expression:read-resource
Copy to Clipboard Toggle word wrap

{
    "outcome" => "success",
    "result" => {
        "configured-requires-read" => undefined,
        "configured-requires-write" => false,
        "default-requires-read" => true,
        "default-requires-write" => true
    }
}
Copy to Clipboard Toggle word wrap

根据此配置,哪些角色可以读取和写入 vault 表达式:

Expand
表 4.2. Vault 表达式约束配置结果
requires-readrequires-write

true

读取操作非常敏感。只有 Auditor、Admin 和 SuperUser 才能读取。

写入操作非常敏感。只有 Administrator 和 SuperUser 可以写入。

false

读操作不敏感。所有管理用户都可以读取。

写入操作不敏感。监控、管理员和 SuperUser 可以写入。如果 vault 表达式位于应用资源中,则部署器也可以编写。

4.3.8.4. 应用程序资源约束参考

type: core - Classification: deployment-overlay

  • 默认: true
  • PATH: /deployment-overlay=*
  • PATH: /deployment=*
  • PATH: /
  • operation: upload-deployment-stream, full-replace-deployment, upload-deployment-url, upload-deployment-bytes

type: datasources - Classification: datasource

  • 默认:false
  • PATH: /deployment=*/subdeployment=*/subsystem=datasources/data-source=*
  • PATH: /subsystem=datasources/data-source=*
  • PATH: /subsystem=datasources/data-source=ExampleDS
  • PATH: /deployment=*/subsystem=datasources/data-source=*

type: datasources - Classification: jdbc-driver

  • 默认:false
  • PATH: /subsystem=datasources/jdbc-driver=*

type: datasources - Classification: xa-data-source

  • 默认:false
  • PATH: /subsystem=datasources/xa-data-source=*
  • PATH: /deployment=*/subsystem=datasources/xa-data-source=*
  • PATH: /deployment=*/subdeployment=*/subsystem=datasources/xa-data-source=*

Type: logging - Classification: logger

  • 默认:false
  • PATH: /subsystem=logging/logger=*
  • PATH: /subsystem=logging/logging-profile=*/logger=*

type: datasources - Classification: logging-profile

  • 默认:false
  • PATH: /subsystem=logging/logging-profilePROFILE

类型:mail - Classification: mail-session

  • 默认:false
  • PATH: /subsystem=mail/mail-sessionPROFILE

type: naming - Classification: binding

  • 默认:false
  • PATH: /subsystem=naming/binding hear

type: resource-adapters - Classification: resource-adapters

  • 默认:false
  • PATH: /subsystem=resource-adapters/resource-adapter=*

类型:security - Classification: security-domain

  • 默认:false
  • PATH: /subsystem=security/security-domain=*

4.3.8.5. 敏感度约束参考

type: core - Classification: access-control

  • requires-addressable: true
  • requires-read: true
  • requires-write: true
  • PATH: /core-service=management/access=authorization
  • PATH: /subsystem=jmx ATTRIBUTE: non-core-mbean-sensitivity

type: core - Classification: credential

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=mail/mail-sessionxxxx/server=pop3 ATTRIBUTE: username , password
  • PATH: /subsystem=mail/mail-session require/server=imap ATTRIBUTE: username , password
  • PATH: /subsystem=datasources/xa-data-source prerequisites ATTRIBUTE: user-name, recovery-username, password, recovery-password
  • PATH: /subsystem=mail/mail-session require/custom.4-1. ATTRIBUTE: username, password
  • PATH: /subsystem=datasources/data-sourcePROFILE" ATTRIBUTE: user-name, password
  • PATH: /subsystem=remoting/remote-outbound-connectionPROFILE" ATTRIBUTE: username
  • PATH: /subsystem=mail/mail-sessionPROFILE/server=smtp ATTRIBUTE: username, password
  • PATH: /subsystem=resource-adapters/resource-adapteradapter/connection-definitions 9000" ATTRIBUTE: recovery-username, recovery-password

Type: core - Classification: domain-controller

  • requires-addressable: false
  • requires-read: false
  • requires-write: true

type: core - Classification: domain-names

  • requires-addressable: false
  • requires-read: false
  • requires-write: true

类型:core - Classification: extensions

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /extension=*

type: core - Classification: jvm

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=platform-mbean/type=runtime ATTRIBUTE: input-arguments, boot-class-path, class-path, boot-class-path-supported, library-path

type: core - Classification: management-interfaces

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • /core-service=management/management-interface=http-interface

type: core - Classification: module-loading

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=module-loading

类型:core - Classification: patching

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=patching/addonPROFILE
  • PATH: /core-service=patching/layerxxxx"
  • PATH: /core-service=patching

type: core - Classification: read-whole-config

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: / OPERATION: read-config-as-xml

type: core - Classification: security-domain

  • requires-addressable: true
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=security/security-domain=*

type: core - Classification: security-domain-ref

  • requires-addressable: true
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=datasources/xa-data-sourcePROFILE ATTRIBUTE: security-domain
  • PATH: /subsystem=datasources/data-sourcePROFILE ATTRIBUTE: security-domain
  • PATH: /subsystem=ejb3 ATTRIBUTE: default-security-domain
  • PATH: /subsystem=resource-adapters/resource-adapter.4-1./connection-definitions.4-1. ATTRIBUTE: security-domain, recovery- security-domain, security-application, security-domain-and-application

type: core - Classification: security-realm

  • requires-addressable: true
  • requires-read: true
  • requires-write: true
  • PATH: /core-service=management/security-realm=*

type: core - Classification: security-realm-ref

  • requires-addressable: true
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=remoting/connectorxxxx ATTRIBUTE: security-realm
  • PATH: /core-service=management/management-interface=native-interface ATTRIBUTE: security-realm
  • PATH: /core-service=management/management-interface=http-interface ATTRIBUTE: security-realm
  • PATH: /subsystem=remoting/remote-outbound-connectionPROFILE ATTRIBUTE: security-realm

Type: core - Classification: security-vault

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=vault

type: core - Classification: service-container

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=service-container

Type: core - Classification: snapshot

  • requires-addressable: false
  • requires-read: false
  • requires-write: false
  • PATH: / ATTRIBUTE: take-snapshot, list-snapshots, delete-snapshot

type: core - Classification: socket-binding-ref

  • requires-addressable: false
  • requires-read: false
  • requires-write: false
  • PATH: /subsystem=mail/mail-sessionxxxx/server=pop3 ATTRIBUTE: outbound-socket-binding-ref
  • PATH: /subsystem=mail/mail-session.4-1./server=imap ATTRIBUTE: outbound-socket-binding-ref
  • PATH: /subsystem=remoting/connectorxxxx ATTRIBUTE: socket-binding
  • PATH: /subsystem=remoting/local-outbound-connectionPROFILE ATTRIBUTE: outbound-socket-binding-ref
  • PATH: /socket-binding-groupPROFILE/local-destination-outbound-socket-binding 9000 ATTRIBUTE: socket-binding-ref
  • PATH: /subsystem=remoting/remote-outbound-connectionPROFILE ATTRIBUTE: outbound-socket-binding-ref
  • PATH: /subsystem=mail/mail-sessionPROFILE/server=smtp ATTRIBUTE: outbound-socket-binding-ref
  • PATH: /subsystem=transactions ATTRIBUTE: process-id-socket-binding, status-socket-binding, socket-binding

type: core - Classification: socket-config

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /interfaceProductShortName OPERATION: resolve-internet-address
  • PATH: /socket-binding-group=*
  • PATH: /core-service=management/management-interface=http-interface ATTRIBUTE: port, secure-port, interface, secure-socket-binding, socket-binding
  • PATH: / OPERATION: resolve-internet-address
  • PATH: /subsystem=transactions ATTRIBUTE: process-id-socket-max-ports

type: core - Classification: system-property

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /core-service=platform-mbean/type=runtime ATTRIBUTE: system-properties
  • PATH: /system-property=*
  • PATH: / OPERATION: resolve-expression

type: datasources - Classification: data-source-security

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=datasources/xa-data-source prerequisites ATTRIBUTE: user-name, security-domain, password
  • PATH: /subsystem=datasources/data-sourcePROFILE ATTRIBUTE: user-name, security-domain, password

type: jdr - Classification: jdr

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /subsystem=jdr OPERATION: generate-jdr-report

类型:jmx - Classification: jmx

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /subsystem=jmx

类型:mail - Classification: mail-server-security

  • requires-addressable: false
  • requires-read: false
  • requires-write: true
  • PATH: /subsystem=mail/mail-session.4-1./server=pop3 ATTRIBUTE: username, tls, ssl, password
  • PATH: /subsystem=mail/mail-session require/server=imap ATTRIBUTE: username, tls, ssl, password
  • PATH: /subsystem=mail/mail-session=/custom= ATTRIBUTE: username, tls, ssl, password
  • PATH: /subsystem=mail/mail-session.4-1./server=smtp ATTRIBUTE: username, tls, ssl, password

Type: naming - Classification: jndi-view

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=naming OPERATION: jndi-view

type: naming - Classification: naming-binding

  • requires-addressable: false
  • requires-read: false
  • requires-write: false
  • PATH: /subsystem=naming/binding hear

类型:remoting - Classification: remoting-security

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=remoting/connectorxxxx ATTRIBUTE: authentication-provider, security-realm
  • PATH: /subsystem=remoting/remote-outbound-connectionPROFILE ATTRIBUTE: username, security-realm
  • PATH: /subsystem=remoting/connectorxxxx/security=sasl

type: resource-adapters - Classification: resource-adapter-security

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=resource-adapters/resource-adapter.4-1./connection-definitions.4-1. ATTRIBUTE: security-domain, recovery-username, recovery-security-domain, security-application, security-domain-and-application, recovery-password

类型:security - Classification: misc-security

  • requires-addressable: false
  • requires-read: true
  • requires-write: true
  • PATH: /subsystem=security ATTRIBUTE: deep-copy-subject-mode
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部