All pages
Powered by GitBook
1 of 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Managing Users and Permissions

Create users

  1. Click the Identities in the navigation menu and select Users.

  2. Click the New User button.

  3. Fill out the Full Name and Email fields in the dialog. Note: The user's email address will be used as the username and must be unique.

  4. Click the Create button.

Add permission to user

  1. Click Identities in the navigation menu and select Users.

  2. Select the user you want to edit and select the Settings tab.

  3. Click Add Permissions.

  4. Click the Select Permission dropdown, and select the permission you want to give the user.

Disable users

  1. Click Identities in the navigation menu and select Users.

  2. Select the user you want to disable, and click the more actions icon.

  3. Select Disable User.

  4. Click Disable in the confirmation dialog.

Permanently delete users

Requirement: USER_ADMIN permission

Note: This action permanently deletes all data associated with this user from Immuta, including data source subscriptions, and a timestamp of this event will be captured in the audit logs. The ability to create governance reports against this user will no longer be possible. This action cannot be undone.

  1. Click Identities in the navigation menu and select Users.

  2. Select the user you want to disable, and click the more actions icon.

  3. Select Permanently Delete.

  4. Click Permanently Delete User in the confirmation dialog.

Migrate users

Prerequisite:

  1. Click Identities in the navigation menu and select Users.

  2. Click the more actions icon and select Migrate User.

  3. Enter their username in the modal that appears and click Migrate User.

Remove a permission from a user

  1. Click Identities in the navigation menu and select Users.

  2. Select the user you want to edit and select the Settings tab.

  3. Click Remove on the permission you want to remove.

Download metrics

  1. Click Identities in the navigation menu and select Users.

  2. Click the Metrics button.

  3. Complete the Number of Days field in the dialog that appears, and then click Download to download the JSON file.

Show disabled accounts

Once an account has been disabled, it will not appear in the list of current Immuta users. To show the disabled accounts,

  1. Click Identities in the navigation menu and select Users.

  2. Use Filters to filter the table to Include Accounts and check the Disabled box.

