Document toolboxDocument toolbox

Data security for semantic models

cApplies to: Kyvos Enterprise  Kyvos Cloud (SaaS on AWS) Kyvos AWS Marketplace

Kyvos Azure Marketplace   Kyvos GCP Marketplace Kyvos Single Node Installation (Kyvos SNI)


Security settings allow you to limit access to data by the criteria you specify, bsuch as region or by department (group). Configure data security at the row or column level or both for saved semantic models. You can specify security access for individual users or ugroups. Right-click an existing rule to modify or delete it. Data security rules can be exported along with the data. Use And or Or to create complex rule conditions. Each rule can have a separate column and row-level security.

Important

  • From Kyvos 2024.2 onwards, Kyvos now supports Column Level Security defined in Big Query. When creating a Semantic Model with Big Query as the data source, any column level security applied in Big Query will be reflected in Kyvos when accessing data from the Semantic Model.

    • The email ID of the user on Kyvos should be the same as the email ID in Google Cloud.

    • The user should have Fine Grained Reader access for accessing secured columns in Kyvos and BigQuery. Without this permissions on the underlying columns, you will not be able to read the data from secured columns.

  • From Kyvos 2024.1 onwards, you can now create condition data security rules at the row level using both "And" and "Or" conditions. Previously, the 'And' condition was implemented by default. Now, you have the option to choose between 'OR' and 'AND' conditions.

  • Your organization can also configure custom row-level security (RLS) using Kyvos Manager. Then you can specify to use it from the Design tab semantic model properties page. If custom RLS is configured, you can't apply Kyvos RLS. 

  • You MUST have sufficient security access to the data to be able to set security options.

Kyvos also allows unconditional column data masking, which is another form of security. It enables you to protect sensitive data by masking columns instead of restricting them. This feature allows for easy masking of any column data, such as SSNs, mobile numbers, credit card numbers, and email IDs, while browsing the semantic model on any BI tool.

See the section Column masking for column-level security for more details.  

Setting semantic model data security

To set semantic model data security, perform the following steps. 

  1. From the Toolbox, click Semantic Models.

  2. Click the Actions menu (...) in the work area then click Data Security.

    image-20240117-111406.png
  3. In the Groups/ Users section, select users or groups that should have access to this semantic model.

  4. Click to select one or more existing rules.

    Data_Security_3.png
  5. You can also set up rules. Click the plus sign in the Rules column to add a rule.

  6. Click Swap to swap groups and users, and rule lists.
    This option allows groups to be mapped with rules or rules to be mapped by groups.

  7. Click Save.

Adding semantic model security rule

To add a rule, perform the following steps.

  1. From the Toolbox, click Semantic Models.

  2. Click the Action menu (...) in the work area, then click Data Security.

  3.  Click users or groups that this rule will apply to.

  4. Click the plus sign in the Rules column.

  5. Add a rule name and description.

  6. Click Row Level or Column Level.

  7. For Rows, choose the fields, criteria, and enter the values you want to only be accessible to the user or group.

  8. For Columns, select a dimension, level, hierarchy, attribute, or measure.
    The available choices vary depending upon the data you are using. The fields selected in this rule will not be accessible to the user or group.

  9. Click the plus sign to add additional criteria.

  10. Click Add.

     

To set up quick rules, perform the following steps. 

  1. From the Toolbox, click Semantic Models.

  2. Select the semantic model name from the list and click the Processtab if needed.

  3. Click the Actions menu (...) in the work area, then click Data Security.

  4. Click users or groups to which you want to apply the rule.

  5. Click one of the options in the Rules list:

    • Allow all columns

    • Allow all rows

Setting up row-level security

To set up row-level security (RLS), perform the following steps.

  1. From the Toolbox, click Semantic Models.

  2. Select the semantic model name from the list and click the Process tab if needed.

  3. From Properties, scroll down to Data Security and choose one of the following as an endpoint source:

  4. Select an endpoint.

  5. Click the Define Rule and Mapping link and select Groups or Users and select the groups or users you want to use or use Search to find them.

  6. For Rules, click Allow All Columns, Allow All Rows, or click the Plus sign next to Rules to add a custom rule. 

  7. On the Add Rule dialog, provide Rule Name and Description. 

  8. From the Row Level area, click the field link and select the field on which you want to apply the RLS.

  9. Select the condition (And / Or) using the and link.

  10. Click the value link, and the dialog box is displayed where you can search or select the values on which you can apply the RLS. The available choices vary depending on the data you are using.  

  11. Click Add. The RLS is applied to the selected values.

From Kyvos 2023.5 onwards, you can also apply RLS on the Key value when the Hierarchy/attribute contains description (display field).

  1. Click Row Level, and then select the click the field link, and then select the field on which you want to apply the RLS security on key field.

  2. The RLS on Key field is applied to the values.

Setting up Column Level Security

