AWS Organizations
Setting Up AWS Organizations
To begin setting up our development environment, we need to start with AWS Organizations. AWS Organizations is a container that allows you to govern and manage multiple AWS accounts. You may be wondering why you would need multiple AWS accounts. It's generally a good idea to set up all of your production resources in an isolated AWS account. This way, you can limit access to production resources and prevent people from accidentally deploying to production when they meant to deploy to their development account.
For this lesson, we'll have three AWS accounts inside an AWS Organization:
- Production Account: This account will be used to isolate production resources.
- Development Account: This will be a general-purpose development account. If you have multiple developers on your team, you can share this development account. If you're an individual, this will be your primary account for day-to-day development.
- Management Account: This is the account we set up earlier. The management account is only used for high-level setup, such as setting up the AWS Organization and configuring access through IAM Identity Center. No application-related resources should be deployed in the management account.
Creating the AWS Organization
To create the AWS Organization, search for "Organizations" in the AWS Management Console and click "Create an Organization." This will place your management account in an Organizational Unit (OU) within the root of the organization.
Organizational Units are a way to structure your AWS accounts like a file tree and set up granular permissions for individual groups of accounts. For our simple setup, we'll keep all our accounts in the root OU.
Adding Accounts to the Organization
Next, we need to create our development and production accounts within the organization.
- Click "Add an AWS Account" and select "Create an AWS Account."
- Name the account "development" and provide an email address (e.g.,
aws+dev@example.com
). - Leave the IAM role name as the default and create the account.
- Repeat the process to create a "production" account with a different email address (e.g.,
aws+prod@example.com
).
You should now see the management account, development account, and production account within your AWS Organization.
While this may seem like overkill for an individual working on side projects, it's a good practice to keep your production resources isolated. If it saves you from accidentally pushing development resources to production even once, it will be worth the setup.
Next Steps
With our AWS Organization and accounts set up, we can move on to configuring access and security through IAM Identity Center in the next lesson.