netapp.ontap.na_ontap_file_security_permissions_acl 模块 – NetApp ONTAP 文件安全权限 ACL

注意

此模块是 netapp.ontap 集合 (版本 22.13.0) 的一部分。

如果您正在使用 ansible 软件包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install netapp.ontap。您需要其他要求才能使用此模块,有关详细信息,请参阅 需求

要在 playbook 中使用它,请指定: netapp.ontap.na_ontap_file_security_permissions_acl

netapp.ontap 22.0.0 中的新增功能

概要

  • 在 NetApp ONTAP 上添加、删除或修改 file_security_permissions ACL。

  • 请注意,ACL 是基于('user','access','access_control','apply_to')进行匹配的。要修改这四个属性中的任何一个,您需要删除 ACL 并创建一个新的 ACL。或者使用 netapp.ontap.na_ontap_file_security_permissions

需求

以下是执行此模块的主机所需的条件。

  • Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。

  • Python3 - 建议使用 3.9 或更高版本。

  • 使用 ZAPI 时,需要 netapp-lib 2018.11.13 或更高版本(使用“pip install netapp-lib”安装),强烈建议使用 netapp-lib 2020.3.12,因为它提供了更好的连接问题错误报告。

  • 物理或虚拟集群式 Data ONTAP 系统,模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。

参数

参数

注释

access

字符串 / 必填

ACE 是访问控制列表 (ACL) 中的一个元素。ACL 可以包含零个或多个 ACE。

每个 ACE 都控制或监控指定受托人对对象的访问。

选项

  • "access_allow"

  • "access_deny"

  • "audit_failure"

  • "audit_success"

access_control

字符串

访问控制级别指定要应用的任务的访问控制。

有效值为“file-directory”或“存储级访问保护 (SLAG)”。

SLAG 用于将指定的安全描述符与卷或 qtree 的任务一起应用。

否则,安全描述符将应用于指定路径的文件和目录。

FlexGroups 卷不支持 slag 值。默认值为“file-directory”。

此字段需要 ONTAP 9.10.1 或更高版本。默认为“file_directory”。

选项

  • "file_directory"

  • "slag"

acl_user

字符串 / 必填

指定 ACE 应用到的帐户。指定名称或 SID。

从 22.0.0 开始,使用 SID 时,模块不是幂等的。

注意 - 我们不能使用 user,因为它与管理员用户的选项冲突。

advanced_rights

字典

指定由 ACE 为指定的帐户控制的高级访问权限。

append_data

布尔值

追加数据。

选项

  • false

  • true

delete

布尔值

删除。

选项

  • false

  • true

delete_child

布尔值

删除子项。

选项

  • false

  • true

execute_file

布尔值

执行文件。

选项

  • false

  • true

full_control

布尔值

完全控制。

选项

  • false

  • true

read_attr

布尔值

读取属性。

选项

  • false

  • true

read_data

布尔值

读取数据。

选项

  • false

  • true

read_ea

布尔值

读取扩展属性。

选项

  • false

  • true

read_perm

布尔值

读取权限。

选项

  • false

  • true

write_attr

布尔值

写入属性。

选项

  • false

  • true

write_data

布尔值

写入数据。

选项

  • false

  • true

write_ea

布尔值

写入扩展属性。

选项

  • false

  • true

write_owner

布尔值

写入所有者。

选项

  • false

  • true

write_perm

布尔值

写入权限。

选项

  • false

  • true

apply_to

字典 / 必填

指定应用 DACL 或 SACL 条目的位置。

对于 SLAG,ONTAP 接受将三个子选项设置为 true,但会创建 2 个 ACL。此模块需要存在 2 个 ACL 以保持幂等性。另请参见 validate_changes

files

布尔值

应用于文件。

选项

  • false ← (默认)

  • true

sub_folders

布尔值

应用于所有子文件夹。

选项

  • false ← (默认)

  • true

this_folder

布尔值

仅应用于此文件夹

选项

  • false ← (默认)

  • true

cert_filepath

字符串

netapp.ontap 20.6.0 中新增

SSL 客户端证书文件 (.pem) 的路径。

python 2.6 不支持。

feature_flags

字典

netapp.ontap 20.5.0 中新增

启用或禁用新功能。

这可以用来启用实验性功能或禁用破坏向后兼容性的新功能。

支持的键和值可能会随时更改,恕不另行通知。未知键将被忽略。

force_ontap_version

字符串

netapp.ontap 21.23.0 中新增

使用 REST 时覆盖集群 ONTAP 版本。

如果版本与目标集群不匹配,则行为未定义。

这是在由于权限问题无法读取集群版本时提供的一种变通方法。请参见 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues

这应采用 9.10 或 9.10.1 的形式,每个元素都是一个整数。

hostname

字符串 / 必填

ONTAP 实例的主机名或 IP 地址。

http_port

整数

