This document lists the predefined roles and permissions that Google Cloud Managed Service for Apache Kafka provides.
Managed Service for Apache Kafka predefined roles
The following table lists the Managed Service for Apache Kafka predefined roles.
| Role | Description | Permissions | 
|---|---|---|
| Managed Kafka Viewer roles/managedkafka.viewer | Read-only access to Managed Service for Apache Kafka
            resources. Lowest-level resources where you can grant this role: 
 | This role includes the following permissions: 
 
 | 
| Managed Kafka Client role roles/managedkafka.client | Provides access to connect to the Managed Service for Apache Kafka servers in a cluster. | This role includes the following permissions: 
 
 | 
| Managed Kafka Topic Editor roles/managedkafka.topicEditor | Provides read and write access to topic metadata. This role is
                intended for developers who configure topics. Lowest-level
                resources where you can grant this role: 
 | This role includes the following permissions: 
 
 | 
| Managed Kafka ConsumerGroup Editor roles/managedkafka.consumerGroupEditor | Provides read and write access to consumer group metadata. This
                role is intended for developers.
                Lowest-level resources where you can grant this role: 
 | This role includes the following permissions: 
 
 | 
| Managed Kafka Cluster Editor roles/managedkafka.clusterEditor | Provides read and write access to Managed Service for Apache Kafka clusters. This
                role is intended for organizations that separate the duties of
                cluster administrators from application developers who work
                with topics. Lowest-level resources where you can
                grant this role: 
 | This role includes the following permissions: 
 
 | 
| Managed Kafka Connect Cluster Editor roles/managedkafka.connectClusterEditor | Provides read and write access to Kafka Connect clusters. | This role includes the following permissions: 
 | 
| Managed Kafka Connector Editor roles/managedkafka.connectorEditor | Provides read and write access to connectors. | This role includes the following permissions: 
 
 | 
| Managed Kafka ACL Viewer roles/managedkafka.aclViewer | Read-only access to Managed Service for Apache Kafka ACLs resources.
            Lowest-level resources where you can grant this role: 
 | This role includes the following permissions: 
 | 
| Schema Registry Viewer roles/managedkafka.schemaRegistryViewer | View schemas and schema versions. | This role includes the following permissions: 
 | 
| Schema Registry Editor roles/managedkafka.schemaRegistryEditor | View and edit schemas and schema versions. | This role includes the following permissions: 
 
 | 
| Schema Registry Admin roles/managedkafka.schemaRegistryAdmin | Full access to schemas, schema versions and configs. | This role includes the following permissions: 
 
 | 
| Managed Kafka Service Agent roles/managedkafka.serviceAgent | Gives Managed Kafka Service Agent access to Cloud Platform resources. | This role includes the following permissions: 
 | 
| Managed Kafka ACL Editor roles/managedkafka.aclEditor | Provides read and write access to Managed Service for Apache Kafka ACLs. This
                role is intended for organizations that separate the duties of
                cluster security administrators from application developers
                who manage clusters or other resources within them.
                Lowest-level resources where you can grant this role: 
 | This role includes the following permissions: 
 
 | 
| Managed Kafka Admin role roles/managedkafka.admin | Full access to Managed Service for Apache Kafka resources. Lowest-level resources
                where you can grant this role: 
 | This role includes the following permissions: 
 
 | 
