Type IGlobalConfig
File match global-config.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/landing-zone-accelerator-on-aws-global-config/latest.json
Source https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/global-config.json

Validate with Lintel

npx @lintel/lintel check
Type: IGlobalConfig

Definitions

ComparisonOperator string

Comparison Operator Type

Defines comparison operations used in monitoring, alerting, and conditional logic throughout the Landing Zone Accelerator configuration.

Values

  • GREATER_THAN: Trigger when value exceeds threshold
  • LESS_THAN: Trigger when value falls below threshold
  • EQUAL_TO: Trigger when value equals threshold
EmailAddress string

Email Address Type

Represents a valid email address with AWS-compatible formatting requirements. Used throughout the Landing Zone Accelerator for account creation, notifications, and contact information.

Format Requirements

  • Length: 6-64 characters
  • Pattern: Must match standard email format
  • Domain: Must contain at least one dot in the domain portion

Examples

typescript const email1: EmailAddress = "[email protected]";

IAcceleratorMetadataConfig object

Accelerator Metadata Configuration

Used to enable accelerator metadata logs.

Example yaml acceleratorMetadata: enable: true account: Logging readOnlyAccessRoleArns: - arn:aws:iam::111111111111:role/test-access-role

account string required

Account (Required)

The account to save the logs in. A new S3 Bucket will be created for this purpose.

enable boolean required

Enable (Required)

Determines whether or not accelerator metadata is captured

readOnlyAccessRoleArns string[] required

Read-Only Access Role ARNs (Required)

List of role arns that should have read-only access to the logs.

IAcceleratorSettingsConfig object

Accelerator Settings Configuration

Contains additional configuration settings for the Accelerator. Allows for the configuration of the maximum concurrent stacks that can be processed at a given time.

Example yaml acceleratorSettings: maxConcurrentStacks: 100

maxConcurrentStacks number

Max Concurrent Stacks (Optional)

Set the maximum number of concurrent stacks that can be processed at a time while transpiling the application.

Default: 100
IAccessLogBucketConfig object

Access Log Bucket Configuration

Configuration for the access log bucket used to store S3 server access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Deployment Targeting: Control which accounts and regions receive the configuration

Example yaml accessLogBucket: enable: true deploymentTargets: organizationalUnits: - Root s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json lifecycleRules: - enabled: true id: AccessLifecycle-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX importedBucket: name: existing-access-log-bucket-${ACCOUNT_ID}-${REGION} applyAcceleratorManagedBucketPolicy: true

customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

1 nested properties
policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

enable boolean

Enable Access Log Bucket (Optional)

Controls whether the S3 access logging bucket is created by the solution. When undefined, the solution will create access log buckets automatically.

Important Notes

  • Access log buckets are always created for critical solution buckets (installer, pipeline, central logs, assets)
  • Use deploymentTargets to control which accounts and regions receive this configuration
  • This setting primarily affects additional access log buckets beyond the core solution buckets
Default: true
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the access log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: AccessLifecycle-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/access-log-policy.json - policy: s3-policies/cross-account-access.json

IAccountCloudTrailConfig object

Account Cloud Trail Configuration

Configuration options for account-level trails.

Example ```yaml

  • name: AWSAccelerator-Account-CloudTrail regions: - us-east-1 deploymentTargets: organizationalUnits: - Root settings: multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false ```
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

name string required

Name (Required)

The name that will be used to create the trail.

regions NonEmptyString[] required

Regions (Required)

Determines which region(s) that this account trail will be deployed in.

settings object required

Cloud Trail Settings Configuration

Additional settings used to configure an organization-level trail.

Example yaml multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false

8 nested properties
apiCallRateInsight boolean required

API Call Rate Insight (Required)

Will enable CloudTrail Insights and enable the API Call Rate Insight

apiErrorRateInsight boolean required

API Error Rate Insight (Required)

Will enable CloudTrail insights and enable the API Error Rate Insight

globalServiceEvents boolean required

Global Service Events (Required)

For global services, events are delivered to any trail that includes global services and are logged in the us-east-1 region.

lambdaDataEvents boolean required

Lambda Data Events (Required)

Adds an Lambda Data Event Selector for filtering events that match Lambda operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
managementEvents boolean required

Management Events (Required)

Whether or not to log management events, or control plane operations. Management events can also include non-API events that occur in your account, such as a user logging in to the account. Enabling sets ReadWriteType.ALL.

multiRegionTrail boolean required

Multi-Region Trail (Required)

Determines whether or not this trail delivers log files from all regions to the account.

s3DataEvents boolean required

S3 Data Events (Required)

Adds an S3 Data Event Selector for filtering events that match S3 operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether CloudTrail pushes logs to CloudWatch logs in addition to S3.

IAssetBucketConfig object

Asset Bucket Configuration

Configuration for the asset bucket.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml assetBucket: s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: aws-accelerator-assets applyAcceleratorManagedBucketPolicy: true

customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

2 nested properties
kmsPolicy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
s3Policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (Customer Managed Encryption)

Configuration for importing existing S3 buckets with customer-managed KMS encryption (SSE-KMS). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that uses or should use customer-managed KMS keys for encryption.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • KMS Key Management: Option to create and manage KMS keys for the bucket
  • Policy Management: Optional application of accelerator-managed policies
  • Encryption Enhancement: Upgrade existing buckets to use customer-managed keys

Usage Example

yaml importedBucket: name: existing-sensitive-data-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: true

3 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Default: false
createAcceleratorManagedKey boolean

Create Accelerator Managed KMS Key (Optional)

Controls whether the accelerator should create a new customer-managed KMS key and apply it to the imported bucket for encryption. When enabled, enhances bucket security with dedicated encryption key management.

Key Creation Process

When true:

  • Creates a new customer-managed KMS key specifically for this bucket
  • Applies accelerator-managed key policy with appropriate service permissions
  • Configures bucket to use the new key for server-side encryption
  • Integrates key permissions with enabled security and logging services

When false (default):

  • Preserves existing bucket encryption configuration
  • Uses current encryption method (S3-managed, existing KMS key, or none)
  • No new KMS key creation or encryption changes
  • Existing encryption settings remain unchanged

Important Warnings

Irreversible Change: Once the accelerator pipeline executes with this value set to true, changing it back to false will cause CloudFormation stack failures. The KMS key becomes a permanent part of the infrastructure.

Default: false
kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value.
  • When importing an assets bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Assets Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.
s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

**Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json - policy: s3-policies/policy2.json

IBackupConfig object

Backup Configuration

Enables the setup of Backups.

Examples yaml backup: vaults: - name: BackupVault deploymentTargets: organizationalUnits: - Root

vaults IVaultConfig[] required

Vaults (Required)

Configuration for Backup Vaults.

IBudgetReportConfig object

Budget Report Configuration

Defines AWS Budgets for cost monitoring, usage tracking, and automated alerting. Budgets help you monitor your AWS costs and usage, and receive alerts when you exceed or are forecasted to exceed your defined thresholds.

Key Features

  • Cost and Usage Monitoring: Track spending across accounts, services, and resources
  • Automated Alerting: Email and SNS notifications when thresholds are exceeded
  • Multiple Budget Types: Support for cost, usage, RI utilization, and Savings Plans
  • Flexible Thresholds: Percentage or absolute value threshold configurations
  • Multi-Account Deployment: Deploy budgets across organizational units and accounts

Budget Types Supported

  • COST: Monitor spending in your preferred currency
  • USAGE: Track service usage hours or quantities
  • RI_UTILIZATION: Monitor Reserved Instance utilization rates
  • RI_COVERAGE: Track Reserved Instance coverage percentages
  • SAVINGS_PLANS_UTILIZATION: Monitor Savings Plans utilization
  • SAVINGS_PLANS_COVERAGE: Track Savings Plans coverage

Usage Example


  # Daily usage budget for EC2 hours   - name: ec2-usage-budget     timeUnit: DAILY     type: USAGE     amount: 1000     unit: Hrs     notifications:       - type: FORECASTED         thresholdType: ABSOLUTE_VALUE         threshold: 800         comparisonOperator: GREATER_THAN         subscriptionType: EMAIL         recipients:           - [email protected] ```
amount number required

Budget Amount (Required)

The cost or usage amount that defines the budget threshold. This value represents the maximum amount you want to spend (for COST budgets) or consume (for USAGE budgets) within the specified time period.

Amount Guidelines

  • Cost Budgets: Specify amount in your preferred currency unit
  • Usage Budgets: Specify amount in service-specific units (hours, GB, requests)
  • RI/Savings Plans: Specify percentage values (0-100) for utilization/coverage

Examples


# Daily EC2 usage budget of 1,000 hours amount: 1000 type: USAGE unit: Hrs

# RI utilization target of 80% amount: 80 type: RI_UTILIZATION ```
Default: 2000
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
timeUnit string required

Time Unit (Required)

The time period over which the budget amount is measured and reset. Determines how frequently the budget resets and when notifications are evaluated.

Available Time Units

  • DAILY: Budget resets every day (available for all budget types)
  • MONTHLY: Budget resets monthly (most common, recommended)
  • QUARTERLY: Budget resets every 3 months
  • ANNUALLY: Budget resets yearly (good for annual planning)

Usage Guidelines


# Daily monitoring for high-usage services timeUnit: DAILY type: USAGE

# Annual budgets for long-term planning timeUnit: ANNUALLY type: COST ```

### Special Considerations

- **RI_UTILIZATION** and **RI_COVERAGE** budgets support DAILY time units
- DAILY budgets provide more granular monitoring but may generate more alerts
- MONTHLY is recommended for most cost management use cases
type string required

Budget Type (Required)

Specifies what the budget monitors - costs, usage, or Reserved Instance metrics. The budget type determines how the amount is interpreted and what data is tracked.

Budget Types

  • COST: Monitors spending in your specified currency
  • USAGE: Tracks service usage quantities (hours, GB, requests)
  • RI_UTILIZATION: Monitors Reserved Instance utilization percentage
  • RI_COVERAGE: Tracks Reserved Instance coverage percentage
  • SAVINGS_PLANS_UTILIZATION: Monitors Savings Plans utilization
  • SAVINGS_PLANS_COVERAGE: Tracks Savings Plans coverage

Type-Specific Considerations


# Usage monitoring type: USAGE amount: 1000 unit: Hrs

# Reserved Instance optimization type: RI_UTILIZATION amount: 80  # Target 80% utilization

# Savings Plans monitoring type: SAVINGS_PLANS_COVERAGE amount: 70  # Target 70% coverage ```
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

includeCredit boolean

Include Credits (Optional)

Whether to include AWS credits in the budget calculation. When enabled, credits reduce the total amount counted against the budget.

Credit Types

  • AWS promotional credits
  • Service credits for SLA violations
  • Partner-provided credits
  • Migration incentive credits

Best Practices

  • Enable for net cost visibility after credits
  • Disable for tracking actual resource consumption costs
Default: true
includeDiscount boolean

Include Discounts (Optional)

Whether to include discounts in the budget calculation. When enabled, discounts reduce the total amount counted against the budget.

Discount Types

  • Volume discounts
  • Reserved Instance discounts
  • Savings Plans discounts
  • Promotional credits

Considerations

  • Enable to see net costs after discounts
  • Disable to track gross costs before discounts
Default: true
includeOtherSubscription boolean

Include Other Subscriptions (Optional)

Whether to include non-Reserved Instance subscription costs such as Savings Plans, software subscriptions, and marketplace subscriptions.

Subscription Types Included

  • AWS Marketplace software subscriptions
  • Third-party software licenses
  • Other recurring subscription charges
Default: true
includeRecurring boolean

Include Recurring Costs (Optional)

Whether to include recurring fees such as monthly Reserved Instance charges, data transfer fees, and other predictable recurring costs.

Recurring Cost Types

  • Monthly RI fees (after upfront payment)
  • Data transfer charges
  • Storage fees
  • Other predictable monthly charges
Default: true
includeRefund boolean

Include Refunds (Optional)

Whether to include refunds in the budget calculation. When enabled, refunds reduce the total amount counted against the budget.

When to Include

  • Enable for net cost tracking that accounts for refunds
  • Disable for gross cost tracking without refund adjustments
  • Consider impact on budget accuracy if refunds are frequent
Default: true
includeSubscription boolean

Include Subscriptions (Optional)

Whether to include general subscription costs in the budget calculation. This is a broader category that encompasses various subscription-based charges.

When to Include

  • Enable for comprehensive subscription cost tracking
  • Disable when focusing only on usage-based costs
Default: true
includeSupport boolean

Include Support Costs (Optional)

Whether to include AWS Support subscription fees in the budget calculation. This includes Business, Enterprise, and other support plan charges.

When to Include

  • Enable for complete operational cost visibility
  • Disable when support costs are managed separately
  • Consider if support costs should be allocated to specific teams/projects
Default: true
includeTax boolean

Include Tax (Optional)

Whether to include taxes in the budget calculation. This includes all applicable taxes such as VAT, sales tax, and other regional taxes.

Considerations

  • Enable for total cost visibility including all charges
  • Disable for pre-tax budget management
  • Consider regional tax implications for multi-region deployments
Default: true
includeUpfront boolean

Include Upfront Costs (Optional)

Whether to include upfront Reserved Instance costs in the budget calculation. Upfront costs are one-time payments made when purchasing Reserved Instances.

When to Include

  • Enable for comprehensive cost tracking that includes RI purchases
  • Enable when budgeting for periods that include RI purchases
  • Disable for operational cost budgets that exclude capital expenditures
Default: true
notifications INotificationConfig[]

Budget Notifications (Optional)

List of notification configurations that define when and how alerts are sent when budget thresholds are exceeded or forecasted to be exceeded.

Notification Types

  • ACTUAL: Alert when actual spending/usage exceeds threshold
  • FORECASTED: Alert when forecasted spending/usage will exceed threshold

Threshold Types

  • PERCENTAGE: Threshold as percentage of budget amount
  • ABSOLUTE_VALUE: Threshold as absolute value in budget units

Best Practices


  # Critical alert at 90% actual spend   - type: ACTUAL     thresholdType: PERCENTAGE     threshold: 90     comparisonOperator: GREATER_THAN     subscriptionType: EMAIL     recipients:       - [email protected]       - [email protected] ```
subscriptionType SubscriptionType | string

Subscription Type (Optional)

Default notification delivery method for budget alerts. This can be overridden in individual notification configurations.

Available Types

  • EMAIL: Send notifications via email (most common)
  • SNS: Send notifications via Amazon SNS topic

Usage Guidelines


# SNS for integration with other systems subscriptionType: SNS ```

**Note:** Individual notifications can override this default setting.
unit string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
useAmortized boolean

Use Amortized Costs (Optional)

Whether to use amortized costs for Reserved Instances and Savings Plans. Amortized costs spread upfront payments across the term of the commitment.

Amortized vs. Unblended

  • Amortized: Spreads upfront RI costs across the RI term
  • Unblended: Shows actual charges as they occur

When to Use

  • Enable for consistent monthly cost allocation
  • Disable for cash flow and actual billing tracking
  • Useful for chargeback and cost allocation scenarios
Default: false
useBlended boolean

Use Blended Rates (Optional)

Whether to use blended rates that average costs across different pricing tiers. Blended rates provide a simplified view by averaging tiered pricing.

Blended vs. Unblended

  • Blended: Averages costs across pricing tiers
  • Unblended: Shows actual per-unit costs for each tier

When to Use

  • Enable for simplified cost analysis and reporting
  • Disable for detailed cost optimization and tier analysis
  • Consider organizational reporting requirements
Default: false
ICdkOptionsConfig object

CDK Options

Manage the behavior of CDK within LZA.

Key Features

  • Centralize Buckets: Determines whether CDK will use a single, centralized S3 bucket per region
  • Deployment Role Management: Determines whether CDK will use a custom execution role for CDK operations

Example yaml cdkOptions: centralizeBuckets: true useManagementAccessRole: true deploymentMethod: 'direct'

centralizeBuckets boolean required

Centralize Buckets (Required)

When the accelerator deploys resources using the AWS CDK, assets are first built and stored in S3. By default, the S3 bucket is located within the deployment target account. Enabling this feature will utilize an S3 bucket within the management account instead.

useManagementAccessRole boolean required

Use Management Access Role (Required)

Indicates whether CDK operations use the IAM role specified in the {@link IGlobalConfig.managementAccountAccessRole managementAccountAccessRole option in the global config } rather than the default roles created by CDK.

customDeploymentRole string

Custom Deployment Role (Optional)

Create a deployment role in all accounts in the home region with the specified name. This role is used by the LZA for all CDK deployment tasks.

deploymentMethod string

Deployment Method (Optional)

Manage the CDK deployment method for the LZA