使用此端口覆盖默认端口 (80 或 443)

https

布尔值

启用和禁用 https。

使用 REST 时忽略,因为仅支持 https。

使用 SSL 证书身份验证时忽略,因为它需要 SSL。

选项

  • false ← (默认)

  • true

ignore_paths

列表 / 元素=字符串

对于列表中的每个文件或目录,指定不能替换此文件或目录上的权限。

key_filepath

字符串

netapp.ontap 20.6.0 中新增

SSL 客户端密钥文件的路径。

密码

别名:pass

字符串

指定用户的密码。

path

字符串 / 必填

要应用安全权限的文件或目录的路径。

propagation_mode

字符串

指定如何将安全设置传播到子文件夹和文件。

默认为传播。

此选项在创建中有效,但不能修改。

选项

  • "propagate"

  • "replace"

rights

字符串

指定由 ACE 为指定的帐户控制的访问权限。

“rights”参数与“advanced_rights”参数互斥。

ONTAP 将 rights 转换为 advanced_rights,并且当使用 rights 时,此模块不是幂等的。

请确保使用 advanced_rights 来保持幂等性。rights 可用于发现到 advanced_rights 的映射。

选项

  • "无访问权限"

  • "完全控制"

  • "修改"

  • "读取和执行"

  • "读取"

  • "写入"

状态

字符串

指定的文件安全权限ACL 是否应该存在。

选项

  • "present" ← (默认)

  • "不存在"

use_rest

字符串

此模块仅支持REST。

always – 将始终使用 REST API。如果模块不支持 REST,则会发出警告。

默认值: "always"

用户名

别名:user

字符串

这可以是集群范围或SVM范围的帐户,具体取决于是否需要集群级别或SVM级别的API。

更多信息,请阅读文档 https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/

支持两种身份验证方法

  1. 基本身份验证,使用用户名和密码;

  2. SSL证书身份验证,使用SSL客户端证书文件,并可选择使用私钥文件。

要使用证书,必须已在ONTAP集群中安装证书,并且必须已启用证书身份验证。

validate_certs

布尔值

如果设置为 no,则不会验证SSL证书。

仅应在使用自签名证书的个人控制站点上将其设置为 False

选项

  • false

  • true ← (默认)

validate_changes

字符串

ACL可能无法按预期应用。

例如,如果“Everyone”继承所有权限,则无论请求如何,其他用户都将被授予所有权限。

对于此特定示例,您可以删除顶层“Everyone”,或在较低级别为“Everyone”创建一个新的ACL。

使用 rights 时,ONTAP 会将其转换为 advanced_rights,因此验证将始终失败。

有效值为 ignore(忽略,不进行检查);warn(警告,发出警告);error(错误,使模块失败)。

使用SLAGS时,ONTAP可能会根据apply_to设置将一个ACL拆分为两个ACL。为了保持幂等性,请提供2个ACL作为输入。

选项

  • "忽略"

  • "警告"

  • "error" ← (默认)

vserver

字符串 / 必填

要使用的vserver名称。

注释

注意

  • 支持check_mode。

  • 仅支持REST,并需要ONTAP 9.9.1或更高版本。

  • SLAG需要ONTAP 9.10.1或更高版本。

  • 以na_ontap为前缀的模块旨在支持ONTAP存储平台。

  • 默认情况下启用https,建议使用。要在集群上启用http,必须运行以下命令“set -privilege advanced;”“system services web modify -http-enabled true;”。

示例

- name: Add ACL for file or directory security permissions.
  netapp.ontap.na_ontap_file_security_permissions_acl:
    vserver: "{{ vserver_name }}"
    access_control: file_directory
    path: "{{ file_mount_path }}"
    validate_changes: warn
    access: access_allow
    # Note, without quotes, use a single backslash in AD user names
    # with quotes, it needs to be escaped as a double backslash
    # user: "ANSIBLE_CIFS\user1"
    # we can't show an example with a single backslash as this is a python file, but it works in YAML.
    acl_user: "user1"
    apply_to:
      this_folder: true
    advanced_rights:
      append_data: true
      delete: false

- name: Modify ACL for file or directory security permissions.
  netapp.ontap.na_ontap_file_security_permissions_acl:
    vserver: "{{ vserver_name }}"
    access_control: file_directory
    path: "{{ file_mount_path }}"
    validate_changes: warn
    access: access_allow
    acl_user: "user1"
    apply_to:
      this_folder: true
    advanced_rights:
      append_data: false
      delete: true

- name: Delete ACL for file or directory security permissions.
  netapp.ontap.na_ontap_file_security_permissions_acl:
    vserver: "{{ vserver_name }}"
    access_control: file_directory
    path: "{{ file_mount_path }}"
    validate_changes: warn
    access: access_allow
    acl_user: "user1"
    apply_to:
      this_folder: true
    state: absent

作者

  • NetApp Ansible团队 (@carchi8py)