Type Delete to confirm deleting the user permanently.

  • Click the Confirm Permanent Delete button.

  • An IAM configured in Immuta

    How-to Guides

    External User Info Endpoint

    Immuta can consume user attributes from an external HTTP endpoint in an out-of-band fashion. This feature allows you to retrieve users' groups and authorizations from an additional resource, alongside the user attributes retrieved in the authentication flow. Such an external endpoint can be configured on any of the Identity Provider types that Immuta supports.

    Implement the HTTP Service

    The following section instructs how to implement the HTTP service.

    Specifications

    Authentication

    The service can authenticate requests with both or either of the following methods:

    1. Basic username and password Authorization header

    2. SSL cert validation

    For more information, refer to .

    Note: Immuta will expect non 200 error codes when the user info cannot be retrieved.

    GET /user-info

    The user info endpoint will be called each time Immuta needs to synchronize with a remote IAM on user groups and authorizations. Immuta will query the endpoint with the user ID specified in request's query.

    Note: The endpoint's path does not necessarily have to be /user-info.

    Parameters

    Name
    Located in
    Description
    Required
    Schema

    Responses

    Code
    Description

    Response Schema

    Name
    Example

    Below is an example value that could be returned by the endpoint:

    Configure an External User Info Endpoint

    1. Click the App Settings icon in the navigation menu.

    2. If you are modifying an existing IAM, click the name of the IAM. If you are creating a new IAM, click Add IAM.

    3. Check the External Groups and Authorizations Endpoint checkbox.

    4. In the External User Info URI field, enter the full path to your customer HTTP endpoint.

    Manage Attributes and Groups

    Create group

    1. Click Identities in the navigation menu and select Groups.

    2. Click the New Group button.

    3. In the modal, enter the new group's name. You can opt to enter a description of and email address for the new group.

    4. Click Save.

    Add user to group

    1. Click Identities in the navigation menu and select Groups.

    2. Select the group you want to edit and select the Settings tab.

    3. Click the Add Members button.

    4. Begin typing in the Search by Member Name or Email text box.

    Add group or user attribute

    Authentication best practice: Use an for authentication and Immuta's internal IAM to manage attributes.

    1. Click Identities in the navigation menu and select Groups.

    2. Select the group you want to edit and select the Settings tab.

    3. Click Add Attributes.

    4. Begin typing the attribute name in the Attribute text box.

    Remove a user from a group

    1. Click Identities in the navigation menu and select Groups.

    2. Select the group you want to edit and select the Settings tab.

    3. In the members section, click Remove in the Action column for the member you want to remove.

    4. Click Delete

    Delete a group

    1. Click Identities in the navigation menu and select Groups.

    2. Select the group you want to edit.

    3. Click the more actions icon, and select Delete.

    4. Click Delete to confirm.

    Remove a user or group's attribute

    1. Click Identities in the navigation menu and select Users or Groups.

    2. Select the user or group you want to edit and select the Settings tab.

    3. In the Attributes section, click the more actions icon on the attribute value you want to remove.

    Click on the name from the dropdown list to add this user to the group.

  • If the attribute already exists, select it from the dropdown list.

  • If the attribute does not exist yet, enter the full name of the attribute, and then select it from the dropdown.

  • In the Attribute Value text box, enter a value.

    • If the value already exists, select it from the dropdown list.

    • If the value does not exist, enter the full name, and then select it from the dropdown.

  • Click Close.

  • to confirm.
    Click Remove and Confirm.
    external IAM

    Optionally, check the Use Authentication checkbox and provide the username and password with which Immuta should authenticate when querying the user info endpoint. Immuta will subsequently send requests to the service with a Basic authorization header.

  • Optionally, enable SSL by checking the Enable SSL checkbox.

  • Optionally, if SSL is enabled, check the Require SSL Request Cert if your service requires SSL certificate validation. This step will require that you upload three files:

    • The SSL key file (*.pem)

    • The SSL cert file (*.pem)

    • The SSL CA file (*.pem)

  • userid

    query

    The unique user identifier (username in Immuta)

    Yes

    string

    200

    successful operation - user info retrieved successfully

    groups

    [{"name": "<group_name>"}]

    authorizations

    {"<authorization_name>": ["<value>"]}

    Configure an External User Info Endpoint
    {
      "groups": [{
        "name":  "Accountants",
      }, {
        "name":  "Controllers",
      }],
      "authorizations": {
        "EMEA": ["Sales", "Expenses"],
        "APAC": ["Sales"]
      }
    }

    External User ID Mapping

    External IDs for integrations can be mapped in based on attributes from an external IAM system, allowing you to link an external account to the corresponding Immuta account even when usernames do not match between Immuta and the external system.

    Configure External User ID Mapping on App Settings Page

    External IDs for integrations can be mapped in based on attributes from an external IAM system.

    1. Click the App Settings icon in the navigation menu and click

    Identity Management
    .
  • Select your IAM and scroll to the Profile Schema section.

  • Ensure that usernames in your data platform align with usernames in an external IAM and that those accounts align with an IAM attribute. Then, enter the IAM attribute in the field that corresponds to your data platform:

    1. User's Databricks Username

    2. User's Snowflake Username

    3. User's Trino Username

    4. User's Azure Synapse Analytics Username

    5. User's Redshift Username

    6. User's AWS User. After entering the IAM attribute in the User's AWS User field, click the Select AWS User Type from the dropdown and select one of the types below. This is used by the Amazon S3 Integration to map users in Immuta to the corresponding user type in AWS.

      • None (fallback to Immuta username): When selecting this option, the AWS username is assumed to be the same as the Immuta username.

      • : Only a single Immuta user can be mapped to an IAM role. This restriction prohibits enforcing policies on AWS users who could assume that role. Therefore, if using role principals, create a new user in Immuta that represents the role so that the role then has the permissions applied specifically to it.

    7. User's PostgreSQL Username

    8. User's Teradata Username

  • Click Test Connection, and then click Test User Login.

  • Click Save.

  • Manually Configure External User ID Mapping on a User's Page

    For IAMs where no mapping has been defined (including Immuta's built-in IAM), the external user ID mappings can be set manually.

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit.

    3. In the Usernames section, click Edit for the technology username you want to change.

      1. Complete the Username field in the modal that appears and click Save.

      2. For Databricks usernames,

        1. Select Databricks Username to map the Databricks username to the Immuta user and enter the Databricks username in the field. Username mapping for Databricks is case insensitive.

        2. Select Unset (fallback to Immuta username) to use the Immuta username as the assumed Databricks username. Use this option if the user's Databricks username exactly matches the user's Immuta username. Username mapping for Databricks is case insensitive.

      3. For S3 usernames, use the dropdown menu to select the User Type. Then complete the S3 field. User and role names are case-sensitive. See the for details.

        • : Only a single Immuta user can be mapped to an IAM role. This restriction prohibits enforcing policies on AWS users who could assume that role. Therefore, if using role principals, create a new user in Immuta that represents the role so that the role then has the permissions applied specifically to it.

    All external IDs are displayed on the user details page and their user profile.

    AWS IAM user

  • AWS Identity Center user IDs: You must use the numeric User ID value found in AWS IAM Identity Center, not the user's email address.

  • Select None (user does not exist in Databricks) if this is an Immuta-only user. This option will improve performance for Immuta users who do not have a mapping to Databricks users and will be automatically selected by Immuta if an Immuta user is not found in Databricks. To ensure your Databricks users have policies correctly applied, manually map their usernames using the first option above.
    AWS Identity Center user IDs: You must use the numeric User ID value found in AWS IAM Identity Center, not the user's email address.
  • Unset (fallback to Immuta username): When selecting this option, the S3 username is assumed to be the same as the Immuta username.

  • AWS IAM role
    AWS documentation
    AWS IAM role principals
    AWS IAM user principals

    User Impersonation

    Impersonation allows users to query data as another Immuta user. If you don't see instructions for enabling impersonation for your integration on this page, the integration does not support it. See the Integrations overview page to view a list of integrations and the Immuta features they support.

    Impersonating users in projects

    If you are impersonating a user who is currently in a project, you will only see data sources within that project. For details about this behavior, see the description of project contexts.

    User Impersonation with Amazon Redshift

    1 - Enable User Impersonation

    Select Enable Impersonation when configuring the Redshift integration on the .

    2 - Grant Users the IMPERSONATE_USER Permission

    After enabling user impersonation with your Amazon Redshift integration, there are two ways to give a user permission to use the feature: in the Immuta UI or in Amazon Redshift. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Add Permissions.

    3 - Impersonate a User

    To impersonate another user in Redshift,

    1. Run the following in Redshift: CALL immuta_procedures.impersonate_user(<Immuta username of the user to impersonate>).

    2. Run queries.

    4 - End User Impersonation

    To end user impersonation in Redshift, run CALL immuta_procedures.impersonate_user(<NULL>).

    5 - Revoke Users' IMPERSONATE_USER Permission

    There are two ways to revoke permission to impersonate users: in the Immuta UI or in Amazon Redshift. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Remove for the IMPERSONATE_USER permission.

    Redshift-Specific Caveats

    User impersonation is specific to the script and session in which it was set. Using a new script or running a subset of script queries without setting the context will result in the queries being run as the regular user.

    User Impersonation with Azure Synapse Analytics

    1 - Enable User Impersonation

    Select Enable Impersonation when configuring the Synapse Analytics integration on the .

    2 - Grant Users the IMPERSONATE_USER Permission

    After enabling user impersonation with your Azure Synapse Analytics integration, there are two ways to give a user permission to use the feature: in the Immuta UI or in Azure Synapse Analytics. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Add Permissions.

    3 - Impersonate a User

    To impersonate another user in Synapse,

    1. Run the following command:

    2. Run queries.

    4 - End User Impersonation

    To end user impersonation in Synapse, run EXEC sys.sp_set_session_context @key = N'NULL', @value = '<NULL>'.

    5 - Revoke Users' IMPERSONATE_USER Permission

    There are two ways to revoke permission to impersonate users: in the Immuta UI or in Azure Synapse Analytics. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Remove for the IMPERSONATE_USER permission.

    Synapse-Specific Caveats

    User impersonation is specific to the script and session in which it was set. Opening a new script will revert the user back to themselves.

    User Impersonation with Databricks Spark

    The Databricks Unity Catalog integration does not support user impersonation.

    Databricks user impersonation allows a Databricks user to impersonate an Immuta user. With this feature,

    • the Immuta user who is being impersonated does not have to have a Databricks account, but they must have an Immuta account.

    • the Databricks user who is impersonating an Immuta user does not have to be associated with Immuta. For example, this could be a service account.

    When acting under impersonation, the Databricks user loses their privileged access, so they can only access the tables the Immuta user has access to and only perform DDL commands when that user is acting under an allowed circumstance (such as workspaces, scratch paths, or non-Immuta reads/writes).

    1 - Configure User Impersonation

    In the , add a comma-separated list of Databricks users who are allowed to impersonate Immuta users for the IMMUTA_SPARK_DATABRICKS_ALLOWED_IMPERSONATION_USERS Spark environment variable.

    Prevent users from changing impersonation user in a given session

    If your BI tool or other service allows users to submit arbitrary SQL or issue SET commands, set IMMUTA_SPARK_DATABRICKS_SINGLE_IMPERSONATION_USER to true to prevent users from changing their impersonation user once it has been set for a given Spark session.

    2 - Impersonate a User

    Once the cluster is configured with a list of Databricks users who are allowed to impersonate Immuta users, run the following SQL command to set the user you want to impersonate:

    This command generates an API token for the specified user that queries Immuta for metadata pertinent to that user. When generating the token, the impersonated username is matched with the corresponding IAM user. The IAM used by default is the built-in IAM in Immuta, but can be set using the .

    3 - Query Data

    Run queries as the impersonated Immuta user:

    Once impersonation is active, any query issued in the session will have the appropriate data and subscription policies applied for the impersonated user.

    Audited Queries

    Audited queries include an impersonationUser field, which identifies the Databricks user impersonating the Immuta user:

    4 - End User Impersonation

    To end user impersonation for the session, run

    Databricks-Specific Caveat

    The only way to enable this feature is through cluster configuration. The IMPERSONATE_USER permission in Immuta will not allow a user to perform impersonation in Databricks.

    User Impersonation with Starburst (Trino)

    1 - Grant Users the IMPERSONATE_USER Permission

    User impersonation is automatically enabled with your Starburst (Trino) integration, but the authenticated user must be given the IMPERSONATE_USER permission in Immuta or match the Starburst (Trino) .

    To grant the user IMPERSONATE_USER permission, as an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Add Permissions.

    4. Click the Select Permission dropdown, and select the IMPERSONATE_USER

    2 - Impersonate a User

    The Starburst (Trino) integration supports the native Starburst or Trino impersonation approaches:

    • JDBC method: In your JDBC connection driver properties, set the sessionUser property to the Immuta user you want to impersonate. See the for details.

    • Trino CLI method: Set the --session-user property to specify the session user as the Immuta user you want to impersonate when invoking the . See the for details.

    3 - Check User Impersonation

    To view the user you are impersonating, run SHOW SESSION like 'immuta.immuta_user'.

    4 - End User Impersonation

    To end user impersonation, run RESET SESSION immuta.immuta_user.

    5 - Revoke Users' IMPERSONATE_USER Permission

    To revoke permission to impersonate users, as an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Remove for the IMPERSONATE_USER permission.

    Caveat

    The user's permissions to impersonate users are not checked until the query is run. If the user does not have the IMPERSONATE_USER permission in Immuta, they will be able to run the command to impersonate a role, but will not be able to query as that role.

    User Impersonation with Snowflake

    Impersonation is not supported in Snowflake if or is enabled.

    1 - Enable User Impersonation

    Select Enable Impersonation when configuring the Snowflake integration on the .

    2 - Grant Users the IMPERSONATE_USER Permission

    After enabling user impersonation with your Snowflake integration, there are two ways to give a user permission to use the feature: in the Immuta UI or in Snowflake. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Add Permissions.

    3 - Impersonate a User

    To impersonate another user in Snowflake,

    1. Open a New Worksheet and set your role to the impersonation role specific to your organization.

    2. Run SET immuta_user = '<<Immuta username of the user to impersonate>>'.

    3. Run queries within that worksheet.

    4 - Revoke Users' IMPERSONATE_USER Permission

    There are two ways to revoke permission to impersonate users: in the Immuta UI or in Snowflake. Use the tabs below to select one method.

    As an Immuta user with the permission USER_ADMIN,

    1. Click Identities in the navigation menu and select Users.

    2. Select the user you want to edit and select the Settings tab.

    3. Click Remove for the IMPERSONATE_USER permission.

    Snowflake-Specific Caveats

    • Impersonation is specific to the workspace and session in which it was set. Opening a new worksheet will revert the user back to themselves.

    • Snowflake auditing will show the user running the queries as the user logged in to Snowflake not as the user they are impersonating.

    • Impersonation is not supported in Snowflake if or is enabled.

    Click the Select Permission dropdown, and select the IMPERSONATE_USER permission.

    As a Redshift superuser,

    1. Navigate to your Redshift instance.

    2. Run ALTER GROUP <Impersonation Group> ADD USER <Redshift User>.

    As a Redshift superuser,

    1. Navigate to your Redshift instance.

    2. Run the following in Redshift: ALTER GROUP <Impersonation Group> DROP USER <Redshift User>

    Click the Select Permission dropdown, and select the IMPERSONATE_USER permission.

    As a Synapse user,

    1. Navigate to your Synapse instance.

    2. Run the following in Synapse: EXEC sp_addrolemember N'<Impersonation Role>', N'<Synapse User>'

    As a Synapse user,

    1. Navigate to your Synapse.

    2. Run the following in Synapse: EXEC sp_droprolemember N'<Impersonation Role>', N'<Synapse User>'

    permission.

    Click the Select Permission dropdown, and select the IMPERSONATE_USER permission.

    As a Snowflake user with the ACCOUNTADMIN role,

    1. Navigate to your Snowflake instance.

    2. In a worksheet run GRANT ROLE <<Impersonation_Role>> TO USER "<<Snowflake User>>".

      In this example, the Impersonation Role is the name entered on the Immuta App Settings page when the feature was enabled. The default is IMMUTA_IMPERSONATION, but the admin may have customized it. The Snowflake User is the username of the Snowflake user that will now have permission to impersonate other users.

    As a Snowflake user with the ACCOUNTADMIN role,

    1. Navigate to your Snowflake instance.

    2. In a worksheet run the following: REVOKE ROLE <<Impersonation Role>> FROM USER "<<Snowflake User>>"

      In this example, the Impersonation Role is the name entered on the Immuta App Settings page when the feature was enabled. The default is IMMUTA_IMPERSONATION, but the admin may have customized it. The Snowflake User is the username of the Snowflake user that will now have permission to impersonate other users.

    App Settings page
    App Settings page
    cluster policy JSON in the Immuta UI
    IMMUTA_USER_MAPPING_IAMID environment variable
    immuta.user.admin regex configuration property
    Starburst JDBC driver documentation
    Trino CLI
    Trino release notes
    table grants
    low row access policy mode
    App Settings page
    table grants
    low row access policy mode
    EXEC sys.sp_set_session_context @key = N'immuta_user',
    @value = '<Synapse username linked to the Immuta user you want to impersonate>';
    "spark_env_vars.IMMUTA_SPARK_DATABRICKS_ALLOWED_IMPERSONATION_USERS": {
      "type": "fixed",
      "value": "[email protected],[email protected]"
    }
    %sql
    set [email protected]
    %sql
    set [email protected]
    select * from demo.hr_data limit 10;
    {
      "id": "query-a20e-493e-id-c1ada0a23a26",
      "dateTime": "1639684812845",
      "month": 1463,
      "profileId": 4,
      "userId": "[email protected]",
      "dataSourceId": 1,
      "dataSourceName": "Hr Data",
      "count": 1,
      "recordType": "spark",
      "success": true,
      "component": "dataSource",
      "accessType": "query",
      "query": "Relation[id#2644,first_name#2645,last_name#2646,email#2647,gender#2648,race#2649,ssn#2650,dept#2651,job#2652,skills#2653,salary#2654,type#2655] parquet\n",
      "extra": {
        "databricksWorkspaceID": "0",
        "maskedColumns": {},
        "metastoreTables": [
          "demo.hr_data"
        ],
        "clusterName": "your-cluster-name",
        "pathUris": [
          "dbfs:/user/hive/warehouse/demo.db/hr_data"
        ],
        "queryText": "select * from demo.hr_data limit 10;",
        "queryLanguage": "sql",
        "clusterID": "your-171358-cluster-id",
        "impersonationUser": "[email protected]"
      },
      "dataSourceTableName": "demo_hr_data",
      "createdAt": "2021-12-16T20:00:12.850Z",
      "updatedAt": "2021-12-16T20:00:12.850Z"
    }
    %sql
    set immuta.impersonate.user=