Identity and access management (IAM) lets you control who can do what within Knowledge Catalog (formerly Dataplex Universal Catalog). You can adopt the security principle of least privilege, to protect private data, avoid unauthorized access, reduce the attack surface, or meet regulatory compliance.
Knowledge Catalog provides several predefined IAM roles, each with a specific set of permissions that let users perform actions. You can grant these roles using an IAM policy.
For more granular control, you can create a custom IAM role by choosing specific permissions and assigning that new role to users. Custom roles let you build an access model that matches your organization's needs.
This document describes the predefined and custom IAM roles that are relevant to Knowledge Catalog.
For a detailed description of IAM and its features, see the IAM documentation.
If you're using Data Catalog, then the Data Catalog entry access grants aren't carried over to the Knowledge Catalog entries automatically. You must explicitly grant access to the Knowledge Catalog entries before using them.
About Knowledge Catalog roles
Knowledge Catalog IAM roles are a bundle of one or more
permissions. You grant roles to principals to let them perform actions on
the Knowledge Catalog resources in your project. For example, the Dataplex
Viewer role contains the dataplex.*.get and dataplex.*.list permissions,
which let users get and list Knowledge Catalog
resources in a project. For more information, see Knowledge Catalog
permissions.
You can apply Knowledge Catalog roles to any resources in the service hierarchy, including the following:
- Projects
- Lakes, data zones, and assets
- Data scans, tasks, and environments
- Entry groups, entry types, entry link types, aspect types, and glossaries
- Data taxonomies, data attributes, and data attribute bindings
Predefined roles for Knowledge Catalog
Predefined roles contain the permissions that are needed to perform a task or a group of related tasks.
The following roles provide broad access to Knowledge Catalog resources:
| Role | Description |
|---|---|
| Dataplex Administrator ( roles/dataplex.admin) |
Full access to Knowledge Catalog resources. |
| Dataplex Editor ( roles/dataplex.editor) |
Edit access to Knowledge Catalog resources. |
| Dataplex Viewer ( roles/dataplex.viewer) |
Read-only access to Knowledge Catalog resources. |
| Dataplex Developer ( roles/dataplex.developer) |
Lets you run data analytics workloads. |
The Dataplex Administrator (roles/dataplex.admin), Dataplex Editor
(roles/dataplex.editor), and Dataplex Viewer (roles/dataplex.viewer)
roles don't provide access to metadata resources such as entry groups, entries,
entry links, entry types, entry link types, and aspect types.
The following table lists the Knowledge Catalog predefined roles and the permissions associated with each role:
| Role | Permissions |
|---|---|
Dataplex Administrator( Full access to Dataplex Universal Catalog resources, except for catalog resources like entries and entry groups. |
|
Dataplex DataScan Administrator( Full access to DataScan resources. |
|
Dataplex Editor( Write access to Dataplex Universal Catalog resources, except for catalog resources like entries, entry groups, and glossaries. |
|
Dataplex Viewer( Read access to Dataplex Universal Catalog resources, except for catalog resources like entries, entry groups, and glossaries. |
|
Dataplex Aspect Type Owner( Grants access to creating and managing Aspect Types. Does not give the right to create/modify Entries. |
|
Dataplex Aspect Type User( Grants access to use Aspect Types to create/modify Entries with the corresponding aspects. |
|
Dataplex Binding Administrator( Full access on DataAttribute Binding resources. |
|
Dataplex Catalog Admin( Full access to catalog resources, including entries, entry groups, and glossaries. |
|
Dataplex Catalog Editor( Write access to catalog resources, including entries, entry groups, and glossaries. Cannot set IAM policies on resources. |
|
Dataplex Catalog Viewer( Read access to catalog resources, including entries, entry groups, and glossaries. Can view IAM policies on catalog resources. |
|
Dataplex Data Owner( Owner access to data. To be granted to Dataplex Universal Catalog resources Lake, Zone or Asset only. |
|
Dataplex Data Products Admin Beta( Full access to Data Products. |
|
Dataplex Data Products Consumer Beta( Restricted read access, intended for consumers of Data Products. |
|
Dataplex Data Products Editor Beta( Write access to Data Products. |
|
Dataplex Data Products Viewer Beta( Read access to Data Products. |
|
Dataplex Data Reader( Read only access to data. To be granted to Dataplex Universal Catalog resources Lake, Zone or Asset only. |
|
Dataplex DataScan Creator( Access to create new DataScan resources. |
|
Dataplex DataScan DataViewer( Read access to DataScan resources, including the results. |
|
Dataplex DataScan Editor( Write access to DataScan resources. |
|
Dataplex DataScan Viewer( Read access to DataScan resources, excluding the results. |
|
Dataplex Data Writer( Write access to data. To be granted to Dataplex Universal Catalog resources Lake, Zone or Asset only. |
|
Dataplex Developer( Allows running data analytics workloads in a lake. |
|
Dataplex Encryption Admin( Gives user permissions to manage encryption configurations. |
|
Dataplex Entry Group Exporter( Grants access to export this entry group for Metadata Job processing. |
|
Dataplex Entry Group Importer( Grants access to import this entry group for Metadata Job processing. |
|
Dataplex Entry Group Owner( Owns Entry Groups and Entries inside of them. |
|
Dataplex Entry and EntryLink Owner( Owns Metadata Entries and EntryLinks. |
|
Dataplex Entry Type Owner( Grants access to creating and managing Entry Types. Does not give the right to create/modify Entries. |
|
Dataplex Entry Type User( Grants access to use Entry Types to create/modify Entries of those types. |
|
Dataplex Metadata Feed Owner( Grants access to creating and managing Metadata Feeds. Does not give the right to create/modify Entry Groups. |
|
Dataplex Metadata Feed Viewer( Read access to Metadata Feed resources. |
|
Dataplex Metadata Job Owner( Grants access to creating and managing Metadata Jobs. Does not give the right to create/modify Entry Groups. |
|
Dataplex Metadata Job Viewer( Read access to Metadata Job resources. |
|
Dataplex Metadata Reader( Read only access to metadata within table and fileset entities and partitions. |
|
Dataplex Metadata Writer( Write and read access to metadata within table and fileset entities and partitions. |
|
Dataplex Security Administrator( Permissions configure ResourceAccess and DataAccess Specs on Data Attributes. |
|
Dataplex Storage Data Owner( Owner access to data. Should not be used directly. This role is granted by Dataplex to managed resources like Cloud Storage buckets, BigQuery datasets etc. |
|
Dataplex Storage Data Reader( Read only access to data. Should not be used directly. This role is granted by Dataplex to managed resources like Cloud Storage buckets, BigQuery datasets etc. |
|
Dataplex Storage Data Writer( Write access to data. Should not be used directly. This role is granted by Dataplex to managed resources like Cloud Storage buckets, BigQuery datasets etc. |
|
Dataplex Taxonomy Administrator( Full access to DataTaxonomy, DataAttribute resources. |
|
Dataplex Taxonomy Viewer( Read access on DataTaxonomy, DataAttribute resources. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataplex Discovery BigLake Publishing Service Agent( Gives the Dataplex Discovery Service Agent permissions to use bigquery connection. |
|
Dataplex Discovery Publishing Service Agent( Gives the Dataplex Discovery Service Agent dataset create and get permissions. |
|
Dataplex Discovery Service Agent( Gives the Dataplex Discovery Service Agent bucket read permissions. |
|
Cloud Dataplex Service Agent( Gives the Dataplex service account access to project resources. This access will be used in data discovery, data management and data workload management. |
|
Dataplex Entry and EntryLink Owner role
The Dataplex Entry and EntryLink Owner (roles/dataplex.entryOwner) role
includes the following features:
- Grants full access to entry-related operations.
- Grants full access to entry-link-related operations.
- Grants permissions to add aspects to entries of some of the system aspect
types, such as
Schema,Generic,Overview, andContacts. - Grants permissions to add aspects to entry links of some of the system aspect
types, such as
SchemaJoin. - Grants permissions to create entries of the
GenericEntrytype. - Grants permissions to create entry links of the
schema-jointype. - This role lets you create an entry with an entry type and aspect type, where
the entry type and aspect type are defined in the same project as the entry.
Otherwise, you must also grant the Dataplex Entry Type User
(
roles/dataplex.entryTypeUser) and Dataplex Aspect Type User (roles/dataplex.aspectTypeUser) roles on the projects where the entry and aspect types are defined. - This role lets you create all available entry links with their required aspects.
- This role doesn't grant permissions to read entries that are created
from Google Cloud resources outside of Knowledge Catalog, such
as BigQuery entries, when using the
LookupEntry,SearchEntries, orModifyEntrymethods. To read or modify these entries, you must have the respective metadata read or update permissions on the source system resources. Alternatively, you can read the entries with only the Dataplex Entry and EntryLink Owner (roles/dataplex.entryOwner) role by using theGetEntrymethod, or modify the entry using theUpdateEntrymethod.
Role considerations
No role grants permissions to add or delete Knowledge Catalog entries from system-defined entry groups, such as
@bigqueryand@dataplex.To view data aspects attached to an entry, you need permissions to read data from the source asset that the entry represents, in addition to permissions to view the entry. If you have permission to view an entry but lack data-read permissions for the source asset, you can still view all other metadata on the entry. However, Knowledge Catalog hides the content of any attached data aspects.
The Dataplex Catalog Admin (
roles/dataplex.catalogAdmin) and Dataplex Catalog Editor (roles/dataplex.catalogEditor) roles grant permissions to view custom entries.To search for entries using the
SearchEntriesmethod, you must have at least one of the following IAM roles on the project used in the API request: Dataplex Catalog Admin (roles/dataplex.catalogAdmin), Dataplex Catalog Editor (roles/dataplex.catalogEditor), or Dataplex Catalog Viewer (roles/dataplex.catalogViewer). Permissions on search results are checked independently of the selected project.
Predefined roles for data lineage
To access the lineage for any Knowledge Catalog entry, you need a viewer
role on the corresponding system resource
or the Dataplex Catalog Viewer role
(roles/dataplex.catalogViewer) on the project that stores the Knowledge Catalog entry.
This section describes the roles required to work with lineage.
| Role | Permissions |
|---|---|
Data Lineage Administrator( Grants full access to all resources in Data Lineage API |
|
Data Lineage Editor( Grants edit access to all resources in Data Lineage API |
|
Data Lineage Viewer( Grants read access to all resources in Data Lineage API |
|
Data Lineage Events Producer( Grants access to creating all resources in Data Lineage API |
|
Lineage viewer role
The Data Lineage Viewer role
(roles/datalineage.viewer) lets you view Knowledge Catalog
lineage in the Google Cloud console and read lineage information using the
Data Lineage API. The runs and
events for a given process are all stored in the same project as the process. In
the case of automated lineage, the process, runs,
and events are stored in the project in which the job that generated the lineage
was running. For example, this could be the project in which a BigQuery
job was running.
To view lineage between assets, you need the Data Lineage Viewer
role
(roles/datalineage.viewer) on both the project in which you're viewing lineage
and the projects in which lineage is recorded. Specifically, you need the role on the following projects:
- The project in which you're viewing lineage (known as active project), that is, the project in the drop-down at the top of the Google Cloud console or the project from which API calls are made. This is typically the project containing the resources you create in Knowledge Catalog or access in other Google Cloud systems with the API.
- The projects in which lineage is recorded (known as compute project). Lineage is stored in the project where the corresponding process executed, as described earlier. This project can be different from the project storing the asset that you're viewing lineage for.
To view asset metadata, you need the same roles used for accessing metadata entries in Knowledge Catalog.
Depending on the use case, grant the Data Lineage Viewer
role
(roles/datalineage.viewer) on the folder or organization level to ensure
access to the lineage (see Grant or revoke a single role).
Roles to view asset metadata when viewing lineage
To view metadata about an asset stored in Knowledge Catalog, you must
have a viewer role on the corresponding system resource or the
Dataplex Catalog Viewer role
(roles/dataplex.catalogViewer) on the project storing the
Knowledge Catalog entry. You might have access to assets on the
lineage graph or list through appropriate viewer roles but no access to the
lineage between them. This occurs if you don't have the Data Lineage
Viewer role
(roles/datalineage.viewer) on the project where the lineage was recorded.
In this case, the Data Lineage API and Google Cloud console don't show
the lineage or return an error. This prevents leaking information about the
existence of lineage. Therefore, the absence of lineage for an asset doesn't
mean that no lineage exists, but rather that you might not have permissions to
view it.
Metadata roles
Metadata roles grant permissions to view and update metadata, such as table schemas.
| Role | Description |
|---|---|
| Dataplex Metadata Writer ( roles/dataplex.metadataWriter) |
Lets you update a resource's metadata. |
| Dataplex Metadata Reader ( roles/dataplex.metadataReader) |
Lets you read metadata, for example, to query a table. |
Data roles
Knowledge Catalog defines the following IAM roles that apply to any resource managed by Knowledge Catalog. For more information about the permissions associated with each role, see the Predefined roles section of this document.
| Role | Description |
|---|---|
| Dataplex Data Owner ( roles/dataplex.dataOwner) |
Full access to the managed resource and its children. Permissions include updating metadata, creating child resources, and granting granular permissions. |
| Dataplex Data Reader ( roles/dataplex.dataReader) |
Read access to data and metadata in the managed resource and its children. |
| Dataplex Data Writer ( roles/dataplex.dataWriter) |
Write access to data in the managed resource. This includes creating, updating, and deleting data, but not metadata. |
What's next
- Learn how to create custom IAM roles.
- Learn how to grant and manage roles.
- See the Knowledge Catalog IAM permissions.