Options

  • 'direct': Default used by the LZA
  • 'change-set': Provides additional progress information, can increase deployment time
Default: "direct"
Values: "change-set" "direct"
forceBootstrap boolean

Force Bootstrap (Optional)

Forces the Accelerator to deploy the bootstrapping stack and circumvent the SSM parameter check. This option is needed when adding or removing a custom deployment role

Default: false
skipStaticValidation boolean

** Skip Static Validation** (Optional)

When enabled, the LZA pipeline will skip the static config validation step during the build phase. Helpful in cases where the config validator incorrectly throws errors for a valid configuration.

ICentralLogBucketConfig object

Central Log Bucket Configuration

Configuration for the central log bucket used to store centralized logs from across the organization.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml centralLogBucket: lifecycleRules: - enabled: true id: CentralLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json kmsResourcePolicyAttachments: - policy: kms-policies/policy1.json importedBucket: name: central-log-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: false

customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

2 nested properties
kmsPolicy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
s3Policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket encryption key policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value
  • When importing a central logs bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Central Logs Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.

Example yaml kmsResourcePolicyAttachments: - policy: kms-policies/central-log-key-policy.json

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the central log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: CentralLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/central-log-policy.json - policy: s3-policies/cross-account-access.json

ICentralRootUserManagementConfig object

Central Root User Management Configuration

Configure how root management is controlled within the organization.

Example yaml centralRootUserManagement: enable: true capabilities: rootCredentialsManagement: true allowRootSessions: true

capabilities object required

Root User Management Capabilities Configuration

Determines how root user management is controlled within the organization.

2 nested properties
allowRootSessions boolean required

Allow Root Sessions (Required)

Determines whether root user sessions are allowed.

rootCredentialsManagement boolean required

Root Credentials Management (Required)

Determines whether root user credentials are managed by the organization.

enable boolean required

Enable (Required)

Determines whether root user management is enabled for the organization.

ICentralizeCdkBucketsConfig object

Centralized CDK Buckets Configuration**

enable boolean required
ICloudTrailConfig object

Cloudtrail Configuration

Used to enable and configure CloudTrail for the LZA deployment.

Example yaml cloudtrail: enable: true organizationTrail: true organizationTrailSettings: multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false accountTrails: [] lifecycleRules: []

enable boolean required

Enable (Required)

Whether or not to enable CloudTrail. This setting alone does not create any trails. Enabling {@link ICloudTrailConfig.organizationTrail } will create an organization-level trail. Additionally, you can setup account-level trails.

organizationTrail boolean required

Organization Trail (Required)

When enabled alongside {@link ICloudTrailConfig.enable } , LZA will create an organization-level trail.

Account Trails (Optional)

Configurations for account-level trails to be created by the LZA deployment.

lifecycleRules ILifecycleRule[]

S3 Log Bucket Lifecycle Rules (Optional)

Optional lifecycle rules for the S3 log bucket

organizationTrailSettings object

Cloud Trail Settings Configuration

Additional settings used to configure an organization-level trail.

Example yaml multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false

8 nested properties
apiCallRateInsight boolean required

API Call Rate Insight (Required)

Will enable CloudTrail Insights and enable the API Call Rate Insight

apiErrorRateInsight boolean required

API Error Rate Insight (Required)

Will enable CloudTrail insights and enable the API Error Rate Insight

globalServiceEvents boolean required

Global Service Events (Required)

For global services, events are delivered to any trail that includes global services and are logged in the us-east-1 region.

lambdaDataEvents boolean required

Lambda Data Events (Required)

Adds an Lambda Data Event Selector for filtering events that match Lambda operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
managementEvents boolean required

Management Events (Required)

Whether or not to log management events, or control plane operations. Management events can also include non-API events that occur in your account, such as a user logging in to the account. Enabling sets ReadWriteType.ALL.

multiRegionTrail boolean required

Multi-Region Trail (Required)

Determines whether or not this trail delivers log files from all regions to the account.

s3DataEvents boolean required

S3 Data Events (Required)

Adds an S3 Data Event Selector for filtering events that match S3 operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether CloudTrail pushes logs to CloudWatch logs in addition to S3.

ICloudTrailSettingsConfig object

Cloud Trail Settings Configuration

Additional settings used to configure an organization-level trail.

Example yaml multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false

apiCallRateInsight boolean required

API Call Rate Insight (Required)

Will enable CloudTrail Insights and enable the API Call Rate Insight

apiErrorRateInsight boolean required

API Error Rate Insight (Required)

Will enable CloudTrail insights and enable the API Error Rate Insight

globalServiceEvents boolean required

Global Service Events (Required)

For global services, events are delivered to any trail that includes global services and are logged in the us-east-1 region.

lambdaDataEvents boolean required

Lambda Data Events (Required)

Adds an Lambda Data Event Selector for filtering events that match Lambda operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
managementEvents boolean required

Management Events (Required)

Whether or not to log management events, or control plane operations. Management events can also include non-API events that occur in your account, such as a user logging in to the account. Enabling sets ReadWriteType.ALL.

multiRegionTrail boolean required

Multi-Region Trail (Required)

Determines whether or not this trail delivers log files from all regions to the account.

s3DataEvents boolean required

S3 Data Events (Required)

Adds an S3 Data Event Selector for filtering events that match S3 operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether CloudTrail pushes logs to CloudWatch logs in addition to S3.

ICloudWatchDataProtectionConfig object

CloudWatch Log Data Protection Configuration

Allows the enablement of CloudWatch Logs data protection.

Example yaml dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

managedDataIdentifiers object required

Managed Data Protection Identifier Configuration

Allows the protection of CloudWatch Log Data. Currently, only Credentials category is supported.

1 nested properties
categories string[] required

Categories (Required)

List of categories to protect.

Default: "Credentials"
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

overrideExisting boolean

Override Existing (Optional)

Indicates whether any existing CloudWatch Log data protection configurations can be overwritten.

Default: false
ICloudWatchFirehoseConfig object

CloudWatch Firehose Configuration

Configuration for the CloudWatch Logs Firehose.

Example yaml logging: cloudwatchLogs: firehose: fileExtension: json.gz lambdaProcessor: retries: 3 bufferSize: 0.2 bufferInterval: 60

fileExtension string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
lambdaProcessor object

CloudWatch Firehose Lambda Configuration

Enables the configuration of the lambda processor used to process incoming logs to the LogArchive account.

3 nested properties
bufferInterval number

Buffer Interval (Optional)

The period of time in seconds which Amazon Data Firehose buffers incoming data before invoking the Lambda function. The AWS lambda function is invoked once the value of the buffer size, or the buffer interval is reached.

Valid values range from 60 - 900s.

Default: 60
bufferSize number

Buffer Size (Optional)

The AWS Lambda function has a 6 MB invocation payload quota. Your data can expand in size after it's processed. A smaller buffer size allows for more room should the data expand after processing.

Valid values range from 0.2 - 3 MB.

Default: 0.2
retries number

Retries (Optional)

How many times Firehose will retry the Lambda invocation.

Default: 3
ICloudWatchFirehoseLambdaProcessorConfig object

CloudWatch Firehose Lambda Configuration

Enables the configuration of the lambda processor used to process incoming logs to the LogArchive account.

bufferInterval number

Buffer Interval (Optional)

The period of time in seconds which Amazon Data Firehose buffers incoming data before invoking the Lambda function. The AWS lambda function is invoked once the value of the buffer size, or the buffer interval is reached.

Valid values range from 60 - 900s.

Default: 60
bufferSize number

Buffer Size (Optional)

The AWS Lambda function has a 6 MB invocation payload quota. Your data can expand in size after it's processed. A smaller buffer size allows for more room should the data expand after processing.

Valid values range from 0.2 - 3 MB.

Default: 0.2
retries number

Retries (Optional)

How many times Firehose will retry the Lambda invocation.

Default: 3
ICloudWatchKinesisConfig object

CloudWatch Kinesis Configuration

Configuration for CloudWatch Log's Kinesis.

Key Features

  • Real-time Processing: Stream CloudWatch Logs data in real-time for immediate analysis
  • Scalable Throughput: Configure capacity based on your data volume requirements
  • Flexible Retention: Store data for 24 hours to 365 days for replay and reprocessing
  • Cost Optimization: Choose between on-demand and provisioned capacity modes
  • Integration Ready: Seamlessly integrates with AWS analytics and processing services

Example yaml logging: cloudwatchLogs: kinesis: streamingMode: PROVISIONED shardCount: 5 retention: 240

streamingMode string required
Values: "ON_DEMAND" "PROVISIONED"
retention number

Retention (Optional)

The number of hours the data records are stored in shards and remain accessible.

The value should be between 24 and 8760

Default: 24
shardCount number

Shard Count (Optional)

The number of shared the stream uses. For greater throughput, increase the number of shards. Only applicable if {@link ICloudWatchKinesisConfig.streamingMode } is 'Provisioned', otherwise this is ignored. Shards cannot be increased to more than double their capacity. For example, you cannot go from 1 shard to 4.

Default: 1
ICloudWatchLogSkipBulkUpdateConfig object

Skip Bulk Update Configuration

Configuration to skip the bulk update of CloudWatch Logs. Warning: This configuration option could cause CloudWatch log group configurations to become out of sync with the global configuration. Only enable this option if you fully understand the implications.

enable boolean required

Enable (Required)

Whether or not to enable the skip bulk updates

skipBulkUpdateTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

ICloudWatchLogsConfig object

CloudWatch Logs Configuration

Key Features

  • Configure logs encryption
  • Manage Subscriptions for CloudWatch Logs
  • Enable CloudWatch Logs replication

Example yaml cloudwatchLogs: dynamicPartitioning: path/to/filter.json # default is true, if undefined this is set to true # if set to false, no replication is performed which is useful in test or temporary environments enable: true encryption: useCMK: true deploymentTargets: organizationalUnits: - Root replaceLogDestinationArn: arn:aws:logs:us-east-1:111111111111:destination:ReplaceDestination exclusions: # in these OUs do not do log replication - organizationalUnits: - Research - ProofOfConcept excludeAll: true # in these accounts exclude pattern testApp - accounts: - WorkloadAccount1 - WorkloadAccount1 logGroupNames: - testApp* # in these accounts exclude logs in specific regions - accounts: - WorkloadAccount1 - WorkloadAccount1 regions: - us-west-2 - eu-west-1 logGroupNames: - pattern1* dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

dataProtection object

CloudWatch Log Data Protection Configuration

Allows the enablement of CloudWatch Logs data protection.

Example yaml dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

3 nested properties
managedDataIdentifiers object required

Managed Data Protection Identifier Configuration

Allows the protection of CloudWatch Log Data. Currently, only Credentials category is supported.

1 nested properties
categories string[] required

Categories (Required)

List of categories to protect.

Default: "Credentials"
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

overrideExisting boolean

Override Existing (Optional)

Indicates whether any existing CloudWatch Log data protection configurations can be overwritten.

Default: false
dynamicPartitioning string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
dynamicPartitioningByAccountId boolean

Dynamic Partitioning by Account ID (Optional)

Whether or not the ID of the account that produced the CloudWatch Logs should be used in the partitioning strategy of the logs. For example: s3://<central-logs-bucket>/CloudWatchLogs/<account id>/.

Use With Dynamic Partitioning If dynamicPartitioning is also being used, the Account ID will come before the supplied s3 prefix. For example the following would result in s3://<central-logs-bucket>/CloudWatchLogs/<account id>/s3-prefix/ being used as the partition.

{ "logGroupPattern": "LogGroupName", "s3Prefix": "s3-prefix" }

enable boolean

Enable Replication (Optional)

Whether or not to enable CloudWatch Logs replication.

Default: true
encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

Exclusions (Optional)

Configure log groups to exclude from replication.

firehose object

CloudWatch Firehose Configuration

Configuration for the CloudWatch Logs Firehose.

Example yaml logging: cloudwatchLogs: firehose: fileExtension: json.gz lambdaProcessor: retries: 3 bufferSize: 0.2 bufferInterval: 60

2 nested properties
fileExtension string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
lambdaProcessor object

CloudWatch Firehose Lambda Configuration

Enables the configuration of the lambda processor used to process incoming logs to the LogArchive account.

3 nested properties
bufferInterval number

Buffer Interval (Optional)

The period of time in seconds which Amazon Data Firehose buffers incoming data before invoking the Lambda function. The AWS lambda function is invoked once the value of the buffer size, or the buffer interval is reached.

Valid values range from 60 - 900s.

Default: 60
bufferSize number

Buffer Size (Optional)

The AWS Lambda function has a 6 MB invocation payload quota. Your data can expand in size after it's processed. A smaller buffer size allows for more room should the data expand after processing.

Valid values range from 0.2 - 3 MB.

Default: 0.2
retries number

Retries (Optional)

How many times Firehose will retry the Lambda invocation.

Default: 3
kinesis object

CloudWatch Kinesis Configuration

Configuration for CloudWatch Log's Kinesis.

Key Features

  • Real-time Processing: Stream CloudWatch Logs data in real-time for immediate analysis
  • Scalable Throughput: Configure capacity based on your data volume requirements
  • Flexible Retention: Store data for 24 hours to 365 days for replay and reprocessing
  • Cost Optimization: Choose between on-demand and provisioned capacity modes
  • Integration Ready: Seamlessly integrates with AWS analytics and processing services

Example yaml logging: cloudwatchLogs: kinesis: streamingMode: PROVISIONED shardCount: 5 retention: 240

3 nested properties
streamingMode string required
Values: "ON_DEMAND" "PROVISIONED"
retention number

Retention (Optional)

The number of hours the data records are stored in shards and remain accessible.

The value should be between 24 and 8760

Default: 24
shardCount number

Shard Count (Optional)

The number of shared the stream uses. For greater throughput, increase the number of shards. Only applicable if {@link ICloudWatchKinesisConfig.streamingMode } is 'Provisioned', otherwise this is ignored. Shards cannot be increased to more than double their capacity. For example, you cannot go from 1 shard to 4.

Default: 1
organizationIdConditionSupported boolean

Organization ID Condition (Optional)

Whether or not a list of account IDs is used instead of a principal organization condition in the CloudWatch Logs destination access policy. Useful in partitions where the principal organization condition is not supported.

replaceLogDestinationArn string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
skipBulkUpdate object

Skip Bulk Update Configuration

Configuration to skip the bulk update of CloudWatch Logs. Warning: This configuration option could cause CloudWatch log group configurations to become out of sync with the global configuration. Only enable this option if you fully understand the implications.

2 nested properties
enable boolean required

Enable (Required)

Whether or not to enable the skip bulk updates

skipBulkUpdateTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

subscription object

CloudWatch Subscription Configuration

Configuration for the CloudWatch logs subscription

Example yaml logging: cloudwatchLogs: subscription: type: ACCOUNT selectionCriteria: 'LogGroupName NOT IN [ /aws/lambda/AWSAccelerator-FirehoseRecordsProcessor development AppA]' overrideExisting: true

4 nested properties
type string required

Type (Required)

Determines whether an account-wide subscription is applied, or if a Lambda function will be invoked to apply each log group.

Example type: ACCOUNT

Values: "ACCOUNT" "LOG_GROUP"
filterPattern string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
overrideExisting boolean

Override Existing (Optional)

Indicates whether the existing CloudWatch Log subscription configuration can be overwritten. If enabled, any existing policy will be updated and renamed to 'ACCELERATOR_ACCOUNT_SUBSCRIPTION_POLICY'. Upon deleting the solution or disabling logging for cloudwatch in global config, this policy will be removed. If type is set to 'LOG_GROUP' this parameter will not be used.

Default: false
selectionCriteria string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
ICloudWatchLogsExclusionConfig object

CloudWatch Logs Exclusions Config

Used to define which CloudWatch Logs Groups should be excluded. Select groups based on accounts, regions, OUs, and log group names.

