1
votes

I’m currently using cloudformation(JSON template) to manage different aws services.
The Aws services I use include S3, Lambda, API Gateway, Amplify, Dynamodb, IAM, Cognito.

The development phase is almost finished, now I'm finding ways to build UAT environments by using the existing cloudformation template.

Different ways come into my mind.

1.Create cloudformation stacks after switching to different countries

But some services like S3 are cross-country services.
If I create another S3 bucket with the same name, the bucket might not be successfully created.

2.Create new IAM User for creating cloudformation stacks

I am currently using the Root User account for the Service Management in the development stage(I know it's bad practise though).
I can create a new IAM user(e.g. UAT_Admin) to create the UAT environment.

These are all methods I can think of. I need a method for the environment management for later creating UAT environments,
and even the Production environment in the future.
Any comments or suggestions?

1

1 Answers

2
votes

For greatest separation of different development environments (dev, testing, uat, prod) often different accounts are used. This provides greatest separation of resources without risking that someone from testing will accidentally delete/modify production services.

To make it easier to work with different accounts AWS provides AWS Organizations as well as AWS CloudFormation StackSets. The StackSets would enable you to use same template accorss different accounts.