To set up column-level security (CLS), perform the following steps. 

  1. From the Toolbox, click Semantic Models.

  2. Select the semantic model name from the list and click the Process tab if needed.

  3. From Properties, scroll down to Data Security and choose one of the following as an endpoint source:

  4. Select an endpoint.

  5. Click the Define Rule and Mapping link and select Groups or Users and select the groups or users you want to use or use Search to find them.

  6. For Rules, click Allow All Columns, Allow All Rows, or click the Plus sign next to Rules to add a custom rule. 

  7. On the Add Rule dialog, provide Rule Name and Description. 

  8. From the Column Level area, select any of the following from Restrict and select the field on which you want to apply the restriction.

    1. Data: Type of column level security in which only data of the column will be restricted. Any queries involving the restricted columns while browsing the semantic models are failed.

    2. Data and Metadata: Type of column-level security in which both data and metadata (visibility) of the column will be restricted. If this option is selected, the restricted columns will not be visible while browsing the semantic model on any of the BI tools.

Note

  • Metadata-level security is not applicable to the default measure.

  • You can select multiple fields for column-level security, such as restrict data and restrict data with metadata, to apply the same level of restriction on multiple fields without creating multiple rows for each field.

Column masking for Column Level Security 

You can apply unconditional column masking for a single-level hierarchy, multilevel hierarchy, Parent Child Hierarchy, attribute, base measure, calculated measure, and measure used in the calculation.

Note

  • Column masking is not applied to Member Properties, Unknown and Calculated members, and Predefined time type hierarchy.

  • Currently, column masking does not support the SQL interface.

  • The original column data is preserved while masking because numeric data is masked with a number, and a date is masked with a date. You can specify a fixed pattern or a Regex expression for any string data type. 

  • The masked value is displayed while browsing the semantic model on any BI tool with an MDX connection. 

  • If using Tilde (~) for column masking and want to apply a filter on the masked value from Kyvos UI, then you must change the value of the field value separator as the default value of the kyvos.filter.value.separator property is also Tilde (~). Hence, you must change the default value of this property so that column masking with the Tilde character can function.

  • To apply column masking to a pre-defined hierarchy, you need to select the full name of the hierarchy.

  • You can create, delete, update, save, and assign column security (masking) rules by using the Security Rest API's.

To mask column data for Column Level Security (CLS), perform the following steps. 

  1. From the Toolbox, click Semantic Models.

  2. Select the semantic model name from the list and click the Process tab if needed.

  3. Click the Action menu (...) in the work area, then click Data Security.
    If the option is not displayed, you must save the semantic model and try again.

  4. Click users or groups that this rule will apply to.

  5. Click the plus sign in the Rules column.

  6. Add a rule name and description.

  7. From the Column Level area, click the field link from Mask data, and then select the field on which you want to apply the column masking. 

  8. Click the value link, and the Mask with dialog box is displayed. You must enter the required value for unconditional column masking. The available choices vary depending on the data you are using.  

    1. For any string data type, choose one of the following: 

      • Fixed: Use this option to specify a fixed value for column masking. 

        • Enter a value that you want to apply for column masking. The entered value is displayed in the Preview area. 
          NOTE: You can specify any character or special characters, such as #, *, @. If you keep the field blank, then while semantic model browsing, the field value is displayed as blank.  

      • Regex: Use this option to specify a Regex expression for column masking.

        1. Enter a Regex expression that you want to specify for the field value, and then provide a value that you want to use for column masking.

        2. You can also select a Regex expression from the Choose from common expressions list. 

        3. To verify whether the Regex expression is successfully masked with the value, enter a relevant value in the Test Value field. The result is displayed in the Preview field. If the expression is not masked successfully, you can modify the expression, as needed.  
          NOTE: In an expression, the Delimiter (/) and the flags (g,m,i,u,s,d) are not supported.

  9. Click the plus sign to add additional fields, if required.  

  10. Click Add. 

Examples of rule criteria

You can specify criteria for values in a field such as:

  • Is in the list

  • Is not in the list

  • Starts with 

  • Contains

  • Ends with

Row Level Security using LDAP

You can set up a Parameterized Row Level Security (RLS) filter to control access to rows in a database table by using custom attributes on an LDAP server.

To use this feature, users and their details must be set up on an LDAP server. Set up custom attributes on the LDAP server and create a group in Kyvos of these users. Then, define a parameterized RLS filter on the semantic model for this group. The filter contains a parameter that is resolved at the time of the query.

To define a parameterized RLS filter, perform the following steps: 

  1. From the Toolbox, click Semantic Models.

  2. Click the Actions menu (...) in the work area and then click Data Security.

  3. Click users or groups that this rule will apply.

  4. Click the plus sign in the Rules column.

  5. Add a rule name and description.

  6. Click Row Level.

  7. Specify the field name and for criteria choose the parameter. Then select an LDAP custom attribute.

  8. Click Add.

Copyright Kyvos, Inc. All rights reserved.