Example ```yaml organizationalUnits: - Sandbox regions: - us-west-1 - us-west-2 accounts: - WorkloadAccount1 excludeAll: true logGroupNames: - 'test/' - '/appA/'

accounts NonEmptyString[]

Accounts (Optional)

List of accounts where the exclusions will apply.

excludeAll boolean

Exclude All (Optional)

Whether or not to exclude all logs.

When true, all replication for the listed accounts/OUs will be disabled. Setting the OU to Root with no region specified and having this true, will fail validation as this would be redundant. Instead use {@link ICloudWatchLogsConfig.enable } to disable replication for the entire environment

Default: false
logGroupNames NonEmptyString[]

Log Group Names (Optional)

List of log group names to be excluded

Wild cards are supported. If {@link ICloudWatchLogsExclusionConfig.excludeAll } is enabled, then this parameter is ignored.

organizationalUnits NonEmptyString[]

Organizational Units (Optional)

List of OUs to exclude.

regions string[]

Regions (Optional)

List of regions to exclude. If left undefined, exclusions will apply to all enabled regions.

ICloudWatchManagedDataProtectionIdentifierConfig object

Managed Data Protection Identifier Configuration

Allows the protection of CloudWatch Log Data. Currently, only Credentials category is supported.

categories string[] required

Categories (Required)

List of categories to protect.

Default: "Credentials"
ICloudWatchSubscriptionConfig object

CloudWatch Subscription Configuration

Configuration for the CloudWatch logs subscription

Example yaml logging: cloudwatchLogs: subscription: type: ACCOUNT selectionCriteria: 'LogGroupName NOT IN [ /aws/lambda/AWSAccelerator-FirehoseRecordsProcessor development AppA]' overrideExisting: true

type string required

Type (Required)

Determines whether an account-wide subscription is applied, or if a Lambda function will be invoked to apply each log group.

Example type: ACCOUNT

Values: "ACCOUNT" "LOG_GROUP"
filterPattern string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
overrideExisting boolean

Override Existing (Optional)

Indicates whether the existing CloudWatch Log subscription configuration can be overwritten. If enabled, any existing policy will be updated and renamed to 'ACCELERATOR_ACCOUNT_SUBSCRIPTION_POLICY'. Upon deleting the solution or disabling logging for cloudwatch in global config, this policy will be removed. If type is set to 'LOG_GROUP' this parameter will not be used.

Default: false
selectionCriteria string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
IControlTowerConfig object

AWS Control Tower Configuration

AWS Control Tower provides a prescriptive way to set up and govern a secure, multi-account AWS environment based on best practices. This configuration enables and manages Control Tower Landing Zone deployment alongside the Landing Zone Accelerator.

Key Features

  • Landing Zone Management: Configure and manage Control Tower Landing Zone settings
  • Guardrail Controls: Enable additional strongly recommended and elective controls
  • Identity Center Integration: Seamless integration with AWS IAM Identity Center
  • Logging Configuration: Centralized logging with configurable retention policies

Configuration Structure

yaml # global-config.yaml controlTower: enable: true landingZone: version: '3.3' logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true security: enableIdentityCenterAccess: true controls: - identifier: AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK enable: true deploymentTargets: organizationalUnits: - SecureWorkloads - identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK enable: true deploymentTargets: organizationalUnits: - Workloads

Best Practices

  1. Version Management: Always specify the latest available Landing Zone version 2. Control Deployment: Enable controls in batches of 10 or fewer to avoid throttling 3. Organizational Units: Align control deployment with your OU structure 4. Logging Retention: Set appropriate retention periods based on compliance requirements 5. Identity Center: Enable Identity Center access for centralized user management

Important Considerations

  • Control Tower requires the three mandatory accounts: Management, Audit, and Log Archive
  • Some controls cannot be deployed to the Security OU
  • Control Tower operations are limited to 10 concurrent operations
  • Landing Zone updates require the latest available version
enable boolean required

Enable Control Tower (Required)

Controls whether AWS Control Tower Landing Zone is enabled for the deployment. When enabled, the accelerator ensures the account configuration includes the three mandatory Control Tower accounts.

Required Accounts

When Control Tower is enabled, these accounts must be defined in accounts-config.yaml:

  • Management Account: Primary account for organizational management and billing
  • Log Archive Account: Centralized logging and log retention
  • Audit Account: Security auditing and compliance monitoring

Prerequisites

  • AWS Organizations must be enabled in the management account
  • All features must be enabled in AWS Organizations
  • The management account must have appropriate permissions
  • Required service-linked roles must be created

# Disable Control Tower (standalone LZA deployment) enable: false ```

Control Tower Guardrails (Optional)

Configuration for additional Control Tower guardrails (controls) beyond the mandatory ones. Allows enablement of strongly recommended and elective controls across organizational units.

Control Types

  • Mandatory: Automatically enabled by Control Tower (cannot be disabled)
  • Strongly Recommended: Best practice controls that should be enabled
  • Elective: Additional controls for specific compliance requirements

Deployment Considerations

  • Concurrency Limit: Maximum 10 concurrent control operations
  • Batch Processing: Deploy controls in batches to avoid throttling
  • OU Restrictions: Some controls cannot be deployed to Security OU
  • Regional Scope: Controls can be region-specific or global

Usage Examples


  # Elective control with regional scope   - identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK     enable: true     regions:       - us-east-1       - us-west-2     deploymentTargets:       organizationalUnits:         - Production

  # Global control using opaque identifier   - identifier: m7a5gbdf08wg2o0en010mkng     enable: true     deploymentTargets:       organizationalUnits:         - Infrastructure ```

**Best Practices**

- Enable controls gradually in batches of 10 or fewer
- Test controls in non-production OUs first
- Review control documentation for OU compatibility
- Monitor control status and compliance in Control Tower console
landingZone object

Control Tower Landing Zone Configuration

Configure the Control Tower Landing Zone's settings.

Key Features

  • Specify the Landing Zone Version
  • Customize log retention to meet regulatory compliance
  • Manage Identity Center Access for Control Tower Landing Zone

Example yaml landingZone: version: '3.3' logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true security: enableIdentityCenterAccess: true

4 nested properties
logging object required

AWS Control Tower Landing Zone Logging Configuration

Logging configuration for the landing zone.

Key Features

  • Log Retention: Configure log retention time
  • Organization-Level CloudTrail: Enable/Disable organization-level CloudTrail

Usage Example

yaml logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true

3 nested properties
accessLoggingBucketRetentionDays number required

Access Logs Retention Time (Required)

Retention time, in days, of the bucket access logs

Default: 365
loggingBucketRetentionDays number required

Bucket Retention Configuration (Required)

Retention time, in days, of the Amazon S3 log archive bucket

Default: 365
organizationTrail boolean required

Organization-Level CloudTrail (Required)

Whether or not to enable organization-level CloudTrail.

Important Considerations

  • Organization-level CloudTrail is different than the CloudTrail deployed by the solution
  • If both organization-level CloudTrail and solution defined CloudTrail are enabled, multiple trails will be created
Default: true
security object required

Control Tower Landing Zone Security Configuration

Configure security settings and access controls for the AWS Control Tower Landing Zone deployment. This configuration manages identity and access management integration with AWS services. ### Important Considerations

  • Identity Center access affects how users authenticate to AWS accounts in the organization
  • When enabled, Control Tower automatically configures permission sets and account assignments
  • Disabling may impact existing user access patterns and require manual IAM configuration
  • Changes to this configuration may trigger a Control Tower Landing Zone update

Usage Example

yaml security: enableIdentityCenterAccess: true

1 nested properties
enableIdentityCenterAccess boolean required

Identity Center Access (Required)

When enabled, AWS Control Tower sets up AWS account access with IAM Identity Center.

Default: false
version string required

Landing Zone Version (Required)

Considerations

  • Most recent version required for landing zone updates or resets
  • Updates or resets will occur when drift is detected or any configuration change
  • If the solution needs to perform an update or reset and the version is not the most recent, the solution will fail
accountAutoEnrollment boolean

Account Auto-Enrollment (Optional)

Enables automatic enrollment of accounts when moved between organizational units (OUs). When enabled, accounts moved into or between registered OUs automatically receive baseline resources and control configurations from the destination OU without creating inheritance drift.

Default: false
IControlTowerControlConfig object

Control Tower Guardrail Configuration

Individual Control Tower guardrail (control) configuration for enabling additional security and compliance controls beyond the mandatory ones automatically enabled by Control Tower.

Overview

Control Tower guardrails provide governance controls that help ensure your AWS environment remains compliant with security and operational best practices. This configuration allows you to enable additional controls across your organizational structure.

Deployment Constraints

  • Concurrency Limit: Maximum 10 concurrent control operations per region
  • OU Restrictions: Some controls cannot be deployed to the Security OU
  • Regional Scope: Controls can be global or region-specific
  • Batch Processing: Deploy in small batches to avoid throttling

Usage Examples

- identifier: AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK   enable: true   deploymentTargets:     organizationalUnits:       - Workloads       - Production

- identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK   enable: true   regions:     - us-east-1     - us-west-2   deploymentTargets:     organizationalUnits:       - Infrastructure

- identifier: m7a5gbdf08wg2o0en010mkng   enable: true   deploymentTargets:     organizationalUnits:       - Root ```

### Important Considerations

- LZA only supports highly recommended and elective controls
- Control Tower operations count against the 10 concurrent operation limit
- Enabling a control for one OU counts as one Control Tower operation
- Control deployment is asynchronous and may take several minutes
- Some controls have dependencies on other AWS services
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

enable boolean required

Enable Control (Required)

Controls whether this guardrail should be enabled or disabled for the specified organizational units.

Control States

Enabled (true):

  • Control is active and enforcing its policy
  • Resources are monitored for compliance
  • Non-compliant resources are flagged or remediated
  • Control appears as "Enabled" in Control Tower console

Disabled (false):

  • Control is inactive and not enforcing policy
  • No compliance monitoring occurs
  • Existing violations are not flagged
  • Control appears as "Disabled" in Control Tower console

Usage Examples

- identifier: AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK   enable: true    # Control will be enabled   deploymentTargets:     organizationalUnits:       - Production

# Disable a control (useful for temporary exceptions)
- identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK   enable: false   # Control will be disabled   deploymentTargets:     organizationalUnits:       - Development ```
identifier string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
regions string[]

Regional Scope (Optional)

Specifies the AWS regions where this control should be enabled. If not specified, the control is enabled in the home region only.

Regional Deployment

Global Controls:

  • Some controls are inherently global (e.g., IAM-related controls)
  • Regional specification is ignored for global controls
  • Applied once per account regardless of region list

Regional Controls:

  • Most controls are region-specific (e.g., EC2, VPC controls)
  • Must be explicitly enabled in each target region
  • Each region deployment counts as a separate operation

Usage Examples

yaml regions: - us-east-1 - us-west-2 - eu-west-1

Important Considerations

  • Each region deployment counts toward the 10 concurrent operation limit
  • Regions must be listed in the enabledRegions section of global-config.yaml
  • Invalid regions will cause deployment failures
Default: "Home region only"
IControlTowerLandingZoneConfig object

Control Tower Landing Zone Configuration

Configure the Control Tower Landing Zone's settings.

Key Features

  • Specify the Landing Zone Version
  • Customize log retention to meet regulatory compliance
  • Manage Identity Center Access for Control Tower Landing Zone

Example yaml landingZone: version: '3.3' logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true security: enableIdentityCenterAccess: true

logging object required

AWS Control Tower Landing Zone Logging Configuration

Logging configuration for the landing zone.

Key Features

  • Log Retention: Configure log retention time
  • Organization-Level CloudTrail: Enable/Disable organization-level CloudTrail

Usage Example

yaml logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true

3 nested properties
accessLoggingBucketRetentionDays number required

Access Logs Retention Time (Required)

Retention time, in days, of the bucket access logs

Default: 365
loggingBucketRetentionDays number required

Bucket Retention Configuration (Required)

Retention time, in days, of the Amazon S3 log archive bucket

Default: 365
organizationTrail boolean required

Organization-Level CloudTrail (Required)

Whether or not to enable organization-level CloudTrail.

Important Considerations

  • Organization-level CloudTrail is different than the CloudTrail deployed by the solution
  • If both organization-level CloudTrail and solution defined CloudTrail are enabled, multiple trails will be created
Default: true
security object required

Control Tower Landing Zone Security Configuration

Configure security settings and access controls for the AWS Control Tower Landing Zone deployment. This configuration manages identity and access management integration with AWS services. ### Important Considerations

  • Identity Center access affects how users authenticate to AWS accounts in the organization
  • When enabled, Control Tower automatically configures permission sets and account assignments
  • Disabling may impact existing user access patterns and require manual IAM configuration
  • Changes to this configuration may trigger a Control Tower Landing Zone update

Usage Example

yaml security: enableIdentityCenterAccess: true

1 nested properties
enableIdentityCenterAccess boolean required

Identity Center Access (Required)

When enabled, AWS Control Tower sets up AWS account access with IAM Identity Center.

Default: false
version string required

Landing Zone Version (Required)

Considerations

  • Most recent version required for landing zone updates or resets
  • Updates or resets will occur when drift is detected or any configuration change
  • If the solution needs to perform an update or reset and the version is not the most recent, the solution will fail
accountAutoEnrollment boolean

Account Auto-Enrollment (Optional)

Enables automatic enrollment of accounts when moved between organizational units (OUs). When enabled, accounts moved into or between registered OUs automatically receive baseline resources and control configurations from the destination OU without creating inheritance drift.

Default: false
IControlTowerLandingZoneLoggingConfig object

AWS Control Tower Landing Zone Logging Configuration

Logging configuration for the landing zone.

Key Features

  • Log Retention: Configure log retention time
  • Organization-Level CloudTrail: Enable/Disable organization-level CloudTrail

Usage Example

yaml logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true

accessLoggingBucketRetentionDays number required

Access Logs Retention Time (Required)

Retention time, in days, of the bucket access logs

Default: 365
loggingBucketRetentionDays number required

Bucket Retention Configuration (Required)

Retention time, in days, of the Amazon S3 log archive bucket

Default: 365
organizationTrail boolean required

Organization-Level CloudTrail (Required)

Whether or not to enable organization-level CloudTrail.

Important Considerations

  • Organization-level CloudTrail is different than the CloudTrail deployed by the solution
  • If both organization-level CloudTrail and solution defined CloudTrail are enabled, multiple trails will be created
Default: true
IControlTowerLandingZoneSecurityConfig object

Control Tower Landing Zone Security Configuration

Configure security settings and access controls for the AWS Control Tower Landing Zone deployment. This configuration manages identity and access management integration with AWS services. ### Important Considerations

  • Identity Center access affects how users authenticate to AWS accounts in the organization
  • When enabled, Control Tower automatically configures permission sets and account assignments
  • Disabling may impact existing user access patterns and require manual IAM configuration
  • Changes to this configuration may trigger a Control Tower Landing Zone update

Usage Example

yaml security: enableIdentityCenterAccess: true

enableIdentityCenterAccess boolean required

Identity Center Access (Required)

When enabled, AWS Control Tower sets up AWS account access with IAM Identity Center.

Default: false
ICostAndUsageReportConfig object

Cost and Usage Report Configuration

Configuration for AWS Cost and Usage Reports (CUR) that provides comprehensive cost and usage data for your AWS account. These reports are delivered to an S3 bucket and can be used for detailed cost analysis and billing insights.

Key Features

  • Flexible Reporting: Configure time granularity from hourly to monthly
  • Multiple Formats: Support for CSV, text, and Parquet formats with various compression options
  • Data Integration: Generate manifests for integration with Amazon Redshift, QuickSight, and Athena
  • Lifecycle Management: Configure S3 lifecycle rules for cost optimization
  • Version Control: Choose between creating new reports or overwriting existing ones

Usage Example

yaml costAndUsageReport: compression: Parquet format: Parquet reportName: accelerator-cur s3Prefix: cur timeUnit: DAILY refreshClosedReports: true reportVersioning: CREATE_NEW_REPORT lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX

compression string required

Compression Format (Required)

The compression format that AWS uses for the report files.

Example yaml compression: Parquet

format string required

Report Format (Required)

The format that AWS saves the report in.

Example yaml format: Parquet

refreshClosedReports boolean required

Refresh Closed Reports (Required)

Whether AWS should update your reports after they have been finalized if AWS detects charges related to previous months. These charges can include refunds, credits, or support fees.

When to Enable

  • Enable if you need the most accurate historical data
  • Enable if you frequently receive refunds or credits
  • Enable for compliance and auditing requirements

When to Disable

  • Disable if you prefer immutable historical reports
  • Disable to reduce processing overhead

Example yaml refreshClosedReports: true

reportName string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
reportVersioning string required

Report Versioning (Required)

Whether AWS should overwrite the previous version of each report or deliver the report in addition to the previous versions.

Available Options

  • CREATE_NEW_REPORT: Creates a new report file for each delivery (recommended)
  • OVERWRITE_REPORT: Overwrites the previous report file

Considerations

  • CREATE_NEW_REPORT provides better audit trail and version history
  • OVERWRITE_REPORT uses less storage but loses historical versions

Example yaml reportVersioning: CREATE_NEW_REPORT

s3Prefix string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
timeUnit string required

Time Unit (Required)

The granularity of the line items in the report. This determines how frequently the report data is aggregated.

Available Options

  • HOURLY: Hourly granularity (most detailed, higher costs)
  • DAILY: Daily granularity (recommended for most use cases)
  • MONTHLY: Monthly granularity (least detailed, lower costs)

Cost Considerations

  • Hourly reports are more expensive but provide the most detail
  • Daily reports offer a good balance of detail and cost
  • Monthly reports are the most cost-effective but least granular

