{ Community }
  • Academy
  • Docs
  • Developers
  • Resources
    • Community Articles
    • Apigee on GitHub
    • Code Samples
    • Videos & eBooks
    • Accelerator Methodology
  • Support
  • Ask a Question
  • Spaces
    • Product Announcements
    • General
    • Edge/API Management
    • Developer Portal (Drupal-based)
    • Developer Portal (Integrated)
    • API Design
    • APIM on Istio
    • Extensions
    • Business of APIs
    • Academy/Certification
    • Adapter for Envoy
    • Analytics
    • Events
    • Hybrid
    • Integration (AWS, PCF, Etc.)
    • Microgateway
    • Monetization
    • Private Cloud Deployment
    • 日本語コミュニティ
    • Insights
    • IoT Apigee Link
    • BaaS/Usergrid
    • BaaS Transition/Migration
    • Apigee-127
    • New Customers
    • Topics
    • Questions
    • Articles
    • Ideas
    • Leaderboard
    • Badges
  • Log in
  • Sign up

Get answers, ideas, and support from the Apigee Community

  • Home /
  • General /
avatar image
0
Question by Bill Draven · Feb 18 at 05:11 PM · 57 Views environments

Limiting proxy developer access to specific assets (proxies, shared flows, KVMs) when multiple teams are sharing an environment.

I have a situation where a company has many developer teams that will "Share" the gateway. This could be done using fine grain resource permissions allowing developers to read/write/delete a subset of proxies, shared flows and other assets. For example, developer A can read/write proxy "A" and "B" but not "C". Whereas Developer "B" can read/write proxy "C" but not "A" or "B". This extends to shared flows, KVMs and the like. Managing these permissions would be somewhat complex and perhaps create friction to getting work done in a timely manner.

I am therefore thinking environment separation is a better choice as the permissions would be granted to the dedicated environment and therefore alleviate the need for fine grain permissions. The downside to this is that there could be many (20 or more) environments in the "Dev" Org. The artifacts created in the "DEV" org would ultimately promote to a merged (all groups assets commingled) Org under CI/CD control and then finally Prod Org which would have same CI/CD control.

Example summary would be

"Dev Org" - One environment per developer team to achieve separation. Could be as many as 20 environments.

"Non-Prod Org - Test, QA, Perf environments where all assets are merged and under CI/CD control.

"Prod Org" - Same as Non Prod in structure with CI/CD control.

Thoughts?

Comment
Add comment Show 1
10 |5000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by Apigeeks only
  • Viewable by the original poster
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Dino-at-Google ♦♦   · Feb 19 at 01:08 AM 0
Link

Bill! Welcome back!

Close

2 Answers

  • Sort: 
avatar image
0
Best Answer

Answer by Kurt Googler Kanaskie · Feb 19 at 01:26 PM

Hi Bill and welcome home.

This is a common ask. In Apigee X, this "could" be done using GCP IAM and custom roles, details yet to be proven and documented. Are you using Apigee X?

The approach for the Dev Org would still require custom roles per team, since proxies are not scoped to the environment, just their deployment.

A simpler approach would be to have "Dev Org A", "Dev Org B", etc. rolling up to the merged orgs, but that may be cost prohibitive based on the number of teams.

Comment
Add comment Show 2 · Link
10 |5000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by Apigeeks only
  • Viewable by the original poster
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Bill Draven · Feb 19 at 07:55 PM 0
Link

Hey Kurt.

Customer will be on "X" and I have been poking around with Roles and Permissions. I am hoping (yet to prove) that they are more effective than what we had with Edge. That said my brute force approach would be to carve up teams into isolated environments with some more granular permissions as needed. All the team level environments would roll up into a "unified view" as the assets move closer to production and be under more strict CI/CD level permission sets. Think less hands/eyes on and more automation.

All of this does come at a cost for what could be construed as environment bloat but might be worth the added cost. Keyword "Might".

I, without much thought, punted on carving up teams into Orgs purely due to cost with upside being even more isolation but this customer could be in the 20 org range. $$$$ I will revisit this.

Thanks for the feedback.

avatar image Kurt Googler Kanaskie ♦ Bill Draven · Feb 19 at 09:36 PM 0
Link

Hi Bill,

After significant testing and empirical analysis of "current state" Apigee X, there's currently no way to create a "team" role that allows/restricts access to specific proxies or other org level entities by name.

Conditions on GCP IAM Role assignment currently do not work based on resource name.

resource.name.startsWith("organizations/apigeex-eval-kurt/apis/team-1") 

The Method: organizations.environments.setIamPolicy works at the environment level which means it only applies to anything below "organizations/*/environments/*". This BTW shows up in the UI when set via Apigee API and works when no role is assigned in IAM (e.g. on a service account).

Conditions currently cannot be set this way either.

So, you could isolate teams by environment level resources. Any developer with access to the org will be able to see other proxies, but won't be able to see the secret stuff (e.g. env level property sets).

Fine Grained Permissions and IAM Conditions are planned to be available later this year.

accesscustomrole.png (123.5 kB)
avatar image
0

Answer by Bill Draven · Feb 20 at 04:33 PM

It seems that Environment level isolation by team is now my only real path forward with the idea that upper environments have cross team assets commingled but restricted to CI/CD pipelines and not prying eyes.

Thanks for doing the "significant and empirical" testing. I will report back when I have fleshed this out further.

As always thanks for the support.

Comment
Add comment · Link
10 |5000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by Apigeeks only
  • Viewable by the original poster
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Follow this Question

Answers Answers and Comments

54 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

What is the preferred environment for SmartDocs APIs prod/non-prod 1 Answer

making changes in different environments in one org 1 Answer

Is it chargeable for creating new environment in existing organisation in Apigee Edge on Cloud? 1 Answer

Gatway Timeout when using Dev Environment 0 Answers

add a new environment 'LT' 1 Answer

  • Products
    • Edge - APIs
    • Insights - Big Data
    • Plans
  • Developers
    • Overview
    • Documentation
  • Resources
    • Overview
    • Blog
    • Apigee Institute
    • Academy
    • Documentation
  • Company
    • Overview
    • Press
    • Customers
    • Partners
    • Team
    • Events
    • Careers
    • Contact Us
  • Support
    • Support Overview
    • Documentation
    • Status
    • Edge Support Portal
    • Privacy Policy
    • Terms & Conditions
© 2021 Apigee Corp. All rights reserved. - Apigee Community Terms of Use - Powered by AnswerHub
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Create an article
  • Post an idea
  • Spaces
  • Product Announcements
  • General
  • Edge/API Management
  • Developer Portal (Drupal-based)
  • Developer Portal (Integrated)
  • API Design
  • APIM on Istio
  • Extensions
  • Business of APIs
  • Academy/Certification
  • Adapter for Envoy
  • Analytics
  • Events
  • Hybrid
  • Integration (AWS, PCF, Etc.)
  • Microgateway
  • Monetization
  • Private Cloud Deployment
  • 日本語コミュニティ
  • Insights
  • IoT Apigee Link
  • BaaS/Usergrid
  • BaaS Transition/Migration
  • Apigee-127
  • New Customers
  • Explore
  • Topics
  • Questions
  • Articles
  • Ideas
  • Badges