跳转到主内容
NetApp adopts Microsoft’s Business-to-Customer (B2C) Identity Management
Effective December 3 - NetApp adopts Microsoft’s Business-to-Customer (B2C) identity management to simplify and provide secure access to NetApp resources. For accounts that did not pre-register (prior to Dec 3) access to your NetApp data may take up to 1 hour as your legacy NSS ID is synchronized to the new B2C identity. To learn more, Read the FAQ and Watch the video. Need assistance? Complete this form and select “Registration Issue” as the Feedback Category. 

常见问题解答: ONTAP 管理的自定义角色

Views:
27
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
core
Last Updated:

可不使用  

适用于

在此处添加您的文本。

解答

本文介绍在集群和虚拟服务器管理员的集群 Data ONTAP 中创建自定义角色时涉及的各个方面、这些方面反过来又有助于创建自定义角色。

先决条件
  • 熟悉 ONTAP 命令行界面( CLI )。
  • 集群管理员的管理特权。
Terminology 

命令目录

指 CLI 中的目录。

例如:
volume

命令子目录

 指目录中的目录。

例如:
volume snapshot

命令

 指特定的可执行命令。

例如:volume show - 或 - volume offline.

内部命令

对于所有目录,以下命令均定义为内部命令:

  • create
  • 修改
  • 删除
  • 显示

非内部命令

 

客户角色

 请参考本文中提到的所有示例中的自定义角色。

角色

角色是一组权能或特权。角色包含多个规则;每个规则指定一个或多个权能。此功能在“命令目录”或“命令”上指定为“访问控制”。 

角色定义的语法

规则由以下参数组成:

  • 虚拟服务器名称: custrole 所属的 data/admin 虚拟服务器的名称。
  • 角色名称:新自定义角色的名称。例如storage_admin_role、。
  • 命令目录(或)命令:命令目录(或)命令。
  • 访问控制:有三个选项:allreadonlynone。 

请考虑一个具有以下角色定义的示例:

(vs1.example.com, custrole, "volume", all)
(vs1.example.com, custrole, "volume snapshot", readonly)
(vs1.example.com, custrole, "volume clone", none) 

在上面的示例中、角色 'custrole' 属于虚拟服务器vs1.example.com ,它包含三条规则。 

角色定义的语义:

目录 / 命令和访问控制共有六种组合。下表总结了每个组合的语义。 

功能

访问

说明

目录

all

允许访问指定目录、其子目录和命令

目录

readonly

允许read-only访问指定目录及其所有子目录。在内部命令中、只有show可用且非内部命令不可用。

目录

None

拒绝对指定目录、其子目录和命令的访问。

命令

all

允许执行指定的命令。

命令

readonly

无效。建议不要使用此组合。例如volume offline ,访问方式readonly无效。

命令

none

拒绝执行指定的命令

访问控制的工作原理
  1. 访问控制的行为是分层的:
  2. 规则使用目录时、它将应用于所有子目录。例如,此 tuple()vs1, custrole, "volume", all 允许访问volume 目录及其所有子目录。
  3. 子目录访问覆盖父目录访问:
  4. 如果父目录具有特定的访问控制、并且其子目录使用不同的访问控制指定、则子目录访问控制将覆盖父目录访问控制。

示例:请考虑以下两条规则:

(vs1, custrole, "volume", all)
(vs1, custrole, "volume snapshot", readonly)

第一条规则允许对volume目录及其所有子目录进行完全访问。但是,第二条规则将volume snapshot 目录的访问权限限制为readonly。在这种情况volume snapshot下,readonly访问将覆盖volume具有完全访问控制的。因此volume snapshot ,该目录及其所有子目录都具有readonly访问权限、不all具有访问权限。

示例:请考虑以下两条规则:

(vs1, custrole, "vserver", readonly)
(vs1, custrole, "vserver nfs", all)

第一条规则将vserver 目录及其所有子目录限制为readonly。但是,第二个规则指定vserver nfs的访问权限all。在这种情况vserver nfs下、具有完全访问权限将覆盖父目录readonly的访问控制。因此vserver nfs ,该目录和所有 IT 子目录都具有all 访问权限、不readonly 具有访问权限。

对使用内部命令的限制

