Creating View Policies

Prev Next

Creating a View Policy via VAST Web UI

  1. In the VAST Web UI, select Element Store from the left navigation menu and then select View Policies.

  2. To add a new view policy, click Create Policy.

    The Add Policy dialog is displayed with the General tab open.

  3. In the General tab, complete the following fields:  

    Tenant

    Specifies which tenant the view policy should serve. A view policy can serve a specific tenant or all tenants. To specify all tenants, select All tenants.

    Name

    Enter a unique name for the view policy. The name must be unique across all tenants.

    Security Flavor

    The security flavor determines which protocol's access check algorithm is used and which protocol(s) is allowed to set permissions on files and directories.

    For more information, see Controlling File and Directory Permissions Across Protocols. Controlling File and Directory Permissions Across Protocols

    Select an option from the dropdown:

    • NFS. Treats NFS as a native protocol and other protocols as non-native protocols. Supports NFSv3, SMB and S3. Supports NFSv4.1 without support for NFSv4 ACLs.

    • SMB. Treats SMB as a native protocol and other protocols as non-native protocols. Supports SMB,  NFSv3, NFSv4.1 and S3.

    • S3 Native. Treats S3 as a native protocol and NFS as a non-native protocol. Supports S3 and NFSv3. Supports NFSv4.1 without support for NFSv4 ACLs. Does not support SMB.

    • Mixed Last Wins. Allows file and directory permissions to be set and modified by all clients. Includes support for NFSv4.1 clients to set NFSv4.1 ACLs. Supports SMB, NFSv3, NFSv4.1 and S3.

      Note

      There is an advanced setting available which can block either NFSv4.1 or SMB from setting file permissions. This setting is available via the VAST CLI and is called access-flavor.  

    Caution

    Switching security flavors for views that have S3 Buckets enabled is not allowed. The flavor specified in the policy when the view is created must remain.

    Virtual IP Pools (optional)

    Select virtual IP pools if you want to limit access to particular pools.

    If no virtual IP pools are selected, all pools can access all views that are attached to the view policy.

    Group Membership Source

    The source to trust for users' group memberships during the permission checking process:

    • Client. Groups declared in the RPC as the user's leading group and auxiliary groups are trusted and provider-sourced groups are not considered.

      This option is supported only for views that are exposed exclusively to NFSv3.

    • Providers. Group memberships retrieved from authorization providers are considered as the user's group memberships (as for SMB-only and multiprotocol views). The GIDs declared in the RPC are ignored.

      This option must be used for views that have SMB enabled.

      Similarly, where NFSv4.1 is enabled in the view, if Kerberos Authentication Minimal protection level is set to Kerberos Auth-only, Kerberos Integrity or Kerberos Privacy then this option must be used.

    • Client and Providers. Groups declared in the RPC and group memberships retrieved from authorization providers are considered. If the GID provided by the client does not match the GID retrieved from the authorization provider, the GID from the client is set.

      Note

      If Kerberos authentication is used by NFSv4.1 clients, the groups declared in the RPC are ignored.

  4. Optionally, use the Host-Based Access tab to restrict access to the view on a host basis per protocol.

    You can restrict different access types. The NFS access types that you can restrict include read/write and read-only access that apply to NFSv3 and NFSv4.1, as well as squash permissions and trash folder permission that are only relevant to NFSv3.

    Starting with VAST Cluster 5.0.0-SP30, on new installations, if a view policy does not have any host-based access rules defined for a specific access protocol, access is denied for all hosts. Prior to  VAST Cluster 5.0.0-SP30 and on deployments upgraded to 5.0.0-SP30 or later, all hosts are allowed access if no host-based access rules are defined.

    Tip

    An asterisk ('*') shown to the right of the + Add New Rule button is a wildcard representing all IPs of all hosts: CreateViewPolicy_HostBasedAccess_asterisk.png.

    To add host-based access restrictions:

    1. Under NFS, SMB or S3, find the Access Type category for which you want to add hosts:

      • Read / Write. Read/write access.

      • Read Only. Read-only access.

      • Squash control (for NFSv3 only):

        • No Squash. All operations are supported. Use this option if you trust the root user not to perform operations that will corrupt data.

        • Root Squash. The root user is mapped to nobody for all file and folder management operations on the export. This enables you to prevent the strongest super user from corrupting all user data on the VAST Cluster.

        • All Squash. All client users are mapped to nobody for all file and folder management operations on the export.

      • Trash folder control (for NFSv3 only):

        • Trash Access. This option is displayed if Trash folder access is enabled in the Settings page. Granting this permission gives hosts the ability to delete files by moving them into a trash folder, from which they are automatically deleted. Requires also No Squash. For more information, see Trash Folder (for Rapid Parallel File Deletion).

      You can add hosts to any and all of the access types, but within each category no more than one type will be applied to any given host. If a host is specified with multiple entries in mutually exclusive types, the conflict is resolved as follows:

      • An IP overrides a netgroup, a netgroup overrides a CIDR, and a CIDR overrides a wildcard expression.

      • If a conflict remains after the previous rule is applied, then:

        • Read Only overrides Read / Write.

        • All Squash overrides Root Squash.

        • Root Squash overrides No Squash.

    2. Click the +Add New Rule button for the access type you want to add hosts to.

    3. In the Enter IPs popup, add hosts using any of the following expressions in a comma-separated list:

      • A single IP address.

      • A subnet indicated by CIDR notation. For example: 1.1.1.1/24.

      • A range of IPs indicated by an IP address with '*' as a wildcard in place of any of the 8-bit fields in the address. For example, 3.3.3.*, or 3.3.*.*.

      • (NFS only) A netgroup, prefixed with an '@'. For information about using netgroups, see Using Netgroups to Authorize Hosts.

    4. Click Add or press Enter.

      The entries are added.

    To remove an entry, hover to the right of the entry until a removal button appears and click it:

    removeIP.png

  5. Optionally, go to the NFS tab to make NFS settings:

    Use TLS to encrypt traffic in flight

    Enable this setting if you want to enforce TLS encryption between the NFSv3 or NFSv4.1 client and the cluster.

    Note

    TLS encryption requires further setup in addition to this view policy setting. For details, see Configuring TLS Encryption with NFSv4.1.

    When this setting is enabled, the Kerberos Authentication Minimal protection level option must be set to System or None.

    POSIX ACL

    Enables full support of extended POSIX Access Control Lists (ACL) for NFSv3 clients.

    By default, VAST Cluster supports the traditional POSIX file system object permission mode bits (minimal ACL mode) in which each file has three ACL entries defining  the permissions for the owner, owning group, and others, respectively. To learn more about POSIX ACL, see https://linux.die.net/man/5/acl.

    If NFS security flavor is enabled, any POSIX ACLs set on directories are inherited by files created in the directory by SMB and S3 clients rather than the permission mode bits set in the view policy.

    Note the following limitations:

    • The POSIX ACL setting is supported only with the NFS security flavor.

    • If  POSIX ACL  is enabled, POSIX ACLs may be used via NFSv3 only. They cannot be used via NFSv4.1.

      If clients have created files and directories with POSIX ACLs using NFSv3 and then they start to access those files and directories via NFSv4.1, the POSIX ACLs will have no effect.

    • Support for NFSv4.1 ACLs requires Mixed Last Wins security flavor and is not available concurrently with POSIX ACLs for NFSv3.

    • If  POSIX ACL is disabled, the setfacl Linux command is blocked.

    NFS case insensitivity

    When enabled, VAST Cluster does not honor case in the names of file or directories accessed through NFSv4.1.

    Caution

    Toggling this option on or off for an existing view may have unpredictable results.

    Kerberos Authentication Minimal protection level

    Determines the minimum NFSv4.1 security level to allow for NFSv4.1 mounts:

    • System. Allows client mounts using either the AUTH_SYS RCP security flavor (the traditional default NFS authentication scheme) or with any of the three Kerberos security modes (krb5, krb5i, or krb5p).

    • None. Allows client mounts with the AUTH_NONE (anonymous access), or AUTH_SYS RCP security flavors, or with any of the three Kerberos security modes (krb5, krb5i, or krb5p).

    • Kerberos Auth. Allows client mounts with Kerberos authentication only and allows any of the three Kerberos security modes (krb5, krb5i, or krb5p).

    • Kerberos Integrity. Allows client mounts only if they use either Kerberos 5 authentication with privacy checking (krb5p) or Kerberos 5 authentication with integrity (krb5i).

    • Kerberos Privacy. Allows client mounts only if they use Kerberos 5 authentication with privacy checking (krb5p), the highest level Kerberos security mode.

  6. If you intend to use this view policy for S3-enabled views, go to the S3 tab and set the following:

    • Bucket listing permissions:

      • In the Bucket listing permission (users) field, enter any user names of users who should be able to list buckets that are created using this policy.

        When an S3 user sends a bucket listing request, the command returns a list of all buckets the user owns and all buckets that they have listing permission for, even if they do not have permission to access those buckets.

      • In the Bucket listing permission (groups) field, enter any group names of user groups who should be able to list buckets that are created using this policy.

    • Enable S3 special chars support: Allows or prohibits S3 object names containing character combinations that are not compatible with other access protocols, such as names containing // or  /../.

    • Settings for view policies with S3 Native security flavor:

      • S3 flavor detect full pathname: When enabled, NFS clients are allowed or denied access based on the full resource names specified in the identity policies. This means that the identity policy can refer to particular files and directories, rather than to the bucket as a whole. When disabled, only the bucket name from the identity policy is taken into account.

      • S3 flavor free listing: When enabled, NFS clients are able to list bucket views and their subdirectories regardless of individual object permissions. When disabled, listing a directory is allowed or denied based on the identity policies.

  7. If you intend to use this view policy for SMB-enabled views, go to the SMB tab and set the following:

    Visible .snapshot Folder In SMB Subdirectories

    When enabled, makes a .snapshot directory visible via SMB within every directory in the view, even if there is no snapshot that was taken on the directory itself. These .snapshot directories will contain links to any existing snapshots of parent directories. As with all .snapshot directories, these are hidden directories and will appear in directory listings only for SMB clients.

    SMB continuous availability

    This option is for use with SMBv3.

    When enabled, the SMB share exposed by the view is set as continuously available, which allows SMB3 clients to request use of persistent file handles and keep their connections to this share in case of a failover event.

    Note

    This option requires that the client uses SMBv3.

    Disable client leases

    Enable this option to disable SMB caching leases for SMB clients and select each and every type of lease that you want to disable:

    • Handle leases. Select to disable handle leases so that SMB clients cannot delay closing handles on files or directories.

      Note

      Disabling handle leases may impact client resiliency to network and server failures.

    • Read leases. Select to disable handle leases so that SMB clients cannot delay closing handles on files or directories.

    • Write leases. Select to disable handle leases so that SMB clients cannot delay closing handles on files or directories.

  8. If you selected NFS as the security flavor, optionally go to the Default POSIX modebits tab to change the file mode permission bits and the directory mode permission bits that are applied to files and directories when they are created by protocols other than NFS.

    To learn more about permissions and how they are transposed between the protocols, see Controlling File and Directory Permissions Across Protocols.Controlling File and Directory Permissions Across Protocols

  9. In the Auditing tab, you can enable any auditing settings that are not enabled globally that you want to enable in the view policy.

    Note

    Before you can configure any auditing settings in a view policy, minimal global auditing settings must be configured first.  

    Any auditing settings that are enabled globally are automatically enabled on all views.

    1. From the Protocols dropdown, select one or more protocols to enable auditing of protocol operations. Possible values: NFSv3, NFSv4.1, SMB, S3 and NDB (Database).

    2. Under Operations to audit, choose one or more categories of operations to be audited for the protocol(s) for which auditing is enabled:

      • Create/Delete Files/Directories/Objects. Operations that create or delete files, directories, or objects:

        NFSv3

        NFSv4.1

        SMB

        S3

        CREATE, when it creates a file

        MKDIR

        LINK

        SYMLINK

        MKNOD

        REMOVE

        RMDIR

        RENAME

        CREATE

        OPEN, when it creates a file

        LINK

        REMOVE

        RENAME

        CREATE, when it creates a new file or directory, or opens an existing file in delete-on-close mode

        SET_INFO, when it is used for delete on close or when it renames a file or directory

        Bucket-level operations:

        • CreateBucket

        • DeleteBucket

        Object-level operations:

        • PutObject

        • CopyObject

        • CreateMultipartUpload

        • AbortMultipartUpload

        • CompleteMultipartUpload

        • DeleteObject

        • DeleteObjects

      • Modify data/metadata. Operations that modify data (this includes operations that change the file size) and metadata:

        NFSv3

        NFSv4.1

        SMB

        S3

        CREATE, when it truncates a file

        WRITE

        SETATTR

        SETACL

        OPEN, if it truncates an existing file

        WRITE

        SETATTR

        CREATE, if it truncates an existing file

        WRITE

        IOCTL on a file or directory, if it modifies data or metadata

        SET_INFO, when it changes metadata

        Bucket-level operations:

        • PutBucketAcl

        • PutBucketVersioning

        • PutObjectLockConfiguration

        • PutBucketLifecycleConfiguration

        • PutBucketTagging

        • DeleteBucketTagging

        Object-level operations:

        • PutObjectAcl

        • PutObjectRetention

        • PutObjectLegalHold

        • PutObjectTagging

        • DeleteObjectTagging

      • Read data. Operations that read data and metadata:

        NFSv3

        NFSv4.1

        SMB

        S3

        READ

        READDIR

        READDIRPLUS

        GETACL

        ACCESS, if the RPC failed or if the granted access is lower than the requested access

        READ

        GETATTR

        READDIR

        VERIFY

        READ

        QUERY_DIRECTORY

        Object-level operations:

        • GetObject

    3. Optionally change the Audit record options:

      Log full path

      If enabled (default for all protocols), audit records contain the full Element Store path to the requested resource. This may affect performance. When disabled, the view path is recorded.

      Log username

      Disabled by default.

      If enabled, audit records contain the username.

  10. Optionally modify Advanced settings:

    Path Length Limit

    Affects the maximum limit of file path component name length. Choose between:

    • Lowest Common Denominator (default). Imposes the lowest common denominator file length limit of all VAST Cluster-supported protocols, regardless of the specific protocol enabled on a specific view. With this (default) option, the limitation on the length of a single component of the path is 255 characters.

    • Native Protocol Limit. Imposes no limitation beyond that of the client protocol.

      Caution

      If you select this mode in a view policy and then expose a view using this policy to a previously not exposed protocol, that view might contain files that won't be accessible by the newly added protocol, due to the limitations of that protocol.

    Allowed Characters

    Determines which characters are allowed in file names. Choose between:

    • Lowest Common Denominator (default). Allows only characters allowed by all VAST Cluster-supported protocols, regardless of the specific protocol enabled on a specific view.

    • Native Protocol Limit. Imposes no limitation beyond that of the client protocol.

      Caution

      If you select this mode in a view policy and then expose a view using this policy to a previously not exposed protocol, that view might contain files that won't be accessible by the newly added protocol, due to the limitations of that protocol.

    Atime Frequency

    atime is a metadata attribute of NFS files that represents the last time the file was updated. atime is updated on read operations if the difference between the current time and the file's atime value is greater than the configured atime frequency. Consider that a very low value might have a performance impact if high numbers of files are being read.

    Specify ATIME_FREQUENCY as an integer followed by a unit of time (s = seconds, m = minutes, h = hours, d = days).

    Example: 1h

    Default: 0, which means no atime updates.

    Use 32-bit File IDs

    Sets the VAST Cluster's NFS server to use 32bit file IDs. This setting supports legacy 32-bit applications running over NFSv3.

    This setting is disabled by default.

    This setting is not supported for views that are enabled for NFSv4.1.

    Accessible .snapshot Folder In Subdirectories

    This setting enables accessible .snapshot directories under all directories in the view.  In subdirectories of protected paths, these directories provide links to any existing snapshots of parent directories even if there is no protected path on the subdirectory itself. This provides easier access from each directory to snapshots of parent directories.

    If disabled, access to a .snapshot directory under each directory is only enabled if the directory has a protected path on it.

  11. Click Create.

    The view policy is created and added to the list.

Creating a View Policy via VAST CLI

Use the viewpolicy create command to create a new view policy.