This step even though contains the very inauguration of the Landing Zone still has some prerequisites viz.
It expects that AWS Organization is already set up along with optional SSO integration as a best practice going forward.
It expects that whoever will run the 0-bootstrap step has admin access to the management account.
It expects we have all the configuration parameters inside the file lzconfig.yaml. This is the most important file in the GitHub repository which contains all of the configuration parameters related to AWS LZ.
To achieve the expected end result with terraform, we will make use of a bash script which will expect that we use the Organization Admin Role from the management account; or any role that basically has the authority to create Organizational Units and Accounts on AWS.
Authenticate the shell with AWS IAM credentials belonging to the administrator user of the management account and trigger the script 0-bootstrap/bootstrap.sh
The script will do terraform apply in 0-bootstrap/tf-prerequisites directory first which will create an S3 bucket and DynamoDB table which will be used by Terraform to store the state and state locking mechanism respectively in management account.
Afterwards, 0-bootstrap/bootstrap directory will get triggered which will create and Organization Unit as well as AWS Account called LZ CICD. This newly created account will hold our CICD automation stack.
Name |
Description |
Type |
Default |
Required |
lz-cicd-scp |
n/a |
list |
[] |
no |
scp |
list of policies which you want to create |
list(object({ name = string policy_file = string })) |
[] |
no |
code_pipeline_build_stages |
maps of build type stages configured in CodePipeline |
map |
{ "regula": "regula-spec.yaml", "tf-base": "terraform-spec.yaml" } |
no |
custom_tags |
Resources tags |
object({ Environment = string TargetAccounts = string DeploymentType = string }) |
{ "DeploymentType": "Terraform", "Environment": "Deployment", "TargetAccounts": "Demo" } |
no |
git_repository_name |
Name of the remote git repository to be created |
string |
"aws-landing-zone" |
no |