About Apigee provisioning permissions Stay organized with collections Save and categorize content based on your preferences.
This page applies toApigee, but not toApigee hybrid.
View Apigee Edge documentation.![]()
This document describes the Google Cloud IAM permissions that are required to successfully provision Apigee.
You can specify permissions using the following:
- Predefined roles: Provide sufficient permission to do the provisioning steps. Predefined roles may give the Apigee administrator more permissions than they need to complete provisioning.
- Custom roles: Provide the least-necessary privilege needed to do the provisioning steps.
Google Cloud project owner role
The owner of the Google Cloud project that is used for Apigee provisioning already has permission to perform all of the basic Apigee provisioning steps.
If the Apigee provisioner is not the project owner, then use this document to determine the permissions needed to perform each of the provisioning steps.
If you use Shared Virtual Private Cloud (VPC) networking, additional permissions in the Shared VPC project are required, and these cases are also noted in this document.
Predefined roles
If you just want to make sure the Apigee administrator has sufficient permission to complete the provisioning, give the Apigee administrator the followingIAM predefined roles; however, predefined roles may give the Apigee administrator more permissions than they need to complete provisioning. See Custom roles and permissions to provide least-necessary privileges.
How to specify a predefined role
To add users and roles:
In the Google Cloud console, go toIAM & Admin > IAM for your project.
- To add a new user:
- ClickGrant access.
- Type a newPrincipal name.
- Click theSelect a role menu and then type the role name in theFilter field. For example,
Apigee Organization Admin. Click the role listed in the results. - ClickSave.
- To edit an existing user:
- ClickEdit.
- To change an existing role, click theRole menu and then select a different role.
- To add another role, clickAdd another role.
- Click theSelect a role menu and then type the role name in theFilter field. For example,
Apigee Organization Admin. Click the role listed in the results. - ClickSave.
| Role | Required for steps | Account type | Purpose |
|---|---|---|---|
Apigee Organization Adminapigee.admin |
| Paid and eval | Grants full access to all Apigee resource features. |
Service Usage Adminserviceusage.serviceUsageAdmin |
| Paid and eval | Ability to enable, disable, and inspect service states, inspect operations, and consume quota and billing for a consumer project. |
Cloud KMS Admincloudkms.admin |
| Paid only | Creating Cloud KMS keys and keyrings. |
Compute Admincompute.admin |
| Paid and eval | Listing Compute regions, setting up service networking, and creating the external HTTPS load balancer. |
Custom roles and permissions
To provide least-necessary privileges, create anIAM custom role and assign permissions from the following sections.
How to specify a custom role
To add a custom role:
In the Google Cloud console, go toIAM & Admin > Roles for your project.
- To add a new role:
- ClickCreate role.
- Type a newTitle.
- Type aDescription (optional).
- Type anID.
- Select aRole launch stage.
- ClickAdd permissions.
- Copy the desired permission text from the tables below and paste it into theFilter field. For example,
apigee.environments.create. - PressEnter or click an item from the results.
- Select the checkbox for the item just added.
- ClickAdd.Note: To add multiple permissions at a time:
- Select the
ORoperator between each permission as you add them, or - Search for a partial permission string, for example,
apigee.environments, select multiple checkboxes, and then clickSave.
- Select the
- Once you have added all the permissions for this role, clickCreate.
- Locate the custom role.
- ClickMore >Edit.
- Make any desired changes.
- ClickUpdate.
UI-based Apigee management permissions
This permission is required for all users who will manage an organization through theApigee UI in Cloud console. Include it in custom roles that involve management through that interface.
| Role | Account type | Purpose |
|---|---|---|
apigee.projectorganizations.get | Paid and eval |
|
Provisioning permissions
These permissions are required to start provisioning Apigee:
| Role | Account type | Purpose |
|---|---|---|
apigee.entitlements.getapigee.environments.createapigee.environments.getapigee.environments.listapigee.envgroups.createapigee.envgroups.getapigee.envgroups.listapigee.envgroups.updateapigee.envgroupattachments.createapigee.envgroupattachments.listapigee.instances.createapigee.instances.getapigee.instances.listapigee.instanceattachments.createapigee.instanceattachments.getapigee.instanceattachments.listapigee.operations.getapigee.operations.listapigee.organizations.createapigee.organizations.getapigee.organizations.updateapigee.projectorganizations.getapigee.projects.updateapigee.setupcontexts.getapigee.setupcontexts.update | Paid and eval |
|
API enablement permissions
These permissions are required to enable Google Cloud APIs:
| Role | Account type | Purpose |
|---|---|---|
serviceusage.services.getserviceusage.services.listserviceusage.services.enable | Paid and eval | Enabling Google Cloud APIs |
Organization creation permissions (paid org)
These permissions are needed to create an Apigee organization for paid accounts (Subscription or Pay-as-you-go):
| Permissions | Account type | Purpose |
|---|---|---|
compute.regions.list | Paid only | Selecting an analytics hosting location |
cloudkms.cryptoKeys.listcloudkms.locations.listcloudkms.keyRings.list | Paid only | Selecting a runtime database encryption key |
cloudkms.cryptoKeys.createcloudkms.keyRings.create | Paid only | Creating a runtime database encryption key |
cloudkms.cryptoKeys.getIamPolicycloudkms.cryptoKeys.setIamPolicy | Paid only | Granting Apigee service account permission to use an encryption key |
Organization creation permissions (eval org)
This permission is required for selecting analytics and runtime hosting regions for an eval organization:
| Permissions | Account type | Purpose |
|---|---|---|
compute.regions.list | Eval organizations only | Selecting analytics and runtime hosting regions |
Service networking permissions
These permissions are needed in the service networking configuration steps. If you are using Shared VPC networking, see Service networking permissions with Shared VPC.
| Permissions | Account type | Purpose |
|---|---|---|
compute.globalAddresses.createInternalcompute.globalAddresses.getcompute.globalAddresses.listcompute.globalAddresses.usecompute.networks.getcompute.networks.listcompute.networks.usecompute.projects.getservicenetworking.operations.getservicenetworking.services.addPeeringservicenetworking.services.get | Paid and eval | These permissions are required to perform the tasks in the service networking configuration step. Note:If you are using Shared Virtual Private Cloud (VPC) networking, see Service networking permissions with Shared VPC. |
Service networking permissions with Shared VPC
If you are using Shared Virtual Private Cloud (VPC) networking, a user with administrative privileges in the Shared VPC project must peer the Shared VPC project with Apigee, as described in Using shared VPC networks. Peering must be completed before the Apigee admin can complete the service networking steps. See alsoAdministrators and IAM.
When Shared VPC is properly set up, the Apigee admin needs these permissions to complete the service networking configuration steps:
| Permissions | Account type | Purpose |
|---|---|---|
compute.projects.get | Paid and eval | The Apigee admin must have this permissionin the project where Apigee is installed. This permission allows the admin to view the Shared VPC host project ID. |
| Compute Network User role ( compute.networkUser) | Paid and eval | The Apigee admin must be granted this rolein the Shared VPC host project. This role allows the admin to view and select the Shared VPC network in the Apigee provisioning UI. |
Runtime instance permissions
These permissions are needed to create a runtime instance (Subscription and Pay-as-you-go accounts only):
| Permissions | Account type | Purpose |
|---|---|---|
compute.regions.list | Paid only | Selecting a runtime hosting location |
cloudkms.cryptoKeys.listcloudkms.locations.listcloudkms.keyRings.list | Paid only | Selecting a runtime disk encryption key |
cloudkms.cryptoKeys.createcloudkms.keyRings.create | Paid only | Creating a runtime disk encryption key |
cloudkms.cryptoKeys.getIamPolicycloudkms.cryptoKeys.setIamPolicy | Paid only | Granting Apigee service account permission to use an encryption key |
Access routing permissions
These permissions are needed for the access routing steps:
| Permissions | Account type | Purpose |
|---|---|---|
compute.autoscalers.createcompute.backendServices.createcompute.backendServices.usecompute.disks.createcompute.globalAddresses.createcompute.globalAddresses.getcompute.globalAddresses.listcompute.globalAddresses.usecompute.globalForwardingRules.createcompute.globalOperations.getcompute.firewalls.createcompute.firewalls.getcompute.healthChecks.createcompute.healthChecks.useReadOnlycompute.images.getcompute.images.useReadOnlycompute.instances.createcompute.instances.setMetadatacompute.instanceGroups.usecompute.instanceGroupManagers.createcompute.instanceGroupManagers.usecompute.instanceTemplates.getcompute.instanceTemplates.createcompute.instanceTemplates.useReadOnlycompute.networks.getcompute.networks.listcompute.networks.updatePolicycompute.networks.usecompute.regionOperations.getcompute.regionNetworkEndpointGroups.createcompute.regionNetworkEndpointGroups.deletecompute.regionNetworkEndpointGroups.usecompute.sslCertificates.createcompute.sslCertificates.getcompute.subnetworks.getcompute.subnetworks.listcompute.subnetworks.setPrivateIpGoogleAccesscompute.subnetworks.usecompute.targetHttpsProxies.createcompute.targetHttpsProxies.usecompute.urlMaps.createcompute.urlMaps.use | Paid and eval | Configuring basic access routing Note:If you are using Shared Virtual Private Cloud (VPC) networking, seeAccess routing permissions with Shared VPC. |
Access routing permissions with Shared VPC
If you are using Shared Virtual Private Cloud (VPC) networking, be aware that the Shared VPC configuration and peering must be completed before you can perform the access routing step.
After the Shared VPC is set up properly, the Apigee admin requires thecompute.networkUser rolein the Shared VPC project to complete the access routing steps. See also Required administrative roles for Shared VPC.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-17 UTC.