Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: CC-BY-SA-4.0
- Within the AWS CloudFormation StackSets console page,
Enable trusted access
with AWS Organizations to use service-managed permissions. - See Enable trusted access with AWS Organizations for more details.
- To verify that the trusted access is enabled:
- Within the AWS Organizations console page, select
Services
from the side menu - Verify that
CloudFormation StackSets
hasTrusted access = Access enabled
- Within the AWS Organizations console page, select
- The
AWSControlTowerExecution
Role provides the support needed to deploy solutions to themanagement account
across regions as CloudFormationStackSets
and it is required for the SRA CFCT solution deployments. - This role is created as part of the common_prerequisites solution deployment.
The below prerequisites can be accomplished via the common_cfct_setup automated solution or they can be done manually following the below steps.
- Move the
Organizations Management Account
to an Organizational Unit (OU) (e.g. Management), so that CloudFormation StackSets can be deployed to theManagement Account
- Within the AWS Control Tower console page, select
Organizational units
from the side menu, click theAdd an OU
button, and set theOU name = Management
- Within the AWS Organizations console page, select
AWS accounts
from the side menu- Select the checkbox next to the
Management Account
- From the
Actions
menu, selectMove
and select the newManagement OU
that was created above - Select
Move AWS account
- Select the checkbox next to the
- Within the AWS Control Tower console page, select
- Create the
AWSControlTowerExecution
IAM role in themanagement account (home region)
by launching an AWS CloudFormation Stack using the sra-common-prerequisites-control-tower-execution-role.yaml template file as the source. - Deploy the Customizations for AWS Control Tower solution following the below instructions.
- In the
Management account (home region)
, deploy a new CloudFormation stack with the below recommended settings:Amazon S3 URL
= https://s3.amazonaws.com/solutions-reference/customizations-for-aws-control-tower/latest/custom-control-tower-initiation.templateStack name
= custom-control-tower-initiationAWS CodePipeline Source
= AWS CodeCommitFailure Tolerance Percentage
= 0- Acknowledge that AWS CloudFormation might create IAM resources with custom names
- In the
- On the local machine install git and git-remote-codecommit.
- Clone the AWS CodeCommit repository via
git clone codecommit::<HOME REGION>://custom-control-tower-configuration custom-control-tower-configuration
- Determine which version of the Customizations for AWS Control Tower solution you have deployed:
- Within the
management account (home region)
find the CloudFormation Stack for the Customizations for Control Tower (e.g.custom-control-tower-initiation
,sra-common-cfct-setup-main-ssm-rCFCTStack
,sra-common-cfct-setup-main-rCFCTStack
) - Select the
Outputs
tab - The
CustomControlTowerSolutionVersion
Value is the version running in the environment- Version 1 = v1.x.x = manifest.yaml version 2020-01-01
- Version 2 = v2.x.x = manifest.yaml version 2021-03-15
- Within the
- Follow the instructions for the cooresponding version:
- Copy the files to the Customizations for AWS Control Tower configuration
custom-control-tower-configuration
- parameters [required for manifest version 2020-01-01]
- Copy the parameter files from the
parameters
folder - Only one of the main parameter files is required. We recommend using the
main-ssm
file.
- Copy the parameter files from the
- policies [optional]
- service control policies files (*.json)
- templates [required]
- Copy the template files from the
templates
folder that are referenced in themanifest.yaml
- Only one of the main template files is required. We recommend using the
main-ssm
file.
- Copy the template files from the
manifest.yaml
[required]
- parameters [required for manifest version 2020-01-01]
- Verify and update the parameters within each of the parameter json files to match the target environment
- Update the manifest.yaml file with the
organizational unit names
,account names
andSSM parameters
for the target environment - Deploy the Customizations for AWS Control Tower configuration by pushing the code to the
AWS CodeCommit
repository or uploading to theAWS S3 Bucket
- Copy the files to the Customizations for AWS Control Tower configuration
custom-control-tower-configuration
- policies [optional]
- service control policies files (*.json)
- templates [required]
- Copy the template files from the
templates
folder that are referenced in themanifest-v2.yaml
- Only one of the main template files is required. We recommend using the
main-ssm
file.
- Copy the template files from the
manifest-v2.yaml
[required]
- policies [optional]
- Rename the
manifest-v2.yaml
tomanifest.yaml
- Update the manifest.yaml file with the
parameters
,organizational unit names
,account names
andSSM parameters
for the target environment - Deploy the Customizations for AWS Control Tower configuration by pushing the code to the
AWS CodeCommit
repository or uploading to theAWS S3 Bucket
- Within the Customizations for AWS Control Tower configuration
- Remove the solution configuration from the
manifest.yaml
file - (Optional) Delete the parameter (Version 1 only) and template files for the solution
- Remove the solution configuration from the
- Deploy the Customizations for AWS Control Tower configuration
- After the pipeline completes, log into the
management account
and navigate to theCloudFormation StackSet
page- Delete the Stack Instances from the
CustomControlTower-<solution_name>*
CloudFormation StackSets - After the Stack Instances are deleted, delete the
CustomControlTower-<solution_name>*
CloudFormation StackSets
- Delete the Stack Instances from the