createmodify、和deleteshow命令是内部命令,不能单独为访问控制指定这些命令。例如,以下规则无效: ()vs1, custrole, "volume create", all 。  此命令会发出警告、但也会启用modifydeleteshow。 

此默认规则是什么、为什么要创建?

默认规则指定生成其余规则的基础。对于 Data/Admin vserver 自定义角色、默认规则访问设置为none。默认规则将自动创建。 

如何在自定义 RBAC 角色中指定单个命令?

createmodifydelete不能指定 // 等内部命令,例如,不能仅指定modify角色的选项。 

如果要在自定义 RBAC 角色中使用内部命令,请在该目录中指定以下任意选项:

  • all - 允许所有create //modifydeleteshow 命令
  • readonly —只允许show使用命令
  • none —拒绝访问整个目录 

对于角色,可以允许或拒绝非内部命令。例如volume online,是一个非内在命令。在命令的情况下,可以拒绝访问(或)。可以使用 Access 启用命令权限all、使用 Access 可以启用命令 Denialnone 。访问readonly 权限不适用于单个命令,建议不要使用。

如何为角色启用特定的 ZAPI ?

 如果要为 custrole 指定特定的 zAPI ,请在角色规范中指定等效的 CLI 命令。例如,如果要为volume-offline  custrole 启用 zapivolume offline ,请将等效的 CLI 规则添加到角色规范中。

例如,运行以下命令: “security login role create –vserver vs1.example.com –role custrole –command “volume offline”–access all”.

如何将所有允许的命令列出给某个 custrole 以进行验证? 
  • 使用security login create命令创建用户帐户 'fred '
  • 使用 SSH for Admin vserver 登录或运行vserver context命令以切换到数据虚拟服务器的特定用户。

示例: vserver context –vserver vs1.example.com –username fred.

  • 使用security login role show-ontapi 该命令枚举用于 custrole 的所有 CLI 和等效 ZAPI 。

注意:确保security login role show-ontapi为 custrole 启用了该命令。

如何验证是否为 custrole 启用了特定命令(或) ZAPI ?

使用show-ontapi -command <command-name>命令验证给定命令是否允许进行 custrole 。输出还将显示等效的 ZAPI 。

给定 CLI 命令如何获取与 zAPI 相同的 zAPI (或)如何获取等效的 CLI ? 

使用show-ontapi -ontapi "<ZAPI-name>"命令验证给定的 ZAPI 是否允许用于 custrole 。输出还将显示等效的 CLI 。

是否有有助于复制 / 克隆角色的角色副本(或)角色克隆命令?

否、 Data ONTAP 8.1 不支持此功能。

是否可以将任何命令分配给数据虚拟服务器自定义角色?

否、所有命令都无法分配给 Data Vserver 自定义角色、只–vserver能将带有 as 选项的命令分配给 Vserver 自定义角色。  例如,system node reboot 无法将该命令分配给数据虚拟服务器自定义角色,因为此命令–vserver没有选项。 

自定义角色示例

示例:创建允许管理员查看系统中所有登录帐户的自定义角色。 

例如,将此角色命名为login_accts_ro。 

允许使用的命令是security login show。命令目录为security login

security loginreadonly需要具有访问权限的目录。

以下是规则元组:

(clus1, login_accts_ro, "security login", readonly). 

此元组不仅可以启用readonly目录的权限、还可以启用security login其他子目录的权限、readonly具有权限的目录将类似于以下内容:

security login domain-tunnelsecurity login publickeysecurity login role

应禁止这三个目录访问。因此,需要添加以下规则:

(clus1, login_accts_ro, "security login domain-tunnel", none)
(clus1, login_accts_ro, "security login publickey", none)
(clus1, login_accts_ro, "security login role", none) 

login_accts_ro应该有权更改当前用户的密码。

以下是规则:

(clus1, login_accts_ro, "security login password", all) 

CLIsecurity login role show-ontapi 可用于显示当前用户的功能;可以添加此命令来验证功能。

(clus1, login_accts_ro, "security login role show-ontapi", all) 

以下是规则的摘要:

(clus1, login_accts_ro, "security login", readonly)
(clus1, login_accts_ro, "security login domain-tunnel", none)
(clus1, login_accts_ro, "security login publickey", none)
(clus1, login_accts_ro, "security login role", none)
(clus1, login_accts_ro, "security login password", all)
(clus1, login_accts_ro, "security login role show-ontapi", all) 

