title: How to design a new complex AWS Account Structure for multiple projects
body: <p>Dear AWS and Cloud Gurus,</p>
  <p>I am tasked with the design of a new AWS account structure that is to serve as a development and runtime environment for multiple development teams. The goal here is that multiple individual teams can work on different projects, each in their own AWS account but make use of some shared services and inherit certain elements from a top-level account.</p>
  <p>An example for a shared service inherited from the top-level account would be billing. An example for a shared service on the same hierarchy would be authentication and authorisation services.</p>
  <p>The projects the different teams work on are all accessible in the end through a unified platform / portal. The user logs onto that portal and can then execute different functions or even start complete applications which are actually developed by the different teams in their respective account.</p>
  <p>Now my question is this: What would be a best practise approach on this? Should all teams work in a shared repository, or should each have their own code repository in their own account? Shall the deployment be done into a central account or should the teams deploy within their own account and the app is called from the portal from this account then?</p>
  <p>I will try to picture this:
  <a href="https://i.stack.imgur.com/kn39b.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kn39b.png" alt="enter image description here" /></a></p>
  <p>As you can see, there are essentially 5 different AWS Accounts:
  The root/masdter Account holds the billing information and also allows for central administration of quotas
  Then there are 4 AWS Accounts each with it's own Code Repository and independent access points. 3 of these hold different applications (developed as SPAs) while the forth provides a central navigation page (aka Dashboard) and also provides SSO to the other applications.</p>
  <p>Is this setup feasible, given there are different, independent application development teams involved but the applications they provide are in the very end used from a central platform for the end user? How would you go about this?</p>
  <p>With the kindest regards,</p>
  <p>Chris</p>