Example yaml timeUnit: DAILY

additionalArtifacts string[]

Additional Artifacts (Optional)

A list of manifests that AWS creates for this report to enable integration with other AWS analytics services.

Available Artifacts

  • REDSHIFT: Creates manifest files for Amazon Redshift integration
  • QUICKSIGHT: Creates manifest files for Amazon QuickSight integration
  • ATHENA: Creates manifest files for Amazon Athena integration

Example yaml additionalArtifacts: - ATHENA - QUICKSIGHT

additionalSchemaElements NonEmptyString[]

Additional Schema Elements (Optional)

Additional content that AWS includes in the report, such as individual resource IDs. These elements provide more granular data for detailed cost analysis.

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configuration for S3 bucket lifecycle rules to manage the cost and storage of your Cost and Usage Reports over time.

Key Benefits

  • Automatically transition older reports to cheaper storage classes
  • Set expiration policies to delete old reports
  • Optimize storage costs for long-term report retention

Example yaml lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 expiration: 2555 # 7 years transitions: - storageClass: STANDARD_IA transitionAfter: 30 - storageClass: GLACIER transitionAfter: 365 - storageClass: DEEP_ARCHIVE transitionAfter: 1095 # 3 years

ICustomS3ResourceAndKmsPolicyOverridesConfig object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

kmsPolicy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
s3Policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
ICustomS3ResourcePolicyOverridesConfig object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
IDefaultEventBusConfig object

Default Event Bus Configuration

Define policies for the default event bus.

Example yaml defaultEventBus: policy: path-to-my-policy

deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

policy string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
IDeploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

IElbLogBucketConfig object

ELB Log Bucket Configuration

Configuration for the ELB log bucket used to store Elastic Load Balancer access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Regional Deployment: Deploy buckets in each operating region

Example yaml elbLogBucket: lifecycleRules: - enabled: true id: ElbLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: elb-logs-bucket applyAcceleratorManagedBucketPolicy: true

customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

1 nested properties
policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the ELB log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: ElbLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/elb-log-policy.json - policy: s3-policies/cross-account-access.json

IExternalLandingZoneResourcesConfig object

External Landing Zone Resources Configuration

Used for importing resources from an Amazon Secure Environment Accelerator (ASEA) environment into the LZA.

Example yaml externalLandingZoneResourcesConfig: importExternalLandingZoneResources: true

acceleratorName string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
acceleratorPrefix string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importExternalLandingZoneResources boolean required

Import External Landing Zone Resources (Required)

Setting this flag indicates that this is an Amazon Secure Environment Accelerator (ASEA) environment and imports ASEA resources to the LZA.

mappingFileBucket string

Mapping File Bucket (Optional)

The name of the bucket that contains the mapping file.

IGlobalConfig object

Global Configuration Interface

The global configuration defines foundational settings that apply across your entire Landing Zone Accelerator deployment. This configuration establishes core operational parameters, security baselines, and service integrations.

Overview

The global configuration serves as the central control plane for:

  • Regional Deployment: Define home region and enabled regions for multi-region deployments
  • Security & Compliance: Configure logging, encryption, and governance controls
  • Service Integration: Enable AWS Control Tower, centralized logging, and monitoring
  • Resource Management: Set quotas, budgets, and operational parameters

Key Features

  • Multi-Region Support: Deploy across multiple AWS regions with centralized management
  • Control Tower Integration: Seamless integration with AWS Control Tower for governance
  • Centralized Logging: Comprehensive logging strategy with CloudTrail, CloudWatch, and S3
  • Security Baseline: Encryption, access controls, and compliance monitoring
  • Cost Management: Budgets, cost reports, and service quota management
  • Operational Excellence: Backup strategies, SNS notifications, and metadata collection

Usage Example


managementAccountAccessRole: AWSControlTowerExecution cloudwatchLogRetentionInDays: 365

controlTower:   enable: true   landingZone:     version: '3.3'     logging:       loggingBucketRetentionDays: 365       organizationTrail: true     security:       enableIdentityCenterAccess: true

logging:   account: LogArchive   centralizedLoggingRegion: us-east-1   cloudtrail:     enable: true     organizationTrail: true   sessionManager:     sendToCloudWatchLogs: true     sendToS3: true   cloudwatchLogs:     enable: true     encryption:       useCMK: true

reports:   costAndUsageReport:     compression: Parquet     format: Parquet     reportName: accelerator-cur     timeUnit: DAILY   budgets:     - name: monthly-budget       type: COST       amount: 1000       timeUnit: MONTHLY

snsTopics:   deploymentTargets:     organizationalUnits:       - Root   topics:     - name: SecurityAlerts       emailAddresses:         - [email protected] ```
cloudwatchLogRetentionInDays number required

CloudWatch Log Retention (Required)

The retention period, specified in days, is applied to all CloudWatch log groups created by the LZA. Additionally, this retention period will be applied to any pre-existing CloudWatch log group with a shorter retention period.

Example Scenarios

Scenario 1: If cloudWatchRetentionInDays is set to 365, and create a new CloudWatch log group with a 730-day retention period, the LZA will update the log group to have a 365-day retention period.

Scenario 2: If cloudWatchRetentionInDays is set to 365, and there is an existing CloudWatch log group with a 730-day retention period, the log group will not be updated by the LZA.

Scenario 3: If cloudWatchRetentionInDays is set to 365, and there is an existing CloudWatch log group with a 30-day retention period, the LZA will update the log group to have a 365-day retention period.

controlTower object required

AWS Control Tower Configuration

AWS Control Tower provides a prescriptive way to set up and govern a secure, multi-account AWS environment based on best practices. This configuration enables and manages Control Tower Landing Zone deployment alongside the Landing Zone Accelerator.

Key Features

  • Landing Zone Management: Configure and manage Control Tower Landing Zone settings
  • Guardrail Controls: Enable additional strongly recommended and elective controls
  • Identity Center Integration: Seamless integration with AWS IAM Identity Center
  • Logging Configuration: Centralized logging with configurable retention policies

Configuration Structure

yaml # global-config.yaml controlTower: enable: true landingZone: version: '3.3' logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true security: enableIdentityCenterAccess: true controls: - identifier: AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK enable: true deploymentTargets: organizationalUnits: - SecureWorkloads - identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK enable: true deploymentTargets: organizationalUnits: - Workloads

Best Practices

  1. Version Management: Always specify the latest available Landing Zone version 2. Control Deployment: Enable controls in batches of 10 or fewer to avoid throttling 3. Organizational Units: Align control deployment with your OU structure 4. Logging Retention: Set appropriate retention periods based on compliance requirements 5. Identity Center: Enable Identity Center access for centralized user management

Important Considerations

  • Control Tower requires the three mandatory accounts: Management, Audit, and Log Archive
  • Some controls cannot be deployed to the Security OU
  • Control Tower operations are limited to 10 concurrent operations
  • Landing Zone updates require the latest available version
3 nested properties
enable boolean required

Enable Control Tower (Required)

Controls whether AWS Control Tower Landing Zone is enabled for the deployment. When enabled, the accelerator ensures the account configuration includes the three mandatory Control Tower accounts.

Required Accounts

When Control Tower is enabled, these accounts must be defined in accounts-config.yaml:

  • Management Account: Primary account for organizational management and billing
  • Log Archive Account: Centralized logging and log retention
  • Audit Account: Security auditing and compliance monitoring

Prerequisites

  • AWS Organizations must be enabled in the management account
  • All features must be enabled in AWS Organizations
  • The management account must have appropriate permissions
  • Required service-linked roles must be created

# Disable Control Tower (standalone LZA deployment) enable: false ```

Control Tower Guardrails (Optional)

Configuration for additional Control Tower guardrails (controls) beyond the mandatory ones. Allows enablement of strongly recommended and elective controls across organizational units.

Control Types

  • Mandatory: Automatically enabled by Control Tower (cannot be disabled)
  • Strongly Recommended: Best practice controls that should be enabled
  • Elective: Additional controls for specific compliance requirements

Deployment Considerations

  • Concurrency Limit: Maximum 10 concurrent control operations
  • Batch Processing: Deploy controls in batches to avoid throttling
  • OU Restrictions: Some controls cannot be deployed to Security OU
  • Regional Scope: Controls can be region-specific or global

Usage Examples


  # Elective control with regional scope   - identifier: AWS-GR_EC2_INSTANCE_IMDSv2_CHECK     enable: true     regions:       - us-east-1       - us-west-2     deploymentTargets:       organizationalUnits:         - Production

  # Global control using opaque identifier   - identifier: m7a5gbdf08wg2o0en010mkng     enable: true     deploymentTargets:       organizationalUnits:         - Infrastructure ```

**Best Practices**

- Enable controls gradually in batches of 10 or fewer
- Test controls in non-production OUs first
- Review control documentation for OU compatibility
- Monitor control status and compliance in Control Tower console
landingZone object

Control Tower Landing Zone Configuration

Configure the Control Tower Landing Zone's settings.

Key Features

  • Specify the Landing Zone Version
  • Customize log retention to meet regulatory compliance
  • Manage Identity Center Access for Control Tower Landing Zone

Example yaml landingZone: version: '3.3' logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true security: enableIdentityCenterAccess: true

4 nested properties
logging object required

AWS Control Tower Landing Zone Logging Configuration

Logging configuration for the landing zone.

Key Features

  • Log Retention: Configure log retention time
  • Organization-Level CloudTrail: Enable/Disable organization-level CloudTrail

Usage Example

yaml logging: loggingBucketRetentionDays: 365 accessLoggingBucketRetentionDays: 365 organizationTrail: true

security object required

Control Tower Landing Zone Security Configuration

Configure security settings and access controls for the AWS Control Tower Landing Zone deployment. This configuration manages identity and access management integration with AWS services. ### Important Considerations

  • Identity Center access affects how users authenticate to AWS accounts in the organization
  • When enabled, Control Tower automatically configures permission sets and account assignments
  • Disabling may impact existing user access patterns and require manual IAM configuration
  • Changes to this configuration may trigger a Control Tower Landing Zone update

Usage Example

yaml security: enableIdentityCenterAccess: true

version string required

Landing Zone Version (Required)

Considerations

  • Most recent version required for landing zone updates or resets
  • Updates or resets will occur when drift is detected or any configuration change
  • If the solution needs to perform an update or reset and the version is not the most recent, the solution will fail
accountAutoEnrollment boolean

Account Auto-Enrollment (Optional)

Enables automatic enrollment of accounts when moved between organizational units (OUs). When enabled, accounts moved into or between registered OUs automatically receive baseline resources and control configurations from the destination OU without creating inheritance drift.

Default: false
enabledRegions string[] required

Enabled Regions (Required)

List of AWS Regions where accelerator will be deployed. {@link IGlobalConfig.homeRegion Home region } must be part of this list.

Example

yaml enabledRegions: - us-east-1 - us-west-2

homeRegion string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
logging object required

Global Logging Configuration

Example yaml logging: account: LogArchive centralizedLoggingRegion: us-east-1 cloudtrail: enable: false organizationTrail: false sessionManager: sendToCloudWatchLogs: false sendToS3: true

9 nested properties
account string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
cloudtrail object required

Cloudtrail Configuration

Used to enable and configure CloudTrail for the LZA deployment.

Example yaml cloudtrail: enable: true organizationTrail: true organizationTrailSettings: multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false accountTrails: [] lifecycleRules: []

5 nested properties
enable boolean required

Enable (Required)

Whether or not to enable CloudTrail. This setting alone does not create any trails. Enabling {@link ICloudTrailConfig.organizationTrail } will create an organization-level trail. Additionally, you can setup account-level trails.

organizationTrail boolean required

Organization Trail (Required)

When enabled alongside {@link ICloudTrailConfig.enable } , LZA will create an organization-level trail.

Account Trails (Optional)

Configurations for account-level trails to be created by the LZA deployment.

lifecycleRules ILifecycleRule[]

S3 Log Bucket Lifecycle Rules (Optional)

Optional lifecycle rules for the S3 log bucket

organizationTrailSettings object

Cloud Trail Settings Configuration

Additional settings used to configure an organization-level trail.

Example yaml multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false

sessionManager object required

SessionManager Configuration

Example yaml sessionManager: sendToCloudWatchLogs: true sendToS3: true excludeRegions: [] excludeAccounts: [] lifecycleRules: [] attachPolicyToIamRoles: - EC2-Default-SSM-AD-Role

6 nested properties
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether sending SessionManager logs to CloudWatch logs is enabled.

sendToS3 boolean required

Send to S3 (Required)

Determines whether sending SessionManager logs to S3 is enabled. When enabled, the accelerator will send the session manager logs to the central log bucket in the LogArchive account.

attachPolicyToIamRoles string[]

Attach Policy to IAM Roles (Optional)

A list of IAM Ec2 roles that the Session Manager access policy should be attached to.

excludeAccounts string[]

Excluded Accounts (Optional)

List of AWS Account names to be excluded from this SessionManager configuration

excludeRegions string[]

Excluded Regions (Optional)

List of AWS Region names to be excluded from this SessionManager configuration

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Defines the lifecycle rules for the S3 bucket containing the logs.

accessLogBucket object

Access Log Bucket Configuration

Configuration for the access log bucket used to store S3 server access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Deployment Targeting: Control which accounts and regions receive the configuration

Example yaml accessLogBucket: enable: true deploymentTargets: organizationalUnits: - Root s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json lifecycleRules: - enabled: true id: AccessLifecycle-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX importedBucket: name: existing-access-log-bucket-${ACCOUNT_ID}-${REGION} applyAcceleratorManagedBucketPolicy: true

6 nested properties
customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

enable boolean

Enable Access Log Bucket (Optional)

Controls whether the S3 access logging bucket is created by the solution. When undefined, the solution will create access log buckets automatically.

Important Notes

  • Access log buckets are always created for critical solution buckets (installer, pipeline, central logs, assets)
  • Use deploymentTargets to control which accounts and regions receive this configuration
  • This setting primarily affects additional access log buckets beyond the core solution buckets
Default: true
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the access log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: AccessLifecycle-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/access-log-policy.json - policy: s3-policies/cross-account-access.json

assetBucket object

Asset Bucket Configuration

Configuration for the asset bucket.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml assetBucket: s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: aws-accelerator-assets applyAcceleratorManagedBucketPolicy: true

4 nested properties
customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

importedBucket object

Imported S3 Bucket Configuration (Customer Managed Encryption)

Configuration for importing existing S3 buckets with customer-managed KMS encryption (SSE-KMS). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that uses or should use customer-managed KMS keys for encryption.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • KMS Key Management: Option to create and manage KMS keys for the bucket
  • Policy Management: Optional application of accelerator-managed policies
  • Encryption Enhancement: Upgrade existing buckets to use customer-managed keys

Usage Example

yaml importedBucket: name: existing-sensitive-data-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: true

kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value.
  • When importing an assets bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Assets Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.
s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

**Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json - policy: s3-policies/policy2.json

centralLogBucket object

Central Log Bucket Configuration

Configuration for the central log bucket used to store centralized logs from across the organization.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml centralLogBucket: lifecycleRules: - enabled: true id: CentralLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json kmsResourcePolicyAttachments: - policy: kms-policies/policy1.json importedBucket: name: central-log-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: false

5 nested properties
customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket encryption key policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value
  • When importing a central logs bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Central Logs Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.

Example yaml kmsResourcePolicyAttachments: - policy: kms-policies/central-log-key-policy.json

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the central log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: CentralLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/central-log-policy.json - policy: s3-policies/cross-account-access.json

centralizedLoggingRegion string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
cloudwatchLogs object

CloudWatch Logs Configuration

Key Features

  • Configure logs encryption
  • Manage Subscriptions for CloudWatch Logs
  • Enable CloudWatch Logs replication

Example yaml cloudwatchLogs: dynamicPartitioning: path/to/filter.json # default is true, if undefined this is set to true # if set to false, no replication is performed which is useful in test or temporary environments enable: true encryption: useCMK: true deploymentTargets: organizationalUnits: - Root replaceLogDestinationArn: arn:aws:logs:us-east-1:111111111111:destination:ReplaceDestination exclusions: # in these OUs do not do log replication - organizationalUnits: - Research - ProofOfConcept excludeAll: true # in these accounts exclude pattern testApp - accounts: - WorkloadAccount1 - WorkloadAccount1 logGroupNames: - testApp* # in these accounts exclude logs in specific regions - accounts: - WorkloadAccount1 - WorkloadAccount1 regions: - us-west-2 - eu-west-1 logGroupNames: - pattern1* dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

12 nested properties
dataProtection object

CloudWatch Log Data Protection Configuration

Allows the enablement of CloudWatch Logs data protection.

