netapp.ontap.na_ontap_file_security_permissions 模块 – NetApp ONTAP NTFS 文件安全权限

注意

此模块是 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

netapp.ontap 22.0.0 中的新增功能

概要

  • 在 NetApp ONTAP 上创建、删除或修改文件或目录的 NTFS 文件安全性和审核策略。

  • 请注意,ACL 是基于(“user”、“access”、“access_control”、“apply_to”)匹配的。为了修改这 4 个属性中的任何一个,模块会删除 ACL 并创建一个新的 ACL。

要求

执行此模块的主机需要满足以下要求。

  • 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_control

字符串

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

有效值为 “file-directory” 或 “Storage-Level Access Guard (SLAG)”。

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

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

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

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

当存在 state 时,如果此选项不存在,则删除 acls 中未列出的所有 ACL。 如果存在此选项,则仅删除与其值匹配的 ACL。

当不存在 state 时,如果此选项不存在,则删除所有 ACL。 如果存在此选项,则仅删除与其值匹配的 ACL。

选项

  • "file_directory"

  • "slag"

acls

列表 / 元素=字典

自主访问安全列表 (DACL) 标识允许或拒绝访问安全对象的受托人。

当进程尝试访问安全对象时,系统会检查对象的 DACL 中的访问控制项 (ACE),以确定是否授予其访问权限。

access

字符串 / 必需

指定 ACL 是用于 DACL 还是 SACL。

目前已针对 DACL 测试了 access_allow、access_deny,针对 SACL 测试了 audit_failure、audit_success。

选项

  • "access_allow"

  • "access_deny"

  • "access_allowed_callback"

  • "access_denied_callback"

  • "access_allowed_callback_object"

  • "access_denied_callback_object"

  • "system_audit_callback"

  • "system_audit_callback_object"

  • "system_resource_attribute"

  • "system_scoped_policy_id"

  • "audit_failure"

  • "audit_success"

  • "audit_success_and_failure"

access_control

字符串

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

有效值为 “file-directory” 或 “Storage-Level Access Guard (SLAG)”。

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

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

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

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

选项

  • "file_directory"

  • "slag"

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 条目应用到何处。

必须将至少一个子选项设置为 true。未设置的子选项假定为 false。

使用 SLAG 时,ONTAP 接受将三个子选项设置为 true,但会创建 2 个 ACL。 此模块需要存在 2 个 ACL 才能保持幂等性。另请参阅 validate_changes

files

布尔值

应用于文件。

选项

  • false ← (默认)

  • true

sub_folders

布尔值

应用于所有子文件夹。

选项

  • false ← (默认)

  • true

this_folder

布尔值

仅应用于此文件夹

选项

  • false ← (默认)

  • true

ignore_paths

列表 / 元素=字符串

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

propagation_mode

字符串

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

默认为 propagate。

此选项仅在创建 ACL 时有效。

选项

  • "propagate"

  • "replace"

rights

字符串

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

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

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

请务必使用 advanced_rights 以保持幂等性。rights 可用于发现到 advanced_rights 的映射。

选项

  • “no_access”

  • “full_control”

  • “modify”

  • “read_and_execute”

  • “read”

  • “write”

user

别名: acl_user

字符串 / 必需

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

自 21.24.0 版本起,当使用 SID 时,该模块不是幂等的。

为了在同时使用 na_ontap_file_security_permissions_acl 时更方便,此项被别名为 acl_user

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

不支持 python 2.6。

control_flags

字符串

指定 SD 中的控制标志。它是一个十六进制值。

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 的形式,其中每个元素都是整数。

group

字符串

指定所有者的主要组。

使用组名称或 SID 指定所有者组。

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 客户端密钥文件的路径。

owner

字符串

指定 NTFS 安全描述符 (SD) 的所有者。

您可以使用用户名或安全标识符 (SID) 指定所有者。

SD 的所有者可以修改应用于文件(或文件夹)或文件(或文件夹)的权限,并且可以授予其他用户拥有应用于 SD 的对象或对象的权利。

password

别名: pass

字符串

指定用户的密码。

path

字符串 / 必需

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

propagation_mode

字符串

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

默认为 propagate。

选项

  • "propagate"

  • "replace"

state

字符串

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

当为 absent 时,所有 ACL 都将被删除,而不管 acls 的内容如何。

请参阅 access_control 以仅删除所有 SLAG ACL,或仅删除文件目录 ACL。

继承的 ACL 将被忽略,它们无法删除或修改。

选项

  • "present" ← (默认)

  • “absent”

use_rest

字符串

此模块仅支持 REST。

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

默认值: "always"

username

别名: 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 作为输入。

选项

  • “ignore”

  • “warn”

  • "error" ← (默认)

vserver

字符串 / 必需

要使用的 vserver 的名称。

注意

注意

  • 支持 check_mode。

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

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

  • 当 state 为 present 时,如果 ACL 被继承,并且所需的 ACL 匹配,则会创建一个新的 ACL,因为继承的 ACL 无法修改。

  • 当 state 为 absent 时,继承的 ACL 将被忽略。

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

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

示例

- name: Create file directory security permissions.
  netapp.ontap.na_ontap_file_security_permissions:
    state: present
    vserver: svm1
    access_control: file_directory
    path: /vol200/newfile.txt
    owner: "{{ user }}"
    # Note, wihout 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.
    acls:
      - access: access_deny
        user: "{{ user }}"
        apply_to:
          files: true
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: "{{ https }}"
    validate_certs: "{{ validate_certs }}"

- name: Modify file directory security permissions.
  netapp.ontap.na_ontap_file_security_permissions:
    state: present
    vserver: svm1
    access_control: file_directory
    path: /vol200/newfile.txt
    acls:
      - access: access_deny
        user: "{{ user }}"
        apply_to:
          files: true
      - access: access_allow
        user: "{{ user }}"
        apply_to:
          files: true
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: "{{ https }}"
    validate_certs: "{{ validate_certs }}"

- name: Delete file directory security ACLs.
  netapp.ontap.na_ontap_file_security_permissions:
    state: absent
    vserver: svm1
    access_control: file_directory
    path: /vol200/newfile.txt
    acls:
      - access: access_deny
        user: "{{ user }}"
        apply_to:
          files: true
      - access: access_allow
        user: "{{ user }}"
        apply_to:
          files: true
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: "{{ https }}"
    validate_certs: "{{ validate_certs }}"

作者

  • NetApp Ansible 团队 (@carchi8py)