Customize Read and Write Access Policies for Starburst (Trino)
Requirements
Starburst (Trino) version 438 or newer
Write policies for Starburst (Trino) enabled. Contact your Immuta representative to get this feature enabled on your account.
Configuration options
In its default setting, the Starburst (Trino) integration's write access value controls the authorization of SQL operations that perform data modification (such as INSERT, UPDATE, DELETE, MERGE, and TRUNCATE). However, administrators can allow table modification operations (such as ALTER and DROP tables) to be authorized as write operations. Two locations allow administrators to specify how read and write access policies are applied to data in Starburst (Trino). Select one or both of the options below to customize these settings. If the access-control.properties file is used, it may override the policies configured in the Immuta web service.
Immuta web service: Configure write policies in the Immuta web service to allow all Starburst (Trino) clusters targeting that Immuta tenant to receive the same write policy configuration for data sources. This configuration will only affect tables or views registered as Immuta data sources.
Starburst (Trino) cluster: Configure write policies using the
access-control.propertiesfile in Starburst or Trino to broadly customize access for Immuta users on a specific cluster. This configuration file takes precedence over write policies passed from the Immuta web service. Use this option if all Immuta users should have the same level of access to tables regardless of the write policy setting in the Immuta web service.
Immuta web service configuration
Contact your Immuta representative to configure read and write access in the Immuta web service if all Starburst (Trino) data source operations should be affected identically across Starburst (Trino) clusters connected to your Immuta tenant. A configuration example is provided below.
Configuration example
The following example maps WRITE to READ, WRITE and OWN permissions and READ to just READ. Both READ and WRITE permissions should always include READ:
accessGrantMapping:
WRITE: ['READ', 'WRITE', 'OWN']
READ: ['READ']Given the above configuration, when a user gets write access to a Starburst (Trino) data source, they will have both data and table modification permissions on that data source. See the Starburst (Trino) privileges section of the Subscription policy access types guide for details about these operations.
Starburst cluster configuration
Configure the integration to allow read and write policies to apply to any data source (registered or unregistered in Immuta) on a Starburst cluster.
Create the Immuta access control configuration file in the Starburst configuration directory (
/etc/starburst/immuta-access-control.propertiesfor Docker installations or<starburst_install_directory>/etc/immuta-access-control.propertiesfor standalone installations).Modify one or both properties below to customize the behavior of read or write access policies for all users:
immuta.allowed.immuta.datasource.operations: This property governs objects (catalogs, schemas, tables, etc.) that are registered as data sources in Immuta. These permissions apply to all querying users except for administrators defined inimmuta.user.admin(who get all permissions).READ: GrantsSELECTon tables or views; grantsSHOWon tables, views, or columnsWRITE: GrantsINSERT,UPDATE,DELETE,MERGE, orTRUNCATEon tables; grantsREFRESHon materialized views.OWN: GrantsALTERandDROPon tables; grantsSETon comments and properties
immuta.allowed.non.immuta.datasource.operations: This property governs objects (catalogs, schemas, tables, etc.) that are not registered as data sources in Immuta. Use all or a combination of the following access values:READ: GrantsSELECTon tables or views; grantsSHOWon tables, views, or columnsWRITE: GrantsINSERT,UPDATE,DELETE,MERGE, orTRUNCATEon tables; grantsREFRESHon materialized views.OWN: GrantsALTERandDROPon tables; grantsSETon comments and propertiesCREATE: GrantsCREATEon catalogs, schema, tables, and views. This is the only property that can allowCREATEpermissions, sinceCREATEis enforced on new objects that do not exist in Starburst or Immuta yet (such as a new table being created withCREATE TABLE).
For example, the following configuration allows
READ,WRITE, andOWNoperations to be authorized on data sources registered in Immuta and all operations are permitted on data that is not registered in Immuta:immuta.allowed.immuta.datasource.operations=READ,WRITE,OWN immuta.allowed.non.immuta.datasource.operations=READ,WRITE,CREATE,OWNEnable the Immuta access control plugin in the Starburst cluster's configuration file (
/etc/starburst/config.propertiesfor Docker installations or<starburst_install_directory>/etc/config.propertiesfor standalone installations). For example,access-control.config-files=/etc/starburst/immuta-access-control.properties
Trino cluster configuration
Create the Immuta access control configuration file in the Trino configuration directory (
/etc/trino/config.propertiesfor Docker installations or<trino_install_directory>/etc/config.propertiesfor standalone installations).Modify one or both properties below to customize the behavior of read or write access policies for all users:
immuta.allowed.immuta.datasource.operations: This property governs objects (catalogs, schemas, tables, etc.) that are registered as data sources in Immuta. These permissions apply to all querying users except for administrators defined inimmuta.user.admin(who get all permissions).READ: GrantsSELECTon tables or views; grantsSHOWon tables, views, or columnsWRITE: GrantsINSERT,UPDATE,DELETE,MERGE, orTRUNCATEon tables; grantsREFRESHon materialized views.OWN: GrantsALTERandDROPon tables; grantsSETon comments and properties
immuta.allowed.non.immuta.datasource.operations: This property governs objects (catalogs, schemas, tables, etc.) that are not registered as data sources in Immuta. Use all or a combination of the following access values:READ: GrantsSELECTon tables or views; grantsSHOWon tables, views, or columnsWRITE: GrantsINSERT,UPDATE,DELETE,MERGE, orTRUNCATEon tables; grantsREFRESHon materialized views.OWN: GrantsALTERandDROPon tables; grantsSETon comments and propertiesCREATE: GrantsCREATEon catalogs, schema, tables, and views. This is the only property that can allowCREATEpermissions, sinceCREATEis enforced on new objects that do not exist in Starburst or Immuta yet (such as a new table being created withCREATE TABLE).
For example, the following configuration allows
READ,WRITE, andOWNoperations to be authorized on data sources registered in Immuta and all operations are permitted on data that is not registered in Immuta:immuta.allowed.immuta.datasource.operations=READ,WRITE,OWN immuta.allowed.non.immuta.datasource.operations=READ,WRITE,CREATE,OWNEnable the Immuta access control plugin in Trino's configuration file (
/etc/trino/config.propertiesfor Docker installations or<trino_install_directory>/etc/config.propertiesfor standalone installations). For example,access-control.config-files=/etc/trino/immuta-access-control.properties
Last updated
Was this helpful?