Example yaml dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

dynamicPartitioning string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
dynamicPartitioningByAccountId boolean

Dynamic Partitioning by Account ID (Optional)

Whether or not the ID of the account that produced the CloudWatch Logs should be used in the partitioning strategy of the logs. For example: s3://<central-logs-bucket>/CloudWatchLogs/<account id>/.

Use With Dynamic Partitioning If dynamicPartitioning is also being used, the Account ID will come before the supplied s3 prefix. For example the following would result in s3://<central-logs-bucket>/CloudWatchLogs/<account id>/s3-prefix/ being used as the partition.

{ "logGroupPattern": "LogGroupName", "s3Prefix": "s3-prefix" }

enable boolean

Enable Replication (Optional)

Whether or not to enable CloudWatch Logs replication.

Default: true
encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

Exclusions (Optional)

Configure log groups to exclude from replication.

firehose object

CloudWatch Firehose Configuration

Configuration for the CloudWatch Logs Firehose.

Example yaml logging: cloudwatchLogs: firehose: fileExtension: json.gz lambdaProcessor: retries: 3 bufferSize: 0.2 bufferInterval: 60

kinesis object

CloudWatch Kinesis Configuration

Configuration for CloudWatch Log's Kinesis.

Key Features

  • Real-time Processing: Stream CloudWatch Logs data in real-time for immediate analysis
  • Scalable Throughput: Configure capacity based on your data volume requirements
  • Flexible Retention: Store data for 24 hours to 365 days for replay and reprocessing
  • Cost Optimization: Choose between on-demand and provisioned capacity modes
  • Integration Ready: Seamlessly integrates with AWS analytics and processing services

Example yaml logging: cloudwatchLogs: kinesis: streamingMode: PROVISIONED shardCount: 5 retention: 240

organizationIdConditionSupported boolean

Organization ID Condition (Optional)

Whether or not a list of account IDs is used instead of a principal organization condition in the CloudWatch Logs destination access policy. Useful in partitions where the principal organization condition is not supported.

replaceLogDestinationArn string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
skipBulkUpdate object

Skip Bulk Update Configuration

Configuration to skip the bulk update of CloudWatch Logs. Warning: This configuration option could cause CloudWatch log group configurations to become out of sync with the global configuration. Only enable this option if you fully understand the implications.

subscription object

CloudWatch Subscription Configuration

Configuration for the CloudWatch logs subscription

Example yaml logging: cloudwatchLogs: subscription: type: ACCOUNT selectionCriteria: 'LogGroupName NOT IN [ /aws/lambda/AWSAccelerator-FirehoseRecordsProcessor development AppA]' overrideExisting: true

elbLogBucket object

ELB Log Bucket Configuration

Configuration for the ELB log bucket used to store Elastic Load Balancer access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Regional Deployment: Deploy buckets in each operating region

Example yaml elbLogBucket: lifecycleRules: - enabled: true id: ElbLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: elb-logs-bucket applyAcceleratorManagedBucketPolicy: true

4 nested properties
customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the ELB log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: ElbLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/elb-log-policy.json - policy: s3-policies/cross-account-access.json

managementAccountAccessRole string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
acceleratorMetadata object

Accelerator Metadata Configuration

Used to enable accelerator metadata logs.

Example yaml acceleratorMetadata: enable: true account: Logging readOnlyAccessRoleArns: - arn:aws:iam::111111111111:role/test-access-role

3 nested properties
account string required

Account (Required)

The account to save the logs in. A new S3 Bucket will be created for this purpose.

enable boolean required

Enable (Required)

Determines whether or not accelerator metadata is captured

readOnlyAccessRoleArns string[] required

Read-Only Access Role ARNs (Required)

List of role arns that should have read-only access to the logs.

acceleratorSettings object

Accelerator Settings Configuration

Contains additional configuration settings for the Accelerator. Allows for the configuration of the maximum concurrent stacks that can be processed at a given time.

Example yaml acceleratorSettings: maxConcurrentStacks: 100

1 nested properties
maxConcurrentStacks number

Max Concurrent Stacks (Optional)

Set the maximum number of concurrent stacks that can be processed at a time while transpiling the application.

Default: 100
backup object

Backup Configuration

Enables the setup of Backups.

Examples yaml backup: vaults: - name: BackupVault deploymentTargets: organizationalUnits: - Root

1 nested properties
vaults IVaultConfig[] required

Vaults (Required)

Configuration for Backup Vaults.

cdkOptions object

CDK Options

Manage the behavior of CDK within LZA.

Key Features

  • Centralize Buckets: Determines whether CDK will use a single, centralized S3 bucket per region
  • Deployment Role Management: Determines whether CDK will use a custom execution role for CDK operations

Example yaml cdkOptions: centralizeBuckets: true useManagementAccessRole: true deploymentMethod: 'direct'

6 nested properties
centralizeBuckets boolean required

Centralize Buckets (Required)

When the accelerator deploys resources using the AWS CDK, assets are first built and stored in S3. By default, the S3 bucket is located within the deployment target account. Enabling this feature will utilize an S3 bucket within the management account instead.

useManagementAccessRole boolean required

Use Management Access Role (Required)

Indicates whether CDK operations use the IAM role specified in the {@link IGlobalConfig.managementAccountAccessRole managementAccountAccessRole option in the global config } rather than the default roles created by CDK.

customDeploymentRole string

Custom Deployment Role (Optional)

Create a deployment role in all accounts in the home region with the specified name. This role is used by the LZA for all CDK deployment tasks.

deploymentMethod string

Deployment Method (Optional)

Manage the CDK deployment method for the LZA

Options

  • 'direct': Default used by the LZA
  • 'change-set': Provides additional progress information, can increase deployment time
Default: "direct"
Values: "change-set" "direct"
forceBootstrap boolean

Force Bootstrap (Optional)

Forces the Accelerator to deploy the bootstrapping stack and circumvent the SSM parameter check. This option is needed when adding or removing a custom deployment role

Default: false
skipStaticValidation boolean

** Skip Static Validation** (Optional)

When enabled, the LZA pipeline will skip the static config validation step during the build phase. Helpful in cases where the config validator incorrectly throws errors for a valid configuration.

centralRootUserManagement object

Central Root User Management Configuration

Configure how root management is controlled within the organization.

Example yaml centralRootUserManagement: enable: true capabilities: rootCredentialsManagement: true allowRootSessions: true

2 nested properties
capabilities object required

Root User Management Capabilities Configuration

Determines how root user management is controlled within the organization.

2 nested properties
allowRootSessions boolean required

Allow Root Sessions (Required)

Determines whether root user sessions are allowed.

rootCredentialsManagement boolean required

Root Credentials Management (Required)

Determines whether root user credentials are managed by the organization.

enable boolean required

Enable (Required)

Determines whether root user management is enabled for the organization.

centralizeCdkBuckets object

Centralized CDK Buckets Configuration**

1 nested properties
enable boolean required
defaultEventBus object

Default Event Bus Configuration

Define policies for the default event bus.

Example yaml defaultEventBus: policy: path-to-my-policy

2 nested properties
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

policy string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
enableOptInRegions boolean

Enable opt-in Regions (Optional)

Whether or not to automatically enable opt-in regions configured for all LZA managed accounts

When enableOptInRegions is set to true, it will only enable the opt-in regions that are also listed in the {@link IGlobalConfig.enabledRegions enabledRegions } configuration.

Default: false
externalLandingZoneResources object

External Landing Zone Resources Configuration

Used for importing resources from an Amazon Secure Environment Accelerator (ASEA) environment into the LZA.

Example yaml externalLandingZoneResourcesConfig: importExternalLandingZoneResources: true

4 nested properties
acceleratorName string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
acceleratorPrefix string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importExternalLandingZoneResources boolean required

Import External Landing Zone Resources (Required)

Setting this flag indicates that this is an Amazon Secure Environment Accelerator (ASEA) environment and imports ASEA resources to the LZA.

mappingFileBucket string

Mapping File Bucket (Optional)

The name of the bucket that contains the mapping file.

lambda object

Lambda Configuration

Customize the encryption used for lambda environment variables.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

1 nested properties
encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

AWS Service Quota Limit Configuration

Enables the creation of service quota increases for accounts within the LZA deployment.

Considerations Service quotas define the maximum number of service resources or operations for your AWS account. Service quota increases are processed asynchronously and may require approval. Some quotas require AWS Support cases for increases beyond certain thresholds. Quotas are account-specific and region-specific (where applicable). You can find service and quota codes in the AWS Service Quotas console.

For more information, see:

Example ```yaml limits: # Increase Lambda concurrent executions - serviceCode: lambda quotaCode: L-B99A9384 desiredValue: 1000 deploymentTargets: organizationalUnits: - Root regions: - us-west-2

Increase IAM roles per account (global quota - no regions needed) - serviceCode: iam quotaCode: L-4019AD8B desiredValue: 15 deploymentTargets: accounts: - SharedServices

Increase VPCs per region - serviceCode: vpc quotaCode: L-F678F1CE desiredValue: 20 deploymentTargets: organizationalUnits: - Security - Infrastructure regions: - us-east-1 - us-west-2

Increase Route 53 Resolver rules per region - serviceCode: route53resolver quotaCode: L-4A669CC0 desiredValue: 10 deploymentTargets: organizationalUnits: - Infrastructure ```

reports object

Reports Configuration

Used to configure reports for the LZA deployment.

Key Features

  • Configure cost and usage reports
  • Configure budget reports

Example yaml costAndUsageReport: compression: Parquet format: Parquet reportName: accelerator-cur s3Prefix: cur timeUnit: DAILY refreshClosedReports: true reportVersioning: CREATE_NEW_REPORT lifecycleRules: storageClass: DEEP_ARCHIVE enabled: true multiPart: 1 expiration: 1825 deleteMarker: false nonCurrentExpiration: 366 transitionAfter: 365 budgets: - name: accel-budget timeUnit: MONTHLY type: COST amount: 2000 includeUpfront: true includeTax: true includeSupport: true includeSubscription: true includeRecurring: true includeOtherSubscription: true includeDiscount: true includeCredit: false includeRefund: false useBlended: false useAmortized: false unit: USD notifications: - type: ACTUAL thresholdType: PERCENTAGE threshold: 90 comparisonOperator: GREATER_THAN subscriptionType: EMAIL address: [email protected]

2 nested properties

Budget Reports (Optional)

Configuration for budget reports.

Example yaml budgets: - name: accel-budget timeUnit: MONTHLY type: COST amount: 2000 includeUpfront: true includeTax: true includeSupport: true includeSubscription: true includeRecurring: true includeOtherSubscription: true includeDiscount: true includeCredit: false includeRefund: false useBlended: false useAmortized: false unit: USD notifications: - type: ACTUAL thresholdType: PERCENTAGE threshold: 90 comparisonOperator: GREATER_THAN subscriptionType: EMAIL address: [email protected]

costAndUsageReport object

Cost and Usage Report Configuration

Configuration for AWS Cost and Usage Reports (CUR) that provides comprehensive cost and usage data for your AWS account. These reports are delivered to an S3 bucket and can be used for detailed cost analysis and billing insights.

Key Features

  • Flexible Reporting: Configure time granularity from hourly to monthly
  • Multiple Formats: Support for CSV, text, and Parquet formats with various compression options
  • Data Integration: Generate manifests for integration with Amazon Redshift, QuickSight, and Athena
  • Lifecycle Management: Configure S3 lifecycle rules for cost optimization
  • Version Control: Choose between creating new reports or overwriting existing ones

Usage Example

yaml costAndUsageReport: compression: Parquet format: Parquet reportName: accelerator-cur s3Prefix: cur timeUnit: DAILY refreshClosedReports: true reportVersioning: CREATE_NEW_REPORT lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX

10 nested properties
compression string required

Compression Format (Required)

The compression format that AWS uses for the report files.

Example yaml compression: Parquet

format string required

Report Format (Required)

The format that AWS saves the report in.

Example yaml format: Parquet

refreshClosedReports boolean required

Refresh Closed Reports (Required)

Whether AWS should update your reports after they have been finalized if AWS detects charges related to previous months. These charges can include refunds, credits, or support fees.

When to Enable

  • Enable if you need the most accurate historical data
  • Enable if you frequently receive refunds or credits
  • Enable for compliance and auditing requirements

When to Disable

  • Disable if you prefer immutable historical reports
  • Disable to reduce processing overhead

Example yaml refreshClosedReports: true

reportName string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
reportVersioning string required

Report Versioning (Required)

Whether AWS should overwrite the previous version of each report or deliver the report in addition to the previous versions.

Available Options

  • CREATE_NEW_REPORT: Creates a new report file for each delivery (recommended)
  • OVERWRITE_REPORT: Overwrites the previous report file

Considerations

  • CREATE_NEW_REPORT provides better audit trail and version history
  • OVERWRITE_REPORT uses less storage but loses historical versions

Example yaml reportVersioning: CREATE_NEW_REPORT

s3Prefix string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
timeUnit string required

Time Unit (Required)

The granularity of the line items in the report. This determines how frequently the report data is aggregated.

Available Options

  • HOURLY: Hourly granularity (most detailed, higher costs)
  • DAILY: Daily granularity (recommended for most use cases)
  • MONTHLY: Monthly granularity (least detailed, lower costs)

Cost Considerations

  • Hourly reports are more expensive but provide the most detail
  • Daily reports offer a good balance of detail and cost
  • Monthly reports are the most cost-effective but least granular

Example yaml timeUnit: DAILY

additionalArtifacts string[]

Additional Artifacts (Optional)

A list of manifests that AWS creates for this report to enable integration with other AWS analytics services.

Available Artifacts

  • REDSHIFT: Creates manifest files for Amazon Redshift integration
  • QUICKSIGHT: Creates manifest files for Amazon QuickSight integration
  • ATHENA: Creates manifest files for Amazon Athena integration

Example yaml additionalArtifacts: - ATHENA - QUICKSIGHT

additionalSchemaElements NonEmptyString[]

Additional Schema Elements (Optional)

Additional content that AWS includes in the report, such as individual resource IDs. These elements provide more granular data for detailed cost analysis.

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configuration for S3 bucket lifecycle rules to manage the cost and storage of your Cost and Usage Reports over time.

Key Benefits

  • Automatically transition older reports to cheaper storage classes
  • Set expiration policies to delete old reports
  • Optimize storage costs for long-term report retention

Example yaml lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 expiration: 2555 # 7 years transitions: - storageClass: STANDARD_IA transitionAfter: 30 - storageClass: GLACIER transitionAfter: 365 - storageClass: DEEP_ARCHIVE transitionAfter: 1095 # 3 years

s3 object

S3 Global Configuration

Manage S3 settings for accounts managed by the LZA deployment. Configure the encryption settings for S3 buckets used throughout the deployment.

Example yaml s3: encryption: createCMK: true deploymentTargets: organizationalUnits: - Root

1 nested properties
encryption object

S3 Encryption Configuration

Configure encryption settings for S3 buckets deployed by the Landing Zone Accelerator. This configuration allows you to control whether AWS KMS Customer Managed Keys (CMKs) are used for S3 server-side encryption across your organization.

Key Features

  • Flexible Encryption: Choose between AWS KMS CMK or default S3 encryption
  • Targeted Deployment: Apply encryption settings to specific organizational units or accounts
  • Compliance Support: Helps meet regulatory requirements for data encryption at rest

Important Considerations

  • Always Encrypted Buckets: The following buckets always use CMK regardless of this setting: - LZA Installer bucket - CodePipeline artifact bucket - Solution-deployed CentralLogs bucket

Example yaml encryption: createCMK: true deploymentTargets: organizationalUnits: - Security - Production excludedAccounts: - Development

2 nested properties
createCMK boolean required

Create CMK (Required)

When enabled, the solution will create use AWS KMS CMK for S3 server-side encryption. The following buckets always use CMK regardless of this settings:

  • Installer bucket
  • Pipeline bucket
  • Solution-deployed CentralLogs bucket
Default: true
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

snsTopics object

SNS Configuration

Used to setup and configure SNS Topics within the LZA environment.

Example yaml snsTopics: deploymentTargets: organizationalUnits: - Root topics: - name: Security emailAddresses: - [email protected]

2 nested properties
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

topics ISnsTopicConfig[] required

SNS Topic Configuration (Required)

List of SNS Topics to be created by the solution.

sqs object

SQS Configuration

Configure SQS encryption for the solution.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

1 nested properties
encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

ssmInventory object

SSM Inventory Configuration

Enable SSM Inventory within the deployment.

Example yaml ssmInventoryConfig: enable: true deploymentTargets: organizationalUnits: - Infrastructure

2 nested properties
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

enable boolean required

Enable (Required)

Whether or not to enable SSM Inventory.

