Skip to main content

AWS CloudFormation templates

Sandbox Studio is packaged as a set of AWS CloudFormation stacks. If you decide to manually install Sandbox Studio, you must deploy them in the order shown below and into specific AWS accounts. This page explains each stack, where to deploy it, and why the order matters.


Stack Summary

# Stack What it does Deploy to Key AWS Services Depends on
1 Account Pool Creates OUs to host sandbox accounts and applies SCPs to govern them. Org Management Account AWS Organisational Units (OU's), Service Control Policies (SCP's) -
2 IDC Sets up IAM Identity Center groups used by Sandbox Studio users. Org Management Account IAM Identity Center Groups -
3 Network Provisions a VPC with multiple subnets. Hosts the database in a private subnet and runs Lambda functions in private subnets with egress access. Hub Account Amazon VPC, VPC Endpoints
4 Data Deploys the application database that stores all Sandbox Studio data. Kept separate to simplify upgrades. Hub Account Amazon RDS Network
5 SES Creates email templates for alerts and notifications. Hub Account Amazon SES -
6 Compute Core back end components such as event driven Step Functions and CodeBuild tasks that are used to clean up and set up new accounts. Hub Account Event Bridge, Lambda, Step Functions, CodeBuild Data, Network, SES
7 API The front end compute stack including the API and user facing web application. Hub Account Lambda, API Gateway, S3, CloudFront Compute

Where to get the CloudFormation templates

All templates are published to S3. Choose the version you want and construct URLs as:

https://sandbox-studio-software-dist.s3.amazonaws.com/versions/<VERSION>/<STACK_NAME>.template.json

The stack names (filenames) are shown below:

  • SandboxStudio-AccountPool.template.json

  • SandboxStudio-IDC.template.json

  • SandboxStudio-Network.template.json

  • SandboxStudio-Data.template.json

  • SandboxStudio-SES.template.json

  • SandboxStudio-Compute.template.json

  • SandboxStudio-API.template.json

Find the latest version (optional): fetch
https://dist.sandboxstudiosoftware.com/latest.json
and use its "version" value in place of <VERSION>.

Example: if latest.json says {"version":"1.2.3"}, the AccountPool template is
https://sandbox-studio-software-dist.s3.amazonaws.com/versions/1.2.3/SandboxStudio-AccountPool.template.json.