Apigee-X best setup for the following requirements

Hi,

i’m a few steps to migrate from edge to X, but wondering what setup are recommend concerning two topics like management and security..

Requirements:

  • full control over proxies “create/deploy” by each team/project
  • full control over api products / apps “create/delete” by each team/project
  • one gcp project, multiple api’s proxies

Two options comes to mind:

one organization to the entire company

  • a quick look into iam policies doesn’t seem to be possible, even with custom roles "control which proxies an service-account has permissions.. but even with that being possible, how about api products and apps?

one organization per _project

  • all the requirements seems to be achieved with apigee being managed by each terraform project, and deployments being contexted/related to each project..

Humm.. ideas?

Best,

David.

1 Like

Hello @davidanrod !

Thanks for bringing this question to the Apigee community! Let’s see what the community has to offer in terms of suggestions or ideas. Thanks for your patience, and we’ll keep an eye on this discussion :wink:

1 Like

Hello David,

In Google Cloud, you can create custom roles for an entire GCP organization or for a specific project within that organization. These custom roles can include a collection of permissions that will allow a user with the custom role to manage proxies or API products.

Below are the permissions you may include in a custom role for managing proxies:

  • apigee.proxies.create
  • apigee.proxies.delete
  • apigee.proxies.get
  • apigee.proxies.list
  • apigee.proxies.update

Additionally, here are the permissions you may include in a custom role for managing API products:

  • apigee.apiproducts.create
  • apigee.apiproducts.delete
  • apigee.apiproducts.get
  • apigee.apiproducts.list
  • apigee.apiproducts.update

For more information about users and roles, please refer to this document. You can find additional details about Apigee roles and their specific permissions in this document.

Let us know if you have any other questions.

Thank you!

1 Like

Hello - @jadelgado thank you for providing a detailed reply! @davidanrod , we’d love to hear if the solution helped resolve your issue. If so, please mark the answer as accepted to help others find it easily. We also encourage you to keep engaging in the forum - whether by asking questions or sharing your knowledge with others.

Thank you both for being part of the Apigee community!

2 Likes

Hi @jadelgado ,

even though the answer is good, it’s not exactly what i asked about.. One of the scnarios was a gblobal apigee org with multiple projects.. so imagine each project can create multiple proxies.. in the particular case, how can i control which proxies can be managed by a specific project?

ie:
projectA has create/delete permissions only for proxy A1/A1

projectB has create permissions for proxy B1

Thanks.

1 Like

Hello @davidanrod ,

Thank you for providing further details.

In Google Cloud, every Apigee organization belongs to exactly one Google Cloud project, and a project can contain at most one Apigee organization.

Considering this, you could have different projects in Google Cloud, each with one Apigee organization, and assign roles to users based on the Google Cloud projects. For example:

Project A (GCP) → Apigee Org A → Proxy A

Project B (GCP) → Apigee Org B → Proxy B

In this setup, roles could be managed so a group of users would have access only to Apigee Org A, while another group would have access only to Apigee Org B.

In another scenario, where there is only one Apigee organization (and therefore only one GCP project), for example:

Apigee Org A → Environment A → Proxy A, B

Apigee Org A → Environment B → Proxy A, B

In this case, roles could be managed at the environment level instead of by specific proxies. For example, a developer might need full access to the development environment but have no write access in the production environment.

Let us know if you have any other questions.

Thank you!

1 Like

Hi again @jadelgado ,

thanks by your reply.. those two approaches answer exactly to my question :slightly_smiling_face:

Best,
David.

2 Likes