ssmParameters ISsmParametersConfig[]

SSM parameter configurations (Optional)

Create SSM parameters through the LZA. Parameters can be deployed to Organizational Units or Accounts through the use of deployment targets.

Example yaml ssmParameters: - deploymentTargets: organizationalUnits: - Workloads parameters: - name: WorkloadParameter path: /my/custom/path/variable value: 'MySSMParameterValue'

stackPolicy object

CloudFormation Stack Policy Configuration

The CloudFormation Stack Policy configuration determines how stack resources can be updated or modified during stack operations. When this value is not specified, any existing stack policies will remain in effect and unchanged. The behavior intentionally differs from typical LZA behavior, which assumes false, enabling organizations to manage and maintain stack policies independently through other mechanisms outside of LZA if preferred.

Example yaml stackPolicy: enable: true protectedTypes: - "AWS::EC2::InternetGateway" - "AWS::EC2::NatGateway" - "AWS::EC2::PrefixList" - "AWS::EC2::Route" - "AWS::EC2::RouteTable" - "AWS::EC2::SubnetRouteTableAssociation" - "AWS::EC2::TransitGateway" - "AWS::EC2::TransitGatewayPeeringAttachment" - "AWS::EC2::TransitGatewayRoute" - "AWS::EC2::TransitGatewayRouteTable" - "AWS::EC2::TransitGatewayRouteTableAssociation" - "AWS::EC2::TransitGatewayRouteTablePropagation" - "AWS::EC2::TransitGatewayVpcAttachment" - "AWS::EC2::VPC" - "AWS::EC2::VPCCidrBlock" - "AWS::EC2::VPCEndpoint" - "AWS::EC2::VPCGatewayAttachment" - "AWS::NetworkFirewall::Firewall" - "AWS::NetworkFirewall::LoggingConfiguration" - "AWS::RAM::ResourceShare"

2 nested properties
enable boolean required

Enable (Required)

Indicates whether stack policies are enabled for the organization. When enabled, specified resource types will be protected for Update:Replace and Update:Delete operations.

protectedTypes string[] required

Protected Types (Required)

A list of CloudFormation resource types that should be protected for Update:Replace and Update:Delete operations.

Example: yaml protectedTypes: - "AWS::EC2::InternetGateway" - "AWS::EC2::NatGateway"

tags ITag[]

Tags (Optional)

Global tags to be applied to all resources created by the solution.

Note LZA will not apply the tags to all resource types. Excluded types include Transit Gateway Route Tables and Route53 Resolver Endpoints.

Example yaml tags: - key: Environment value: Dev - key: ResourceOwner value: AcmeApp - key: CostCenter value: '123'

terminationProtection boolean

Termination Protection (Optional)

Whether or not termination protection should be enabled for this stack

useV2Stacks boolean

V2 Stacks (Optional)

Whether or not V2 Stacks should be enabled.

When enabled, LZA will place newly defined resources in separate CloudFormation stacks to prevent exceeding the 500 resource per stack limit. Pre-existing resources will be preserved in their original stacks.

Default: false
IImportedCustomerManagedEncryptionKeyBucketConfig object

Imported S3 Bucket Configuration (Customer Managed Encryption)

Configuration for importing existing S3 buckets with customer-managed KMS encryption (SSE-KMS). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that uses or should use customer-managed KMS keys for encryption.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • KMS Key Management: Option to create and manage KMS keys for the bucket
  • Policy Management: Optional application of accelerator-managed policies
  • Encryption Enhancement: Upgrade existing buckets to use customer-managed keys

Usage Example

yaml importedBucket: name: existing-sensitive-data-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: true

name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Default: false
createAcceleratorManagedKey boolean

Create Accelerator Managed KMS Key (Optional)

Controls whether the accelerator should create a new customer-managed KMS key and apply it to the imported bucket for encryption. When enabled, enhances bucket security with dedicated encryption key management.

Key Creation Process

When true:

  • Creates a new customer-managed KMS key specifically for this bucket
  • Applies accelerator-managed key policy with appropriate service permissions
  • Configures bucket to use the new key for server-side encryption
  • Integrates key permissions with enabled security and logging services

When false (default):

  • Preserves existing bucket encryption configuration
  • Uses current encryption method (S3-managed, existing KMS key, or none)
  • No new KMS key creation or encryption changes
  • Existing encryption settings remain unchanged

Important Warnings

Irreversible Change: Once the accelerator pipeline executes with this value set to true, changing it back to false will cause CloudFormation stack failures. The KMS key becomes a permanent part of the infrastructure.

Default: false
IImportedS3ManagedEncryptionKeyBucketConfig object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
ILambdaConfig object

Lambda Configuration

Customize the encryption used for lambda environment variables.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

ILifecycleRule object

S3 Bucket Lifecycle Rule Configuration

Defines lifecycle management rules for S3 buckets to automatically transition objects between storage classes and manage object expiration. Lifecycle rules help optimize storage costs and manage data retention policies.

Key Features

  • Cost Optimization: Automatically transition objects to cheaper storage classes
  • Data Management: Set expiration policies for automatic cleanup
  • Version Control: Manage current and non-current object versions separately
  • Prefix Filtering: Apply rules to specific object prefixes or entire buckets

Usage Example


  - enabled: true     id: ArchiveLifecycle     expiredObjectDeleteMarker: true     noncurrentVersionExpiration: 90     transitions:       - storageClass: DEEP_ARCHIVE         transitionAfter: 180 ```
abortIncompleteMultipartUpload number

Abort Incomplete Multipart Uploads (Optional)

Number of days after which incomplete multipart uploads are automatically aborted and cleaned up. This helps prevent storage costs from abandoned multipart uploads.

Benefits

  • Cost Control: Prevents charges for incomplete upload parts
  • Storage Cleanup: Automatically removes orphaned multipart data
  • Operational Hygiene: Maintains clean bucket state

Considerations

  • Set based on your typical upload patterns and file sizes
  • Consider network reliability and upload duration requirements
  • Balance between cost control and operational flexibility
enabled boolean

Rule Enabled (Optional)

Controls whether this lifecycle rule is active and enforced. Allows you to temporarily disable rules without removing them from the configuration.

Default: true
expiration number

Object Expiration (Optional)

Number of days after object creation when objects are permanently deleted from the bucket. This implements automatic data retention policies and helps manage storage costs for time-sensitive data.

Use Cases

  • Log Retention: Automatically delete old log files
  • Compliance: Enforce data retention policies
  • Cost Management: Remove data that's no longer needed
  • Regulatory Requirements: Meet data disposal requirements

Important Considerations

  • Irreversible: Expired objects are permanently deleted
  • Compliance: Ensure retention periods meet regulatory requirements
  • Business Needs: Consider future data access requirements
  • Backup Strategy: Ensure critical data is backed up before expiration
expiredObjectDeleteMarker boolean

Expired Object Delete Marker Cleanup (Optional)

Controls whether S3 automatically removes delete markers that have no non-current versions. This helps clean up versioned buckets and reduce storage costs from orphaned delete markers.

Benefits When Enabled

  • Cost Reduction: Eliminates charges for orphaned delete markers
  • Storage Optimization: Keeps bucket metadata clean
  • Operational Efficiency: Reduces clutter in versioned buckets
Default: false
id string

Rule Identifier (Optional)

Unique, human-readable name for the lifecycle rule within the bucket. Used for rule identification, management, and troubleshooting.

noncurrentVersionExpiration number

Non-Current Version Expiration (Optional)

Number of days after an object version becomes non-current when it should be permanently deleted. This manages storage costs for versioned buckets by cleaning up old object versions.

Considerations

  • Recovery Needs: Balance cost vs. ability to recover old versions
  • Compliance: Some regulations require version retention
  • Storage Costs: Non-current versions incur full storage charges
  • Access Patterns: Consider how often old versions are accessed
noncurrentVersionTransitions ITransition[]

Non-Current Version Transitions (Optional)

Array of transition rules that specify when non-current object versions should move to different storage classes. This optimizes costs for versioned buckets by moving old versions to cheaper storage.

Storage Class Optimization

Non-current versions are typically accessed less frequently than current versions, making them ideal candidates for cheaper storage classes.

prefix string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
transitions ITransition[]

Current Version Transitions (Optional)

Array of transition rules that specify when current objects should move to different storage classes. This implements cost optimization strategies based on data access patterns and age.

Cost Optimization Strategy

Design transitions based on your data access patterns:

  • Frequently Accessed: Keep in Standard storage
  • Infrequently Accessed: Transition to Standard-IA
  • Archive Data: Move to Glacier or Deep Archive
  • Long-term Retention: Use Deep Archive for lowest cost
ILoggingConfig object

Global Logging Configuration

Example yaml logging: account: LogArchive centralizedLoggingRegion: us-east-1 cloudtrail: enable: false organizationTrail: false sessionManager: sendToCloudWatchLogs: false sendToS3: true

account string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
cloudtrail object required

Cloudtrail Configuration

Used to enable and configure CloudTrail for the LZA deployment.

Example yaml cloudtrail: enable: true organizationTrail: true organizationTrailSettings: multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false accountTrails: [] lifecycleRules: []

5 nested properties
enable boolean required

Enable (Required)

Whether or not to enable CloudTrail. This setting alone does not create any trails. Enabling {@link ICloudTrailConfig.organizationTrail } will create an organization-level trail. Additionally, you can setup account-level trails.

organizationTrail boolean required

Organization Trail (Required)

When enabled alongside {@link ICloudTrailConfig.enable } , LZA will create an organization-level trail.

Account Trails (Optional)

Configurations for account-level trails to be created by the LZA deployment.

lifecycleRules ILifecycleRule[]

S3 Log Bucket Lifecycle Rules (Optional)

Optional lifecycle rules for the S3 log bucket

organizationTrailSettings object

Cloud Trail Settings Configuration

Additional settings used to configure an organization-level trail.

Example yaml multiRegionTrail: true globalServiceEvents: true managementEvents: true s3DataEvents: true lambdaDataEvents: true sendToCloudWatchLogs: true apiErrorRateInsight: false apiCallRateInsight: false

8 nested properties
apiCallRateInsight boolean required

API Call Rate Insight (Required)

Will enable CloudTrail Insights and enable the API Call Rate Insight

apiErrorRateInsight boolean required

API Error Rate Insight (Required)

Will enable CloudTrail insights and enable the API Error Rate Insight

globalServiceEvents boolean required

Global Service Events (Required)

For global services, events are delivered to any trail that includes global services and are logged in the us-east-1 region.

lambdaDataEvents boolean required

Lambda Data Events (Required)

Adds an Lambda Data Event Selector for filtering events that match Lambda operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
managementEvents boolean required

Management Events (Required)

Whether or not to log management events, or control plane operations. Management events can also include non-API events that occur in your account, such as a user logging in to the account. Enabling sets ReadWriteType.ALL.

multiRegionTrail boolean required

Multi-Region Trail (Required)

Determines whether or not this trail delivers log files from all regions to the account.

s3DataEvents boolean required

S3 Data Events (Required)

Adds an S3 Data Event Selector for filtering events that match S3 operations. These events provide insight into the resource operations performed on or within a resource. These are also known as data plane operations.

Considerations By default, this feature is enabled and will incur additional costs if enabled for your CloudTrail.

Default: true
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether CloudTrail pushes logs to CloudWatch logs in addition to S3.

sessionManager object required

SessionManager Configuration

Example yaml sessionManager: sendToCloudWatchLogs: true sendToS3: true excludeRegions: [] excludeAccounts: [] lifecycleRules: [] attachPolicyToIamRoles: - EC2-Default-SSM-AD-Role

6 nested properties
sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether sending SessionManager logs to CloudWatch logs is enabled.

sendToS3 boolean required

Send to S3 (Required)

Determines whether sending SessionManager logs to S3 is enabled. When enabled, the accelerator will send the session manager logs to the central log bucket in the LogArchive account.

attachPolicyToIamRoles string[]

Attach Policy to IAM Roles (Optional)

A list of IAM Ec2 roles that the Session Manager access policy should be attached to.

excludeAccounts string[]

Excluded Accounts (Optional)

List of AWS Account names to be excluded from this SessionManager configuration

excludeRegions string[]

Excluded Regions (Optional)

List of AWS Region names to be excluded from this SessionManager configuration

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Defines the lifecycle rules for the S3 bucket containing the logs.

accessLogBucket object

Access Log Bucket Configuration

Configuration for the access log bucket used to store S3 server access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Deployment Targeting: Control which accounts and regions receive the configuration

Example yaml accessLogBucket: enable: true deploymentTargets: organizationalUnits: - Root s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json lifecycleRules: - enabled: true id: AccessLifecycle-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX importedBucket: name: existing-access-log-bucket-${ACCOUNT_ID}-${REGION} applyAcceleratorManagedBucketPolicy: true

6 nested properties
customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

1 nested properties
policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

enable boolean

Enable Access Log Bucket (Optional)

Controls whether the S3 access logging bucket is created by the solution. When undefined, the solution will create access log buckets automatically.

Important Notes

  • Access log buckets are always created for critical solution buckets (installer, pipeline, central logs, assets)
  • Use deploymentTargets to control which accounts and regions receive this configuration
  • This setting primarily affects additional access log buckets beyond the core solution buckets
Default: true
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the access log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: AccessLifecycle-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/access-log-policy.json - policy: s3-policies/cross-account-access.json

assetBucket object

Asset Bucket Configuration

Configuration for the asset bucket.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml assetBucket: s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: aws-accelerator-assets applyAcceleratorManagedBucketPolicy: true

4 nested properties
customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

2 nested properties
kmsPolicy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
s3Policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (Customer Managed Encryption)

Configuration for importing existing S3 buckets with customer-managed KMS encryption (SSE-KMS). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that uses or should use customer-managed KMS keys for encryption.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • KMS Key Management: Option to create and manage KMS keys for the bucket
  • Policy Management: Optional application of accelerator-managed policies
  • Encryption Enhancement: Upgrade existing buckets to use customer-managed keys

Usage Example

yaml importedBucket: name: existing-sensitive-data-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: true

3 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Default: false
createAcceleratorManagedKey boolean

Create Accelerator Managed KMS Key (Optional)

Controls whether the accelerator should create a new customer-managed KMS key and apply it to the imported bucket for encryption. When enabled, enhances bucket security with dedicated encryption key management.

Key Creation Process

When true:

  • Creates a new customer-managed KMS key specifically for this bucket
  • Applies accelerator-managed key policy with appropriate service permissions
  • Configures bucket to use the new key for server-side encryption
  • Integrates key permissions with enabled security and logging services

When false (default):

  • Preserves existing bucket encryption configuration
  • Uses current encryption method (S3-managed, existing KMS key, or none)
  • No new KMS key creation or encryption changes
  • Existing encryption settings remain unchanged

Important Warnings

Irreversible Change: Once the accelerator pipeline executes with this value set to true, changing it back to false will cause CloudFormation stack failures. The KMS key becomes a permanent part of the infrastructure.

Default: false
kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value.
  • When importing an assets bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Assets Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.
s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

**Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json - policy: s3-policies/policy2.json

centralLogBucket object

Central Log Bucket Configuration

Configuration for the central log bucket used to store centralized logs from across the organization.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • KMS Policy: Apply KMS policy to the bucket encryption key
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies and encryption key policies

Example yaml centralLogBucket: lifecycleRules: - enabled: true id: CentralLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json kmsResourcePolicyAttachments: - policy: kms-policies/policy1.json importedBucket: name: central-log-bucket applyAcceleratorManagedBucketPolicy: true createAcceleratorManagedKey: false

5 nested properties
customPolicyOverrides object

Custom S3 Resource and KMS Policy Overrides Configuration

Configuration for providing custom policy files that override both S3 bucket resource policies and KMS key policies. Use this interface when you need specific policy statements for both the bucket and its encryption key that differ from the standard accelerator-generated policies.

Key Features

  • Dual Policy Management: Override both S3 and KMS policies simultaneously
  • Policy File Integration: Load policies from external JSON files
  • Complete Override: Replaces accelerator-generated policies entirely
  • Coordinated Access: Ensure consistent permissions across bucket and key

Usage Example

yaml customPolicyOverrides: s3Policy: policies/custom-bucket-policy.json kmsPolicy: policies/custom-key-policy.json

2 nested properties
kmsPolicy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
s3Policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
kmsResourcePolicyAttachments IResourcePolicyStatement[]

KMS Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket encryption key policy.

Notes

  • Cannot be used when customPolicyOverrides.kmsPolicy property has value
  • When importing a central logs bucket with createAcceleratorManagedKey set to false, this property must be undefined
  • The Central Logs Bucket will allow customers to have SSE-S3 (Amazon S3 managed keys) or SSE-KMS keys. Only SSE-KMS keys can adopt the KMS resource policy files.

Example yaml kmsResourcePolicyAttachments: - policy: kms-policies/central-log-key-policy.json

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the central log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: CentralLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/central-log-policy.json - policy: s3-policies/cross-account-access.json

centralizedLoggingRegion string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
cloudwatchLogs object

CloudWatch Logs Configuration

Key Features

  • Configure logs encryption
  • Manage Subscriptions for CloudWatch Logs
  • Enable CloudWatch Logs replication

Example yaml cloudwatchLogs: dynamicPartitioning: path/to/filter.json # default is true, if undefined this is set to true # if set to false, no replication is performed which is useful in test or temporary environments enable: true encryption: useCMK: true deploymentTargets: organizationalUnits: - Root replaceLogDestinationArn: arn:aws:logs:us-east-1:111111111111:destination:ReplaceDestination exclusions: # in these OUs do not do log replication - organizationalUnits: - Research - ProofOfConcept excludeAll: true # in these accounts exclude pattern testApp - accounts: - WorkloadAccount1 - WorkloadAccount1 logGroupNames: - testApp* # in these accounts exclude logs in specific regions - accounts: - WorkloadAccount1 - WorkloadAccount1 regions: - us-west-2 - eu-west-1 logGroupNames: - pattern1* dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

12 nested properties
dataProtection object

CloudWatch Log Data Protection Configuration

Allows the enablement of CloudWatch Logs data protection.

Example yaml dataProtection: managedDataIdentifiers: categories: - Credentials deploymentTargets: organizationalUnits: - Root

3 nested properties
managedDataIdentifiers object required

Managed Data Protection Identifier Configuration

Allows the protection of CloudWatch Log Data. Currently, only Credentials category is supported.

deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

overrideExisting boolean

Override Existing (Optional)

Indicates whether any existing CloudWatch Log data protection configurations can be overwritten.

Default: false
dynamicPartitioning string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
dynamicPartitioningByAccountId boolean

Dynamic Partitioning by Account ID (Optional)

Whether or not the ID of the account that produced the CloudWatch Logs should be used in the partitioning strategy of the logs. For example: s3://<central-logs-bucket>/CloudWatchLogs/<account id>/.

Use With Dynamic Partitioning If dynamicPartitioning is also being used, the Account ID will come before the supplied s3 prefix. For example the following would result in s3://<central-logs-bucket>/CloudWatchLogs/<account id>/s3-prefix/ being used as the partition.

{ "logGroupPattern": "LogGroupName", "s3Prefix": "s3-prefix" }

enable boolean

Enable Replication (Optional)

Whether or not to enable CloudWatch Logs replication.

Default: true
encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

Exclusions (Optional)

Configure log groups to exclude from replication.

firehose object

CloudWatch Firehose Configuration

Configuration for the CloudWatch Logs Firehose.

Example yaml logging: cloudwatchLogs: firehose: fileExtension: json.gz lambdaProcessor: retries: 3 bufferSize: 0.2 bufferInterval: 60

2 nested properties
fileExtension string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
lambdaProcessor object

CloudWatch Firehose Lambda Configuration

Enables the configuration of the lambda processor used to process incoming logs to the LogArchive account.

kinesis object

CloudWatch Kinesis Configuration

Configuration for CloudWatch Log's Kinesis.

Key Features

  • Real-time Processing: Stream CloudWatch Logs data in real-time for immediate analysis
  • Scalable Throughput: Configure capacity based on your data volume requirements
  • Flexible Retention: Store data for 24 hours to 365 days for replay and reprocessing
  • Cost Optimization: Choose between on-demand and provisioned capacity modes
  • Integration Ready: Seamlessly integrates with AWS analytics and processing services

Example yaml logging: cloudwatchLogs: kinesis: streamingMode: PROVISIONED shardCount: 5 retention: 240

3 nested properties
streamingMode string required
Values: "ON_DEMAND" "PROVISIONED"
retention number

Retention (Optional)

The number of hours the data records are stored in shards and remain accessible.

The value should be between 24 and 8760

Default: 24
shardCount number

Shard Count (Optional)

The number of shared the stream uses. For greater throughput, increase the number of shards. Only applicable if {@link ICloudWatchKinesisConfig.streamingMode } is 'Provisioned', otherwise this is ignored. Shards cannot be increased to more than double their capacity. For example, you cannot go from 1 shard to 4.

Default: 1
organizationIdConditionSupported boolean

Organization ID Condition (Optional)

Whether or not a list of account IDs is used instead of a principal organization condition in the CloudWatch Logs destination access policy. Useful in partitions where the principal organization condition is not supported.

replaceLogDestinationArn string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
skipBulkUpdate object

Skip Bulk Update Configuration

Configuration to skip the bulk update of CloudWatch Logs. Warning: This configuration option could cause CloudWatch log group configurations to become out of sync with the global configuration. Only enable this option if you fully understand the implications.

2 nested properties
enable boolean required

Enable (Required)

Whether or not to enable the skip bulk updates

skipBulkUpdateTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

subscription object

CloudWatch Subscription Configuration

Configuration for the CloudWatch logs subscription

Example yaml logging: cloudwatchLogs: subscription: type: ACCOUNT selectionCriteria: 'LogGroupName NOT IN [ /aws/lambda/AWSAccelerator-FirehoseRecordsProcessor development AppA]' overrideExisting: true

4 nested properties
type string required

Type (Required)

Determines whether an account-wide subscription is applied, or if a Lambda function will be invoked to apply each log group.

Example type: ACCOUNT

Values: "ACCOUNT" "LOG_GROUP"
filterPattern string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
overrideExisting boolean

Override Existing (Optional)

Indicates whether the existing CloudWatch Log subscription configuration can be overwritten. If enabled, any existing policy will be updated and renamed to 'ACCELERATOR_ACCOUNT_SUBSCRIPTION_POLICY'. Upon deleting the solution or disabling logging for cloudwatch in global config, this policy will be removed. If type is set to 'LOG_GROUP' this parameter will not be used.

Default: false
selectionCriteria string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
elbLogBucket object

ELB Log Bucket Configuration

Configuration for the ELB log bucket used to store Elastic Load Balancer access logs.

Key Features

  • Resource Policies: Attach resource policies to the bucket
  • Lifecycle Management: Configure lifecycle rules for log retention and cost optimization
  • Imported Bucket: Import existing bucket and apply resource policies
  • Regional Deployment: Deploy buckets in each operating region

Example yaml elbLogBucket: lifecycleRules: - enabled: true id: ElbLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX s3ResourcePolicyAttachments: - policy: s3-policies/policy1.json importedBucket: name: elb-logs-bucket applyAcceleratorManagedBucketPolicy: true

4 nested properties
customPolicyOverrides object

Custom S3 Resource Policy Overrides Configuration

Configuration for providing custom S3 bucket resource policy files that override the default accelerator-generated policies. Use this interface when you need specific bucket policy statements that differ from the standard accelerator policies.

Usage Example

yaml customPolicyOverrides: policy: path/to/custom-bucket-policy.json

1 nested properties
policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
importedBucket object

Imported S3 Bucket Configuration (S3 Managed Encryption)

Configuration for importing existing S3 buckets that use S3-managed encryption (SSE-S3). Use this interface when you want the Landing Zone Accelerator to manage an existing bucket that was created outside of the accelerator solution.

Key Features

  • Existing Bucket Integration: Import buckets created outside the accelerator
  • Policy Management: Optional application of accelerator-managed policies
  • S3-Managed Encryption: Designed for buckets using SSE-S3 encryption
  • Service Integration: Automatic policy generation for enabled security services

Usage Example

yaml importedBucket: name: existing-logs-bucket applyAcceleratorManagedBucketPolicy: true

2 nested properties
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
applyAcceleratorManagedBucketPolicy boolean

Apply Accelerator Managed Bucket Policy (Optional)

Controls whether the accelerator should apply its generated resource policies to the imported bucket. When enabled, the accelerator will manage the bucket's resource policy based on enabled security services and configurations.

Policy Generation

The accelerator automatically generates bucket policies based on:

  • Security Services: Macie, GuardDuty, Security Hub access requirements
  • Logging Services: CloudTrail, VPC Flow Logs, Config access needs
  • Cross-Account Access: Organization-wide service access patterns
  • External Policies: Additional policies from s3ResourcePolicyAttachments

Behavior Options


# Preserve existing policies (use for buckets with custom policies) applyAcceleratorManagedBucketPolicy: false ```