Permissions associated with Managed Kafka APIs
To use any API method, a principal must have the corresponding IAM permission to authorize the request. A principal is an identity that can be granted access, such as a user account, service account, Google Group, or an entire Google Workspace domain.
The following tables detail which permission is needed for each method that
interacts with Managed Service for Apache Kafka resources. For example, to call the
projects.locations.clusters.list method, the principal making the request must
have the managedkafka.clusters.list permission on the target location.
Permissions for clusters
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka cluster resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.clusters.list | managedkafka.clusters.liston the parent location. | Lists all the Kafka clusters in a given location. | 
| projects.locations.clusters.get | managedkafka.clusters.geton the requested cluster | Gets the details of a specific Kafka cluster. | 
| projects.locations.clusters.create | managedkafka.clusters.createon the parent location. | Creates a new Kafka cluster in a given location. | 
| projects.locations.clusters.update | managedkafka.clusters.updateon the requested Kafka cluster | Updates the configuration of an existing Kafka cluster. | 
| projects.locations.clusters.delete | managedkafka.clusters.deleteon the requested Kafka cluster | Deletes a Kafka cluster. | 
| projects.locations.clusters.attachConnectCluster | managedkafka.clusters.attachConnectClusteron the requested Kafka cluster. | Attaches a connect cluster to a Managed Kafka cluster. | 
Permissions for ACLs
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka ACL resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.clusters.acls.list | managedkafka.acls.liston the parent cluster | Lists all the ACLs in a given Managed Service for Apache Kafka cluster. | 
| projects.locations.clusters.acls.get | managedkafka.acls.geton the requested ACL | Gets the details of a specific ACL in a Managed Service for Apache Kafka cluster. | 
| projects.locations.clusters.acls.create | managedkafka.acls.createon the parent cluster | Creates a new ACL in a Managed Service for Apache Kafka cluster. | 
| projects.locations.clusters.acls.update | managedkafka.acls.updateon the requested ACL | Updates the configuration of an existing ACL in a Managed Service for Apache Kafka cluster. | 
| projects.locations.clusters.acls.delete | managedkafka.acls.deleteon the requested ACL | Deletes an ACL from a Managed Service for Apache Kafka cluster. | 
| projects.locations.clusters.acls.updateEntries | managedkafka.acls.updateEntrieson the requested ACL | Updates the entries of an existing ACL in a Managed Service for Apache Kafka cluster. | 
Permissions for topics
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka topic resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.clusters.topics.list | managedkafka.topics.liston the parent cluster | Lists all the topics in a given Kafka cluster. | 
| projects.locations.clusters.topics.get | managedkafka.topics.geton the parent cluster | Gets the details of a specific topic in a Kafka cluster. | 
| projects.locations.clusters.topics.create | managedkafka.topics.createon the parent cluster | Creates a new topic in a Kafka cluster. | 
| projects.locations.clusters.topics.update | managedkafka.topics.updateon the parent cluster | Updates the configuration of an existing topic in a Kafka cluster. | 
| projects.locations.clusters.topics.delete | managedkafka.topics.deleteon the parent cluster | Deletes a topic from a Kafka cluster. | 
Permissions for consumer groups
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka consumer group resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.clusters.consumerGroups.list | managedkafka.consumerGroups.liston the parent cluster | Lists all the consumer groups in a given Kafka cluster. | 
| projects.locations.clusters.consumerGroups.get | managedkafka.consumerGroups.geton the parent cluster | Gets the details of a specific consumer group in a Kafka cluster. | 
| projects.locations.clusters.consumerGroups.update | managedkafka.consumerGroups.updateon the parent cluster | Updates the configuration of an existing consumer group in a Kafka cluster. | 
| projects.locations.clusters.consumerGroups.delete | managedkafka.consumerGroups.deleteon the parent cluster | Deletes a consumer group from a Kafka cluster. | 
Permissions for connect clusters
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka connect cluster resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.connectClusters.list | managedkafka.connectClusters.liston the parent location. | Lists all the Connect clusters in a given location. | 
| projects.locations.connectClusters.get | managedkafka.connectClusters.geton the requested Connect cluster | Gets the details of a specific Connect cluster. | 
| projects.locations.connectClusters.create | managedkafka.connectClusters.createon the parent location. | Creates a new Connect cluster in a given location. | 
| projects.locations.connectClusters.update | managedkafka.connectClusters.updateon the requested Connect cluster | Updates the configuration of an existing Connect cluster. | 
| projects.locations.connectClusters.delete | managedkafka.connectClusters.deleteon the requested Connect cluster | Deletes a Connect cluster. | 
Permissions for connectors
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka connector resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.connectClusters.connectors.list | managedkafka.connectors.liston the parent Connect cluster | Lists all the connectors in a given Connect cluster. | 
| projects.locations.connectClusters.connectors.get | managedkafka.connectors.geton the requested connector | Gets the details of a specific connector. | 
| projects.locations.connectClusters.connectors.create | managedkafka.connectors.createon the parent Connect cluster | Creates a new connector in a Connect cluster. | 
| projects.locations.connectClusters.connectors.update | managedkafka.connectors.updateon the requested connector | Updates the configuration of an existing connector. | 
| projects.locations.connectClusters.connectors.delete | managedkafka.connectors.deleteon the requested connector | Deletes a connector. | 
| projects.locations.connectClusters.connectors.pause | managedkafka.connectors.pauseon the requested connector | Pauses a connector. | 
| projects.locations.connectClusters.connectors.resume | managedkafka.connectors.resumeon the requested connector | Resumes a connector. | 
| projects.locations.connectClusters.connectors.restart | managedkafka.connectors.restarton the requested connector | Restarts a connector. | 
| projects.locations.connectClusters.connectors.stop | managedkafka.connectors.stopon the requested connector | Stops a connector. | 
Permissions for schema registries
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka schema registry resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.list | managedkafka.schemaRegistries.liston the parent location. | Lists all the schema registries in a given location. | 
| projects.locations.schemaRegistries.get | managedkafka.schemaRegistries.geton the requested schema registry | Gets the details of a specific schema registry. | 
| projects.locations.schemaRegistries.create | managedkafka.schemaRegistries.createon the parent location. | Creates a new schema registry in a given location. | 
| projects.locations.schemaRegistries.update | managedkafka.schemaRegistries.updateon the requested schema registry | Updates the details of a specific schema registry. | 
| projects.locations.schemaRegistries.delete | managedkafka.schemaRegistries.deleteon the requested schema registry | Deletes a schema registry. | 
Permissions for contexts
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka context resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.contexts.list | managedkafka.schemaRegistries.contexts.liston the parent schema registry. | Lists all the contexts in a given schema registry. | 
| projects.locations.schemaRegistries.contexts.get | managedkafka.schemaRegistries.contexts.geton the requested context | Gets the details of a specific context. | 
| projects.locations.schemaRegistries.contexts.create | managedkafka.contexts.createon the parent schema registry. | Creates a new context in a given schema registry. | 
| projects.locations.schemaRegistries.contexts.update | managedkafka.contexts.updateon the requested context | Updates the details of a specific context. | 
| projects.locations.schemaRegistries.contexts.delete | managedkafka.contexts.deleteon the requested context | Deletes a context. | 
Permissions for schemas
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka schema resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.contexts.schemas.get | managedkafka.schemas.geton the requested schema ID | Gets the details of a specific schema ID. | 
| projects.locations.schemaRegistries.contexts.schemas.getSchema | managedkafka.schemas.geton the requested schema ID | Gets the raw schema of a specific schema ID. | 
| projects.locations.schemaRegistries.contexts.schemas.subjects.list | managedkafka.schemas.listSubjectson the requested schema | Lists all the subjects with reference to a specific schema ID. | 
| projects.locations.schemaRegistries.contexts.schemas.versions.list | managedkafka.schemas.listVersionson the requested schema ID | Lists all the schema versions of a specific schema ID. | 
| projects.locations.schemaRegistries.contexts.schemas.types.list | managedkafka.schemas.listTypeson the parent registry | Lists all the supported schema types. | 
Permissions for subjects
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka subject resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.contexts.subjects.list | managedkafka.subjects.liston the parent context | Lists all the subjects in a given context. | 
| projects.locations.schemaRegistries.contexts.subjects.delete | managedkafka.subjects.deleteon the requested subject | Deletes a subject. It can either be soft-deleted or hard-deleted. | 
| projects.locations.schemaRegistries.contexts.subjects.lookupVersion | managedkafka.subjects.lookup | Lookup a schema under the specified subject. | 
Permissions for versions
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka version resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.contexts.subjects.versions.create | managedkafka.versions.createon the parent context | Creates a new schema version under a given subject. | 
| projects.locations.schemaRegistries.contexts.subjects.versions.delete | managedkafka.versions.deleteon the requested version | Deletes a schema version. It can either be soft-deleted or hard-deleted. | 
| projects.locations.schemaRegistries.contexts.subjects.versions.get | managedkafka.versions.geton the requested version | Gets the details of a specific schema version. | 
| projects.locations.schemaRegistries.contexts.subjects.versions.getSchema | managedkafka.versions.geton the requested version | Gets the raw schema of a specific schema version. | 
| projects.locations.schemaRegistries.contexts.subjects.versions.list | managedkafka.versions.liston the parent context | Lists all the schema versions in a given subject. | 
| projects.locations.schemaRegistries.contexts.subjects.versions.referencedby.list | managedkafka.versions.referencedbyon the requested version | Lists all the schema versions that are referenced by the given subject and schema version. | 
| projects.locations.schemaRegistries.compatibility.checkCompatibility | managedkafka.versions.checkCompatibility | Check compatibility of a schema with all versions or a specific version of a subject. | 
Permissions for configs
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka config resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.config.get | managedkafka.config.geton the requested config | Gets the details of a specific config. | 
| projects.locations.schemaRegistries.config.update | managedkafka.config.updateon the requested config | Updates the details of the config. | 
| projects.locations.schemaRegistries.config.delete | managedkafka.config.deleteon the requested config | Deletes the config (Only subject-level configs can be deleted). | 
Permissions for mode
The following table lists the permissions that a principal must have to call each method on Managed Service for Apache Kafka mode resources.
| Method | Required permission(s) | Description | 
|---|---|---|
| projects.locations.schemaRegistries.contexts.mode.get | managedkafka.mode.geton the requested mode | Gets the details of a specific mode. | 
| projects.locations.schemaRegistries.contexts.mode.update | managedkafka.mode.updateon the requested mode | Updates the details of the mode. |