- Landing Zone Accelerator on AWS
The Landing Zone Accelerator on AWS solution helps you quickly deploy a secure, resilient, scalable, and fully automated cloud foundation that accelerates your readiness for your cloud compliance program. A landing zone is a cloud environment that offers a recommended starting point, including default accounts, account structure, network and security layouts, and so forth. From a landing zone, you can deploy workloads that utilize your solutions and applications.
The Landing Zone Accelerator (LZA) is architected to align with AWS best practices and in conformance with multiple, global compliance frameworks. When used in coordination with services such as AWS Control Tower, the Landing Zone Accelerator provides a comprehensive no-code solution across 35+ AWS services to manage and govern a multi-account environment built to support customers with highly-regulated workloads and complex compliance requirements. The LZA helps you establish platform readiness with security, compliance, and operational capabilities.
This solution is provided as an open-source project that is built using the AWS Cloud Development Kit (CDK). You install directly into your environment giving you full access to the infrastructure as code (IaC) solution. Through a simplified set of configuration files, you are able to configure additional functionality, guardrails and security services (eg. AWS Managed Config Rules, and AWS SecurityHub), manage your foundational networking topology (eg. VPCs, Transit Gateways, and Network Firewall), and generate additional workload accounts using the AWS Control Tower Account Factory.
There are no additional charges or upfront commitments required to use Landing Zone Accelerator on AWS. You pay only for AWS services enabled in order to set up your platform and operate your guardrails. This solution can also support non-standard AWS partitions, including AWS GovCloud (US), and the US Secret and Top Secret regions.
For an overview and solution deployment guide, please visit Landing Zone Accelerator on AWS
IMPORTANT: This solution will not, by itself, make you compliant. It provides the foundational infrastructure from which additional complementary solutions can be integrated. The information contained in this solution implementation guide is not exhaustive. You must be review, evaluate, assess, and approve the solution in compliance with your organization’s particular security features, tools, and configurations. It is the sole responsibility of you and your organization to determine which regulatory requirements are applicable and to ensure that you comply with all requirements. Although this solution discusses both the technical and administrative requirements, this solution does not help you comply with the non-technical administrative requirements.
This solution collects anonymous operational metrics to help AWS improve the quality of features of the solution. For more information, including how to disable this capability, please see the implementation guide.
Used to manage all of the AWS accounts within the AWS Organization. Adding a new account configuration to accounts-config.yaml will invoke the account creation process from Landing Zone Accelerator on AWS.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS Accounts | Account | AccountsConfig | AccountConfig / GovCloudAccountConfig | Define commercial or GovCloud (US) accounts to be deployed by the accelerator. |
Used to manage all of the global properties that can be inherited across the AWS Organization. Defined in global-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS Backup | Backup Vaults | GlobalConfig | BackupConfig | Define AWS Backup Vaults that can be used to store backups in accounts across the AWS Organization. |
AWS Budgets | Budget Reports | GlobalConfig / ReportConfig | BudgetReportConfig | Define Budget report configurations for account(s) and/or organizational unit(s). |
AWS CloudTrail | Organization and Account Trails | GlobalConfig / LoggingConfig | CloudTrailConfig | When specified, Organization and/or account-level trails are deployed. |
Amazon CloudWatch | Log Group Dynamic Partitioning | GlobalConfig / LoggingConfig | CloudWatchLogsConfig | Custom partition values for CloudWatch Log Groups sent to centralized logging S3 bucket. |
AWS Control Tower | Control Tower | GlobalConfig | ControlTowerConfig | It is recommended that AWS Control Tower is enabled, if available, in the desired home region for your environment prior to installing the accelerator. When enabled, the accelerator will integrate with resources and guardrails deployed by AWS Control Tower. |
AWS Cost and Usage | Cost and Usage Report | GlobalConfig / ReportConfig | CostAndUsageReportConfig | Define a global Cost and Usage report configuration for the AWS Organization. |
Amazon S3 | Lifecycle Rules | GlobalConfig / LoggingConfig | AccessLogBucketConfig / CentralLogBucketConfig | Define global lifecycle rules for S3 access log buckets and the central log bucket deployed by the accelerator. |
AWS Systems Manager Session Manager | Session Manager logging configuration | GlobalConfig / LoggingConfig | SessionManagerConfig | Define global logging configuration settings for Session Manager. |
AWS SNS Topics | SNS Topics Configuration | GlobalConfig | SnsTopicConfig | Define SNS topics for notifications. |
Used to manage all of the IAM resources across the AWS Organization. Defined in iam-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS IAM | Users | IamConfig | UserSetConfig | Define IAM users to be deployed to specified account(s) and/or organizational unit(s). |
AWS IAM | Groups | IamConfig | GroupSetConfig | Define IAM groups to be deployed to specified account(s) and/or organizational unit(s). |
AWS IAM | Policies | IamConfig | PolicySetConfig | Define customer-managed IAM policies to be deployed to specified account(s) and/or organizational unit(s). |
AWS IAM | Roles | IamConfig | RoleSetConfig | Define customer-managed IAM roles to be deployed to specified account(s) and/or organizational unit(s). |
AWS IAM | SAML identity providers | IamConfig | SamlProviderConfig | Define a SAML identity provider to allow federated IAM access to the AWS Organization. |
AWS IAM Identity Center | Permission sets | IamConfig | IdentityCenterConfig | Define IAM Identity Center (formerly AWS SSO) permission sets and assignments. |
AWS Managed Microsoft AD | Managed directory | IamConfig | ManagedActiveDirectoryConfig | Define a Managed Microsoft AD directory. |
Used to manage and implement network resources to establish a WAN/LAN architecture to support cloud operations and application workloads in AWS. Defined in network-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
Delete Default Amazon VPC | Default VPC | NetworkConfig | DefaultVpcsConfig | If enabled, deletes the default VPC in each account and region managed by the accelerator. |
AWS Direct Connect | Gateways, virtual interfaces, and gateway associations | NetworkConfig | DxGatewayConfig | Define Direct Connect gateways, virtual interfaces, and Direct Connect Gateway associations. |
Amazon Elastic Load Balancing | Gateway Load Balancers, endpoint services, and endpoints | NetworkConfig / CentralNetworkServicesConfig | GwlbConfig | Define a centrally-managed Gateway Load Balancer with an associated VPC endpoint service. Define Gateway Load Balancer endpoints that consume the service, allowing for deep packet inspection of workloads. |
AWS Network Firewall | Network Firewalls, policies, and rule groups | NetworkConfig / CentralNetworkServicesConfig | NfwConfig | Define centrally-managed firewall rule groups and policies. Define Network Firewall endpoints that consume the policies, allowing for deep packet inspection of workloads. |
Amazon Route 53 Resolver | Resolver endpoints, rules, DNS firewall rule groups, and query logging configurations | NetworkConfig / CentralNetworkServicesConfig | ResolverConfig | Define centrally-managed Resolver endpoints, Resolver rules, DNS firewall rule groups, and query logging configurations. DNS firewall rule groups, Resolver rules, and query logging configurations can be associated to VPCs defined in VpcConfig / VpcTemplatesConfig. |
AWS Site-to-Site VPN | Customer gateways and VPN connections | NetworkConfig | CustomerGatewayConfig | Define Customer gateways and VPN connections that terminate on Transit Gateways or Virtual Private Gateways. |
AWS Transit Gateway | Transit Gateways and Transit Gateway route tables | NetworkConfig | TransitGatewayConfig | Define Transit Gateways to deploy to a specified account and region in the AWS Organization. |
AWS Transit Gateway | Transit Gateway peering connections | NetworkConfig | TransitGatewayPeeringConfig | Create Transit Gateway peering connections between two Transit Gateways defined in TransitGatewayConfig. |
Amazon VPC | Customer-managed prefix lists | NetworkConfig | PrefixListConfig | Define customer-managed prefix lists to deploy to account(s) and region(s) in the AWS Organization. Prefix lists can be referenced in place of CIDR ranges in subnet route tables, security groups, and Transit Gateway route tables. |
Amazon VPC | DHCP options sets | NetworkConfig | DhcpOptsConfig | Define custom DHCP options sets to deploy to account(s) and region(s) in the AWS Organization. DHCP options sets can be used by VPCs defined in VpcConfig / VpcTemplatesConfig. |
Amazon VPC | Flow Logs (global) | NetworkConfig | VpcFlowLogsConfig | Define a global VPC flow log configuration for VPCs deployed by the accelerator. VPC-specific flow logs can also be created in VpcConfig / VpcTemplatesConfig. |
Amazon VPC | VPCs, subnets, security groups, NACLs, route tables, NAT Gateways, and VPC endpoints | NetworkConfig | VpcConfig | Define VPCs to deploy to a specified account and region in the AWS Organization. |
Amazon VPC | VPC endpoint policies | NetworkConfig | EndpointPolicyConfig | Define custom VPC endpoint policies to deploy to account(s) and region(s) in the AWS Organization. Endpoint policies can be used by interface endpoints and/or gateway endpoints defined in VpcConfig / VpcTemplatesConfig. |
Amazon VPC | VPC peering connections | NetworkConfig | VpcPeeringConfig | Create a peering connection between two VPCs defined in VpcConfig. NOTE: Not supported with VPCs deployed using VpcTemplatesConfig. |
Amazon VPC IP Address Manager (IPAM) | IPAM pools and scopes | NetworkConfig / CentralNetworkServicesConfig | IpamConfig | Enable IPAM delegated administrator and configuration settings for IPAM pools and scopes. NOTE: IPAM is required for VPCs and subnets configured to use dynamic IPAM CIDR allocations. |
Amazon VPC Templates | VPCs, subnets, security groups, NACLs, route tables, NAT Gateways, and VPC endpoints | NetworkConfig | VpcTemplatesConfig | Deploys a standard-sized VPC to multiple defined account(s) and/or organizational unit(s). |
Used to manage organizational units and policies in the AWS Organization. Defined in organization-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS Account Quarantine | Quarantine | OrganizationConfig | QuarantineNewAccountsConfig | If enabled, a Service Control Policy (SCP) is applied to newly-created accounts that denies all API actions from principles outside of the accelerator. This SCP is stripped from the new account when the accelerator completes resource provisioning for the new account. |
AWS Organizations | Backup Policies | OrganizationConfig | BackupPolicyConfig | Define organizational backup policies to be deployed to account(s) and/or organizational unit(s). |
AWS Organizations | Organizational Units | OrganizationConfig | OrganizationalUnitConfig | Define organizational units (OUs) for the AWS Organization. NOTE: When using AWS Control Tower, OUs must be registered in the Control Tower console prior to defining them in the configuration. |
AWS Organizations | Service Control Policies (SCPs) | OrganizationConfig | ServiceControlPolicyConfig | Define organizational service control policies to be deployed to account(s) and/or organizational unit(s). |
AWS Organizations | Tag Policies | OrganizationConfig | TaggingPolicyConfig | Define organizational tag policies to be deployed to account(s) and/or organizational unit(s). |
Used to manage configuration of AWS security services. Defined in security-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS Audit Manager | Audit Manager | SecurityConfig / CentralSecurityServicesConfig | AuditManagerConfig | Enable Audit Manager delegated administrator and configuration settings. |
Amazon CloudWatch | Metrics and Alarms | SecurityConfig | CloudWatchConfig | Define CloudWatch metrics and alarms to deploy into account(s) and/or organizational unit(s). |
AWS Config | Config Recorder, Delivery Channel, Rules, and Remediations | SecurityConfig | AwsConfig | Define an AWS Config Recorder, Delivery Channel, and custom and/or managed rule sets to deploy across the AWS Organization. |
Amazon Detective | Detective | SecurityConfig / CentralSecurityServicesConfig | DetectiveConfig | Enable Detective delegated administrator and configuration settings. Note: Requires Amazon GuardDuty to be enabled for at least 48 hours. |
Amazon EBS | Default Volume Encryption | SecurityConfig / CentralSecurityServicesConfig | EbsDefaultVolumeEncryptionConfig | Enable EBS default volume encryption across the AWS Organization. |
Amazon GuardDuty | GuardDuty | SecurityConfig / CentralSecurityServicesConfig | GuardDutyConfig | Enable GuardDuty delegated administrator and configuration settings. |
AWS IAM | Access Analyzer | SecurityConfig | AccessAnalyzerConfig | If enabled, IAM Access Analyzer analyzes policies and reports a list of findings for resources that grant public or cross-account access from outside your AWS Organizations in the IAM console and through APIs. |
AWS IAM | Password Policy | SecurityConfig | IamPasswordPolicyConfig | Define a password policy for IAM users in the AWS Organization. |
AWS KMS | Customer-Managed Keys | SecurityConfig | KeyManagementServiceConfig | Define customer-managed KMS keys to be deployed to account(s) and/or organizational unit(s). |
Amazon Macie | Macie | SecurityConfig / CentralSecurityServicesConfig | MacieConfig | Enable Macie delegated administrator and configuration settings. |
Amazon S3 | S3 Public Access Block | SecurityConfig / CentralSecurityServicesConfig | S3PublicAccessBlockConfig | Enable S3 public access block setting across the AWS Organization. |
AWS Security Hub | Security Hub | SecurityConfig / CentralSecurityServicesConfig | SecurityHubConfig | Enable Security Hub delegated administrator and configuration settings. |
Amazon SNS | Subscriptions | SecurityConfig / CentralSecurityServicesConfig | SnsSubscriptionConfig | Configure email subscriptions for security-related SNS notifications. NOTE: DEPRECATED Use SnsTopicConfig in the global configuration instead. |
AWS Systems Manager Automation | Automation Documents | SecurityConfig / CentralSecurityServicesConfig | SsmAutomationConfig | Define SSM Automation Documents to be deployed to account(s) and/or organizational unit(s). |
Used to manage configuration of custom applications and CloudFormation stacks. Defined in the optional file customizations-config.yaml.
Service / Feature | Resource | Base Configuration | Service / Feature Configuration | Details |
---|---|---|---|---|
AWS CloudFormation | Stacks | CustomizationsConfig / CustomizationConfig | CloudFormationStackConfig | Define custom CloudFormation Stacks. |
AWS CloudFormation | StackSets | CustomizationsConfig / CustomizationConfig | CloudFormationStackSetConfig | Define custom CloudFormation Stacksets. |
Amazon Elastic Load Balancing | Application Load Balancers | CustomizationsConfig / AppConfigItem | ApplicationLoadBalancerConfig | Define an Application Load Balancer to be used for a custom application. |
Amazon Elastic Load Balancing | Network Load Balancers | CustomizationsConfig / AppConfigItem | NetworkLoadBalancerConfig | Define a Network Load Balancer to be used for a custom application. |
Amazon Elastic Load Balancing | Target Groups | CustomizationsConfig / AppConfigItem | TargetGroupItemConfig | Define a Target Group to be used with an Elastic Load Balancer. |
Amazon EC2 | Autoscaling Groups | CustomizationsConfig / AppConfigItem | AutoScalingConfig | Define an autoscaling group to be used for a custom application. |
Amazon EC2 | Launch Template | CustomizationsConfig / AppConfigItem | LaunchTemplateConfig | Define a launch template to be used for a custom application. |
Amazon EC2 | Next-generation firewalls (standalone or autoscaling) and firewall management appliances | CustomizationsConfig | Ec2FirewallConfig | Define third-party EC2-based firewall appliances. |
AWS Service Catalog | Portfolios, products, and shares | CustomizationsConfig / CustomizationConfig | PortfolioConfig | Define Service Catalog portfolios, products, and grant access permissions. You may also share portfolios to other accounts and OUs. |
Other mandatory and non-configurable services/features deployed by the solution are described in the Architecture overview and Architecture details section of the solution Implementation Guide.
A CDK Application. The core of the accelerator solution. Contains all the stack definitions and deployment pipeline for the accelerator. This also includes the CDK Toolkit orchestration.
A pure typescript library containing modules to manage the accelerator config files.
Contains L2/L3 constructs that have been built to support accelerator actions, such as creating an AWS Organizational Unit or VPC. These constructs are intended to be fully reusable, independent of the accelerator, and do not directly access the accelerator configuration files. Example: CentralLogsBucket, an S3 bucket that is configured with a CMK with the proper key and bucket policies to allow services and accounts in the organization to publish logs to the bucket.
Contains a CDK Application that defines the accelerator Installer stack.
A web application that utilizes the aws-ui-components library to present a console to configure the accelerator
Contains common utilities and types that are needed by @aws-accelerator/* packages. For example, throttling and backoff for AWS SDK calls
Contains L2 constructs that extend the functionality of the CDK repo. The CDK repo is an actively developed project. As the accelerator team identifies missing features of the CDK, those features will be initially developed locally within this repo and submitted to the CDK project as a pull request.
Accelerator tester CDK app. This package creates AWS Config custom rules for every test cases defined in test case manifest file.
--- |
The Installer Stack, a CDK Application, can be deployed through a CloudFormation template produced by your CLI by navigating to the directory for the installer and running a CDK synthesis. The template can either be deployed directly via the AWS CLI or console. Below are the commands for completing the deployment of the Installer stack.
- Install dependencies for the Installer stack
- [Node](https://nodejs.org/en/)
- [AWS CDK](https://aws.amazon.com/cdk/)
- [Yarn](https://yarnpkg.com/)
- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
- Install project dependencies
cd <rootDir>/source
yarn install && yarn lerna link
- To run the CDK synthesis
cd <rootDir>/source/packages/@aws-accelerator/installer
yarn build && yarn cdk synth
After running these commands, the Installer stack template will be saved to <rootDir>/source/packages/@aws-accelerator/installer/cdk.out/AWSAccelerator-InstallerStack.template.json
- Configure the AWS CLI CloudFormation command for the Installer stack
aws cloudformation create-stack --stack-name AWSAccelerator-InstallerStack --template-body file://cdk.out/AWSAccelerator-InstallerStack.template.json \
--parameters ParameterKey=RepositoryName,ParameterValue=<Repository_Name> \
ParameterKey=RepositoryBranchName,ParameterValue=<Branch_Name> \
ParameterKey=AcceleratorQualifier,ParameterValue=<Accelerator_Qualifier> \
ParameterKey=ManagementAccountId,ParameterValue=<Management_Id> \
ParameterKey=ManagementAccountEmail,ParameterValue=<Management_Email> \
ParameterKey=ManagementAccountRoleName,ParameterValue= \
ParameterKey=LogArchiveAccountEmail,ParameterValue=<LogArchive_Email> \
ParameterKey=AuditAccountEmail,ParameterValue=<Audit_Email> \
ParameterKey=EnableApprovalStage,ParameterValue=Yes \
ParameterKey=ApprovalStageNotifyEmailList,ParameterValue=comma-delimited-notify-emails \
ParameterKey=ControlTowerEnabled,ParameterValue=Yes \
--capabilities CAPABILITY_IAM
- Alternate deployment of CloudFormation via AWS console:
- From your Management account, navigate to CloudFormation page in the AWS console
- Select ‘Create Stack’ and from the dropdown pick ‘with new resources (standard)’
- For the prerequisite template, select ‘Template is ready’
- When specifying the template, select ‘Upload a template file’
- Ensure that you select the correct file ‘AWSLandingZoneAccelerator-InstallerStack.template.json’
- Fill out the required parameters in the UI, and create the stack once the parameters are inputted.
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at
http://www.apache.org/licenses/
or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License.