### Important Considerations

**When `true`:**
- Accelerator **REPLACES** existing bucket resource policy
- Combines accelerator-generated policies with external policy files
- Ensures compatibility with enabled security services
- **WARNING**: Removes any existing custom S3 policies on the bucket

**When `false` (default):**
- Preserves existing bucket resource policy
- Only adds policies from external s3ResourcePolicyAttachments files
- No changes if no external policy files are provided
- Existing policies remain intact

### Best Practices

- Set to `true` for buckets that need full accelerator integration
- Set to `false` for buckets with critical existing policies
- Review existing policies before enabling accelerator management
- Test policy changes in non-production environments first
Default: false
lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configure lifecycle rules for the ELB log bucket to manage log retention and storage costs. Rules can transition logs to different storage classes and set expiration policies.

Example yaml lifecycleRules: - enabled: true id: ElbLifecycleRule-01 expiration: 365 transitions: - storageClass: GLACIER transitionAfter: 30

s3ResourcePolicyAttachments IResourcePolicyStatement[]

S3 Resource Policy Attachments (Optional)

Policy statements from the listed files will be added to the bucket resource policy. This property cannot be used when customPolicyOverrides.s3Policy property has value.

Note: When Block Public Access is enabled for S3 on the AWS account, you can't specify a policy that would make the S3 Bucket public.

Example yaml s3ResourcePolicyAttachments: - policy: s3-policies/elb-log-policy.json - policy: s3-policies/cross-account-access.json

INotificationConfig object

Notification Configuration

Used to configure notifications for budget reports

Key Features

  • Recipients: Configure multiple recipients for the notification
  • Threshold: Define the threshold to trigger the notification
  • Subscription Type: Choose the subscription type (e.g., email, SNS) for delivery

Example yaml notifications: - type: ACTUAL thresholdType: PERCENTAGE threshold: 90 comparisonOperator: GREATER_THAN subscriptionType: EMAIL recipients: - [email protected] - [email protected]

comparisonOperator ComparisonOperator | string required

Comparison Operator (Required)

The comparison that's used for this notification.

Valid values are GREATER_THAN, LESS_THAN, and EQUAL_TO

subscriptionType SubscriptionType | string required

Subscription Type (Required)

The type of notification that AWS will send to the subscribers. Must either be SNS or EMAIL

thresholdType ThresholdType | string required

Threshold Type (Required)

The type of threshold for a notification.

Types

  • ABSOLUTE_VALUE: AWS sends the notification when you go over, or are forecasted to go over, the total cost of the threshold.
  • PERCENTAGE: AWS sends the notification when you go over, or are forecasted to go over, a certain percentage of your forecasted spend.
type NotificationType | string required

Notification Type (Required)

Determines whether the notification should be sent based on actual or forecasted usage.

Values must either be ACTUAL or FORECASTED

address string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
recipients NonEmptyString[]

Recipients (Optional)

A list of recipients that the notification will be sent to. Must be either an SNS topic or an email.

threshold number

Threshold (Optional)

The value that, when usage exceeds, will trigger the notification.

IReportConfig object

Reports Configuration

Used to configure reports for the LZA deployment.

Key Features

  • Configure cost and usage reports
  • Configure budget reports

Example yaml costAndUsageReport: compression: Parquet format: Parquet reportName: accelerator-cur s3Prefix: cur timeUnit: DAILY refreshClosedReports: true reportVersioning: CREATE_NEW_REPORT lifecycleRules: storageClass: DEEP_ARCHIVE enabled: true multiPart: 1 expiration: 1825 deleteMarker: false nonCurrentExpiration: 366 transitionAfter: 365 budgets: - name: accel-budget timeUnit: MONTHLY type: COST amount: 2000 includeUpfront: true includeTax: true includeSupport: true includeSubscription: true includeRecurring: true includeOtherSubscription: true includeDiscount: true includeCredit: false includeRefund: false useBlended: false useAmortized: false unit: USD notifications: - type: ACTUAL thresholdType: PERCENTAGE threshold: 90 comparisonOperator: GREATER_THAN subscriptionType: EMAIL address: [email protected]

Budget Reports (Optional)

Configuration for budget reports.

Example yaml budgets: - name: accel-budget timeUnit: MONTHLY type: COST amount: 2000 includeUpfront: true includeTax: true includeSupport: true includeSubscription: true includeRecurring: true includeOtherSubscription: true includeDiscount: true includeCredit: false includeRefund: false useBlended: false useAmortized: false unit: USD notifications: - type: ACTUAL thresholdType: PERCENTAGE threshold: 90 comparisonOperator: GREATER_THAN subscriptionType: EMAIL address: [email protected]

costAndUsageReport object

Cost and Usage Report Configuration

Configuration for AWS Cost and Usage Reports (CUR) that provides comprehensive cost and usage data for your AWS account. These reports are delivered to an S3 bucket and can be used for detailed cost analysis and billing insights.

Key Features

  • Flexible Reporting: Configure time granularity from hourly to monthly
  • Multiple Formats: Support for CSV, text, and Parquet formats with various compression options
  • Data Integration: Generate manifests for integration with Amazon Redshift, QuickSight, and Athena
  • Lifecycle Management: Configure S3 lifecycle rules for cost optimization
  • Version Control: Choose between creating new reports or overwriting existing ones

Usage Example

yaml costAndUsageReport: compression: Parquet format: Parquet reportName: accelerator-cur s3Prefix: cur timeUnit: DAILY refreshClosedReports: true reportVersioning: CREATE_NEW_REPORT lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 abortIncompleteMultipartUpload: 14 expiration: 3563 expiredObjectDeleteMarker: false noncurrentVersionExpiration: 3653 noncurrentVersionTransitions: - storageClass: GLACIER transitionAfter: 365 transitions: - storageClass: GLACIER transitionAfter: 365 prefix: PREFIX

10 nested properties
compression string required

Compression Format (Required)

The compression format that AWS uses for the report files.

Example yaml compression: Parquet

format string required

Report Format (Required)

The format that AWS saves the report in.

Example yaml format: Parquet

refreshClosedReports boolean required

Refresh Closed Reports (Required)

Whether AWS should update your reports after they have been finalized if AWS detects charges related to previous months. These charges can include refunds, credits, or support fees.

When to Enable

  • Enable if you need the most accurate historical data
  • Enable if you frequently receive refunds or credits
  • Enable for compliance and auditing requirements

When to Disable

  • Disable if you prefer immutable historical reports
  • Disable to reduce processing overhead

Example yaml refreshClosedReports: true

reportName string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
reportVersioning string required

Report Versioning (Required)

Whether AWS should overwrite the previous version of each report or deliver the report in addition to the previous versions.

Available Options

  • CREATE_NEW_REPORT: Creates a new report file for each delivery (recommended)
  • OVERWRITE_REPORT: Overwrites the previous report file

Considerations

  • CREATE_NEW_REPORT provides better audit trail and version history
  • OVERWRITE_REPORT uses less storage but loses historical versions

Example yaml reportVersioning: CREATE_NEW_REPORT

s3Prefix string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
timeUnit string required

Time Unit (Required)

The granularity of the line items in the report. This determines how frequently the report data is aggregated.

Available Options

  • HOURLY: Hourly granularity (most detailed, higher costs)
  • DAILY: Daily granularity (recommended for most use cases)
  • MONTHLY: Monthly granularity (least detailed, lower costs)

Cost Considerations

  • Hourly reports are more expensive but provide the most detail
  • Daily reports offer a good balance of detail and cost
  • Monthly reports are the most cost-effective but least granular

Example yaml timeUnit: DAILY

additionalArtifacts string[]

Additional Artifacts (Optional)

A list of manifests that AWS creates for this report to enable integration with other AWS analytics services.

Available Artifacts

  • REDSHIFT: Creates manifest files for Amazon Redshift integration
  • QUICKSIGHT: Creates manifest files for Amazon QuickSight integration
  • ATHENA: Creates manifest files for Amazon Athena integration

Example yaml additionalArtifacts: - ATHENA - QUICKSIGHT

additionalSchemaElements NonEmptyString[]

Additional Schema Elements (Optional)

Additional content that AWS includes in the report, such as individual resource IDs. These elements provide more granular data for detailed cost analysis.

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Configuration for S3 bucket lifecycle rules to manage the cost and storage of your Cost and Usage Reports over time.

Key Benefits

  • Automatically transition older reports to cheaper storage classes
  • Set expiration policies to delete old reports
  • Optimize storage costs for long-term report retention