可以使用以下命令集创建login_accts_ro角色: 

role create -vserver clus1 -role login_accts_ro -cmddirname "security login" -access readonly
role create -vserver clus1 -role login_accts_ro -cmddirname "security login domain-tunnel" -access none
role create -vserver clus1 -role login_accts_ro -cmddirname "security login publickey" -access none
role create -vserver clus1 -role login_accts_ro -cmddirname "security login role" -access none
role create -vserver clus1 -role login_accts_ro -cmddirname "security login password" -access all

示例:创建仅允许许可证管理的自定义角色 

例如,将此命名为 role licence_role 

允许使用的命令目录system license

system license"all需要具有访问权限的目录。

以下是元组:

(clus1, license_role, "system license", all). 

license_role 应该有权更改当前用户的密码。

该规则将类似于以下内容:

(clus1, license_role, "security login password", all) 

CLI"security login role show-ontapi" 可用于显示当前用户的功能、可以添加此命令来验证功能。

(clus1, license_role, "security login role show-ontapi", all) 

以下是规则的摘要:

(clus1, license_role, "system license", all)
(clus1, license_role, "security login password", all)


(clus1, license_role, "security login role show-ontapi", all) 

运行以下命令集以创建license_role: 

role create -vserver clus1 -role license_role  -cmddirname "system license" -access all
role create -vserver clus1 -role license_role  -cmddirname "security login password" -access all
role create -vserver clus1 -role license_role  -cmddirname "security login role show-ontapi" -access all
 

示例:创建仅允许文件系统管理的数据虚拟服务器自定义角色 

例如,调用此角色 filesys_admin_role。 

允许使用以下命令目录:

"vserver nfs"
“vserver cifs”
“vserver export-policy”
“vserver locks”
“vserver services ldap”
“vserver services nis-domain”
“vserver services unix-group”
“vserver services unix-user” 

以下为元组:

(vs1.example.com, filesys_admin_role, "vserver nfs", all)
(vs1.example.com, filesys_admin_role, “vserver cifs”, all)
(vs1.example.com, filesys_admin_role, “vserver export-policy”, all)
(vs1.example.com, filesys_admin_role, “vserver locks”, all)
(vs1.example.com, filesys_admin_role, “vserver services ldap”, all)
(vs1.example.com, filesys_admin_role, “vserver services nis-domain”, all)
(vs1.example.com, filesys_admin_role, “vserver services unix-group”, all)
(vs1.example.com, filesys_admin_role, “vserver services unix-user”, all) 

filesys_admin_role应该有权更改当前用户的密码。

规则如下:

(vs1.example.com, filesys_admin_role, "security login password", all) 

CLI"security login role show-ontapi" 可用于显示当前用户的功能;可以添加此命令来验证功能。

(vs1.example.com, filesys_admin_role, "security login role show-ontapi", all) 

以下是规则的摘要:

(vs1.example.com, filesys_admin_role, "vserver nfs", all)
(vs1.example.com, filesys_admin_role, “vserver cifs”, all)
(vs1.example.com, filesys_admin_role, “vserver export-policy”, all)
(vs1.example.com, filesys_admin_role, “vserver locks”, all)
(vs1.example.com, filesys_admin_role, “vserver services ldap”, all)
(vs1.example.com, filesys_admin_role, “vserver services nis-domain”, all)
(vs1.example.com, filesys_admin_role, “vserver services unix-group”, all)
(vs1.example.com, filesys_admin_role, “vserver services unix-user”, all)
(vs1.example.com, filesys_admin_role, "security login password", all)
(vs1.example.com, filesys_admin_role, "security login role show-ontapi", all) 

以下是用于创建的命令集filesys_admin_role

role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver nfs" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver cifs" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver export-policy" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver locks" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver services ldap" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver services nis-domain" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver services unix-group" -access all
role create -vserver vs1.example.com -role filesys_admin_role  -cmddirname "vserver services unix-user" -access all
role create -vserver vs1.example.com -role filesys_admin _role  -cmddirname "security login password" -access all
role create -vserver vs1.example.com -role filesys_admin _role  -cmddirname "security login role show-ontapi" -access all