Lakehouse IAM roles

Google Cloud Lakehouse defines several Identity and Access Management (IAM) roles for managing resources. Each predefined role contains a set of IAM permissions that allow principals to perform certain actions. You can use an IAM policy to give a principal one or more IAM roles.

IAM also offers the ability to create customized IAM roles. You can create custom IAM roles and assign the role one or more permissions. Then, you can grant the new role to your principals. Use custom roles to create an access control model that maps directly to your needs, alongside the available predefined roles.

This page focuses on the IAM roles relevant to the Lakehouse runtime catalog.

Before you begin

  • Read the IAM documentation.

Lakehouse roles

IAM Lakehouse roles are a bundle of one or more permissions. You grant roles to principals to allow them to perform actions on the Lakehouse resources in your project. For example, the BigLake Viewer role contains the biglake.*.get and biglake.*.list permissions, which allow a user to get and list Lakehouse resources in a project.

The following table lists all Lakehouse roles and the permissions associated with each role:

Role Permissions

(roles/biglake.admin)

Provides full access to all BigLake resources.

biglake.*

  • biglake.catalogs.create
  • biglake.catalogs.delete
  • biglake.catalogs.get
  • biglake.catalogs.getIamPolicy
  • biglake.catalogs.list
  • biglake.catalogs.setIamPolicy
  • biglake.catalogs.update
  • biglake.databases.create
  • biglake.databases.delete
  • biglake.databases.get
  • biglake.databases.list
  • biglake.databases.update
  • biglake.locks.check
  • biglake.locks.create
  • biglake.locks.delete
  • biglake.locks.list
  • biglake.namespaces.create
  • biglake.namespaces.delete
  • biglake.namespaces.get
  • biglake.namespaces.getIamPolicy
  • biglake.namespaces.list
  • biglake.namespaces.setIamPolicy
  • biglake.namespaces.update
  • biglake.tables.create
  • biglake.tables.createPartitions
  • biglake.tables.delete
  • biglake.tables.deletePartitions
  • biglake.tables.get
  • biglake.tables.getData
  • biglake.tables.getIamPolicy
  • biglake.tables.list
  • biglake.tables.listPartitions
  • biglake.tables.lock
  • biglake.tables.setIamPolicy
  • biglake.tables.update
  • biglake.tables.updateData
  • biglake.tables.updatePartitions

resourcemanager.projects.get

resourcemanager.projects.list

(roles/biglake.editor)

Provides read and write access to all BigLake resources.

biglake.catalogs.create

biglake.catalogs.delete

biglake.catalogs.get

biglake.catalogs.getIamPolicy

biglake.catalogs.list

biglake.namespaces.create

biglake.namespaces.delete

biglake.namespaces.get

biglake.namespaces.getIamPolicy

biglake.namespaces.list

biglake.namespaces.update

biglake.tables.create

biglake.tables.createPartitions

biglake.tables.delete

biglake.tables.deletePartitions

biglake.tables.get

biglake.tables.getData

biglake.tables.getIamPolicy

biglake.tables.list

biglake.tables.listPartitions

biglake.tables.update

biglake.tables.updateData

biglake.tables.updatePartitions

resourcemanager.projects.get

resourcemanager.projects.list

(roles/biglake.viewer)

Provides read-only access to all BigLake resources.

biglake.catalogs.get

biglake.catalogs.getIamPolicy

biglake.catalogs.list

biglake.databases.get

biglake.databases.list

biglake.locks.list

biglake.namespaces.get

biglake.namespaces.getIamPolicy

biglake.namespaces.list

biglake.tables.get

biglake.tables.getData

biglake.tables.getIamPolicy

biglake.tables.list

biglake.tables.listPartitions

resourcemanager.projects.get

resourcemanager.projects.list

(roles/biglake.metadataViewer)

Provides read-only metadata access to all BigLake resources.

biglake.catalogs.get

biglake.catalogs.getIamPolicy

biglake.catalogs.list

biglake.namespaces.get

biglake.namespaces.getIamPolicy

biglake.namespaces.list

biglake.tables.get

biglake.tables.getIamPolicy

biglake.tables.list

biglake.tables.listPartitions

resourcemanager.projects.get

resourcemanager.projects.list

What's next