Example yaml lifecycleRules: - enabled: true id: CostAndUsageBucketLifecycleRule-01 expiration: 2555 # 7 years transitions: - storageClass: STANDARD_IA transitionAfter: 30 - storageClass: GLACIER transitionAfter: 365 - storageClass: DEEP_ARCHIVE transitionAfter: 1095 # 3 years

IResourcePolicyStatement object

Resource Policy Statement Configuration

Defines a custom resource policy statement that can be applied to AWS resources. Used for providing additional or override policy statements beyond the default accelerator-generated policies.

Usage Context

  • Custom Access Patterns: Define specific access requirements
  • Policy Attachments: Add policies to existing resources
  • Compliance Requirements: Meet specific regulatory or security needs
  • Service Integration: Enable access for additional AWS services
policy string required

Policy Document (Required)

Path to a JSON file containing a valid AWS IAM policy document, or the policy document content as a JSON string.

IRootUserManagementCapabiltiesConfig object

Root User Management Capabilities Configuration

Determines how root user management is controlled within the organization.

allowRootSessions boolean required

Allow Root Sessions (Required)

Determines whether root user sessions are allowed.

rootCredentialsManagement boolean required

Root Credentials Management (Required)

Determines whether root user credentials are managed by the organization.

IS3EncryptionConfig object

S3 Encryption Configuration

Configure encryption settings for S3 buckets deployed by the Landing Zone Accelerator. This configuration allows you to control whether AWS KMS Customer Managed Keys (CMKs) are used for S3 server-side encryption across your organization.

Key Features

  • Flexible Encryption: Choose between AWS KMS CMK or default S3 encryption
  • Targeted Deployment: Apply encryption settings to specific organizational units or accounts
  • Compliance Support: Helps meet regulatory requirements for data encryption at rest

Important Considerations

  • Always Encrypted Buckets: The following buckets always use CMK regardless of this setting: - LZA Installer bucket - CodePipeline artifact bucket - Solution-deployed CentralLogs bucket

Example yaml encryption: createCMK: true deploymentTargets: organizationalUnits: - Security - Production excludedAccounts: - Development

createCMK boolean required

Create CMK (Required)

When enabled, the solution will create use AWS KMS CMK for S3 server-side encryption. The following buckets always use CMK regardless of this settings:

  • Installer bucket
  • Pipeline bucket
  • Solution-deployed CentralLogs bucket
Default: true
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

IS3GlobalConfig object

S3 Global Configuration

Manage S3 settings for accounts managed by the LZA deployment. Configure the encryption settings for S3 buckets used throughout the deployment.

Example yaml s3: encryption: createCMK: true deploymentTargets: organizationalUnits: - Root

encryption object

S3 Encryption Configuration

Configure encryption settings for S3 buckets deployed by the Landing Zone Accelerator. This configuration allows you to control whether AWS KMS Customer Managed Keys (CMKs) are used for S3 server-side encryption across your organization.

Key Features

  • Flexible Encryption: Choose between AWS KMS CMK or default S3 encryption
  • Targeted Deployment: Apply encryption settings to specific organizational units or accounts
  • Compliance Support: Helps meet regulatory requirements for data encryption at rest

Important Considerations

  • Always Encrypted Buckets: The following buckets always use CMK regardless of this setting: - LZA Installer bucket - CodePipeline artifact bucket - Solution-deployed CentralLogs bucket

Example yaml encryption: createCMK: true deploymentTargets: organizationalUnits: - Security - Production excludedAccounts: - Development

2 nested properties
createCMK boolean required

Create CMK (Required)

When enabled, the solution will create use AWS KMS CMK for S3 server-side encryption. The following buckets always use CMK regardless of this settings:

  • Installer bucket
  • Pipeline bucket
  • Solution-deployed CentralLogs bucket
Default: true
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

IServiceEncryptionConfig object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

IServiceQuotaLimitsConfig object

AWS Service Quotas Configuration

Used request increases to AWS service quotas (formerly known as service limits). Service quotas are the maximum number of service resources or operations for your AWS account. Service quota increases are requested asynchronously and may take time to be approved. Some quotas require AWS Support cases and cannot be increased automatically. You can find service codes and quota codes in the AWS Service Quotas console.

Example ```yaml # Increase Lambda concurrent executions

  • serviceCode: lambda quotaCode: L-B99A9384 desiredValue: 1000 deploymentTargets: organizationalUnits: - Root regions: - us-west-2

Increase IAM roles per account (global quota - no regions needed)

  • serviceCode: iam quotaCode: L-4019AD8B desiredValue: 15 deploymentTargets: accounts: - SharedServices

Increase VPCs per region

  • serviceCode: vpc quotaCode: L-F678F1CE desiredValue: 20 deploymentTargets: organizationalUnits: - Security - Infrastructure regions: - us-east-1 - us-west-2

Increase Route 53 Resolver rules per region

  • serviceCode: route53resolver quotaCode: L-4A669CC0 desiredValue: 10 deploymentTargets: organizationalUnits: - Infrastructure ```
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

desiredValue number required

Desired Value (Required)

The new limit you want to request for. The value must be higher than the current quota value. Some quotas have maximum values that cannot be exceeded.

quotaCode string required

Quota Code (Required)

Indicates the specific quota we are requesting a change for within the given service. You can find the quota codes in the console or using the AWS CLI command: aws service-quotas list-service-quotas --service-code <service-code>.

Example quota codes (verify current codes in AWS console):

  • L-B99A9384 (Lambda concurrent executions)
  • L-4019AD8B (IAM roles per account)
  • L-F678F1CE (VPCs per region)
  • L-4A669CC0 (Route 53 Resolver rules per region)
serviceCode string required

Service Code (Required)

Indicates which service Service Quota we are requesting a change for. You can find service codes the console or using the AWS CLI command: aws service-quotas list-services.

Example service codes (verify current codes in AWS console):

  • lambda (AWS Lambda)
  • iam (AWS Identity and Access Management)
  • vpc (Amazon Virtual Private Cloud)
  • route53resolver (Amazon Route 53 Resolver)
regions string[]

Regions (Optional)

Regions where this service quota increase will be requested. If undefined, the increase will only be requested in the home region. Specified regions must also be listed in the enabledRegions section. Some quotas are global (like IAM) and don't require region specification.

ISessionManagerConfig object

SessionManager Configuration

Example yaml sessionManager: sendToCloudWatchLogs: true sendToS3: true excludeRegions: [] excludeAccounts: [] lifecycleRules: [] attachPolicyToIamRoles: - EC2-Default-SSM-AD-Role

sendToCloudWatchLogs boolean required

Send to CloudWatch Logs (Required)

Determines whether sending SessionManager logs to CloudWatch logs is enabled.

sendToS3 boolean required

Send to S3 (Required)

Determines whether sending SessionManager logs to S3 is enabled. When enabled, the accelerator will send the session manager logs to the central log bucket in the LogArchive account.

attachPolicyToIamRoles string[]

Attach Policy to IAM Roles (Optional)

A list of IAM Ec2 roles that the Session Manager access policy should be attached to.

excludeAccounts string[]

Excluded Accounts (Optional)

List of AWS Account names to be excluded from this SessionManager configuration

excludeRegions string[]

Excluded Regions (Optional)

List of AWS Region names to be excluded from this SessionManager configuration

lifecycleRules ILifecycleRule[]

S3 Lifecycle Rules (Optional)

Defines the lifecycle rules for the S3 bucket containing the logs.

ISnsConfig object

SNS Configuration

Used to setup and configure SNS Topics within the LZA environment.

Example yaml snsTopics: deploymentTargets: organizationalUnits: - Root topics: - name: Security emailAddresses: - [email protected]

deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

topics ISnsTopicConfig[] required

SNS Topic Configuration (Required)

List of SNS Topics to be created by the solution.

ISnsTopicConfig object

SNS Topic Configuration

Individual SNS topic configuration for notifications and alerts within the Landing Zone Accelerator. Topics are used to distribute notifications from CloudWatch Alarms, Security Hub findings, and other AWS services to designated email recipients.

Example


  # Operations alerts topic   - name: Operations     emailAddresses:       - [email protected]       - [email protected]

  # Executive notifications   - name: Executive     emailAddresses:       - [email protected]       - [email protected] ```
emailAddresses EmailAddress[] required

Email Addresses (Required)

List of email addresses that will receive notifications from this SNS topic. Each email address will receive a subscription confirmation email that must be confirmed before notifications can be delivered.

Subscription Management

  • Subscriptions are created automatically during deployment
  • Each email address receives a confirmation email from AWS
  • Unconfirmed subscriptions appear as "PendingConfirmation" in the AWS console
  • Confirmed subscriptions will receive all topic notifications
name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
ISqsConfig object

SQS Configuration

Configure SQS encryption for the solution.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

encryption object

Encryption Configuration

Enable/Disable the use of AWS KMS CMK for encryption. Can specify which accounts/OUs to use this configuration in.

Example yaml encryption: useCMK: true deploymentTargets: organizationalUnits: - Root

2 nested properties
useCMK boolean required

Use CMK (Required)

Determines whether or not AWS KMS CMK will be used for encryption. When set to true, AWS CMK KMS will be used. When set to false, service managed KMS will be used.

Default: false
deploymentTargets object

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

ISsmInventoryConfig object

SSM Inventory Configuration

Enable SSM Inventory within the deployment.

Example yaml ssmInventoryConfig: enable: true deploymentTargets: organizationalUnits: - Infrastructure

deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

enable boolean required

Enable (Required)

Whether or not to enable SSM Inventory.

ISsmParameterConfig object

SSM Parameter Configuration

The definition of an SSM parameter.

Example yaml ssmParameters: - deploymentTargets: organizationalUnits: - Workloads parameters: - name: WorkloadsSsmParameter path: /my/custom/path/variable value: 'MySSMParameterValue'

name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
path string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
value string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
ISsmParametersConfig object

SSM Parameters Configuration

Enables the creation of standard SSM parameters throughout managed accounts.

Example yaml ssmParameters: - deploymentTargets: organizationalUnits: - Workloads parameters: - name: MyWorkloadParameter path: /my/custom/path/variable value: 'MySSMParameterValue'

deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

parameters ISsmParameterConfig[] required

Parameters (Required)

A list of parameters to be created.

IStackPolicyConfig object

CloudFormation Stack Policy Configuration

The CloudFormation Stack Policy configuration determines how stack resources can be updated or modified during stack operations. When this value is not specified, any existing stack policies will remain in effect and unchanged. The behavior intentionally differs from typical LZA behavior, which assumes false, enabling organizations to manage and maintain stack policies independently through other mechanisms outside of LZA if preferred.

Example yaml stackPolicy: enable: true protectedTypes: - "AWS::EC2::InternetGateway" - "AWS::EC2::NatGateway" - "AWS::EC2::PrefixList" - "AWS::EC2::Route" - "AWS::EC2::RouteTable" - "AWS::EC2::SubnetRouteTableAssociation" - "AWS::EC2::TransitGateway" - "AWS::EC2::TransitGatewayPeeringAttachment" - "AWS::EC2::TransitGatewayRoute" - "AWS::EC2::TransitGatewayRouteTable" - "AWS::EC2::TransitGatewayRouteTableAssociation" - "AWS::EC2::TransitGatewayRouteTablePropagation" - "AWS::EC2::TransitGatewayVpcAttachment" - "AWS::EC2::VPC" - "AWS::EC2::VPCCidrBlock" - "AWS::EC2::VPCEndpoint" - "AWS::EC2::VPCGatewayAttachment" - "AWS::NetworkFirewall::Firewall" - "AWS::NetworkFirewall::LoggingConfiguration" - "AWS::RAM::ResourceShare"

enable boolean required

Enable (Required)

Indicates whether stack policies are enabled for the organization. When enabled, specified resource types will be protected for Update:Replace and Update:Delete operations.

protectedTypes string[] required

Protected Types (Required)

A list of CloudFormation resource types that should be protected for Update:Replace and Update:Delete operations.

Example: yaml protectedTypes: - "AWS::EC2::InternetGateway" - "AWS::EC2::NatGateway"

ITag object

AWS Resource Tag Configuration

Defines key-value pairs used for tagging AWS resources. Tags provide metadata for resource organization, cost allocation, access control, and automation.

Key Features

  • Resource Organization: Group and categorize resources logically
  • Cost Allocation: Track costs by project, department, or environment
  • Access Control: Use tags in IAM policies for conditional access
  • Automation: Trigger automated actions based on tag values
  • Compliance: Meet organizational and regulatory tagging requirements

Example

yaml tags: - key: Environment value: Production - key: Project value: WebApplication - key: Owner value: Platform-Team - key: CostCenter value: Engineering - key: Backup value: Daily

key string required

Tag Key (Required)

The tag key name that identifies the type of metadata being stored. Tag keys should follow consistent naming conventions across your organization.

value string required

Tag Value (Required)

The tag value that provides the actual metadata content for the tag key. Values should be meaningful and follow organizational standards.

ITransition object

S3 Storage Class Transition Configuration

Defines when and how objects should transition from their current storage class to a different storage class. Used in S3 lifecycle rules to optimize storage costs based on data access patterns and retention requirements.

Key Components

  • Storage Class: Target storage class for the transition
  • Transition Timing: Number of days after object creation or version change

Example

yaml transitions: - storageClass: STANDARD_IA transitionAfter: 30 - storageClass: GLACIER transitionAfter: 365 - storageClass: DEEP_ARCHIVE transitionAfter: 2555

storageClass string required

S3 Storage Class Type

Defines the available Amazon S3 storage classes for lifecycle transitions. Each storage class is optimized for different access patterns, durability requirements, and cost considerations.

Values: "DEEP_ARCHIVE" "GLACIER" "GLACIER_IR" "STANDARD_IA" "INTELLIGENT_TIERING" "ONEZONE_IA"
transitionAfter number required

Transition After (Days) (Required)

Number of days after object creation (for current versions) or after becoming non-current (for non-current versions) when the transition should occur.

IVaultConfig object

Vault Configuration

Enables the configuration of Backup Vaults' names, policies, and deployment targets.

Example ```

  • name: BackupVault deploymentTargets: organizationalUnits: - Root policy: policies/backup-vault-policy.json ```
deploymentTargets object required

Deployment Targets Interface

Defines where AWS resources should be deployed within your AWS organization. This interface provides flexible targeting options for resource deployment across accounts, organizational units, and regions.

Key Features

  • Account-level targeting: Deploy to specific AWS accounts
  • OU-level targeting: Deploy to all accounts within organizational units
  • Regional exclusions: Skip specific AWS regions for compliance or cost optimization
  • Account exclusions: Exclude specific accounts from broader deployments

Example

yaml deploymentTargets: organizationalUnits: - Production - Development excludedAccounts: - Management excludedRegions: - us-west-1

4 nested properties
accounts string[]

Target Accounts (Optional)

List of specific account names where resources should be deployed. Use for precise account-level targeting.

excludedAccounts string[]

Excluded Accounts (Optional)

List of account names to exclude from deployment. Takes precedence over organizational unit and account inclusions.

excludedRegions string[]

Excluded Regions (Optional)

List of AWS regions to exclude from deployment. Useful for compliance requirements or cost optimization.

organizationalUnits string[]

Organizational Units (Optional)

List of organizational unit names where resources should be deployed. When specified, resources will be created in all accounts within these OUs.

name string required

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
policy string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

minLength=1
NonEmptyString string

Non-Empty String Type

Represents a string that must contain at least one character. Used for required text fields throughout the Landing Zone Accelerator configuration where empty values are not permitted.

NotificationType string

Notification Type

Defines when budget notifications should be triggered based on spending patterns and forecasting data from AWS Budgets.

Values

  • ACTUAL: Trigger notifications based on actual incurred costs
  • FORECASTED: Trigger notifications based on projected/forecasted costs
StorageClass string

S3 Storage Class Type

Defines the available Amazon S3 storage classes for lifecycle transitions. Each storage class is optimized for different access patterns, durability requirements, and cost considerations.

StreamMode string
SubscriptionType string

Subscription Type

Defines the delivery mechanism for notifications and alerts from AWS services like Budgets, CloudWatch, and other monitoring services.

Values

  • EMAIL: Send notifications via email to specified addresses
  • SNS: Send notifications via Amazon SNS topic

Considerations

  • EMAIL: Simple setup, direct delivery, limited to email addresses
  • SNS: More flexible, supports multiple endpoints, requires SNS topic setup
ThresholdType string

Threshold Type

Defines how threshold values should be interpreted in monitoring and alerting configurations, particularly for AWS Budgets and CloudWatch alarms.

Values

  • PERCENTAGE: Threshold as a percentage of the total/baseline value
  • ABSOLUTE_VALUE: Threshold as an absolute numeric value