|
@@ -1,879 +0,0 @@
|
|
|
-AWSTemplateFormatVersion: 2010-09-09
|
|
|
-Description: >-
|
|
|
- Cisco Systems - Main Stack - Creates VPC and the necessary policies, roles,
|
|
|
- security group and launches the Cisco ASAv RAVPN instances. **WARNING** You
|
|
|
- will be billed for the AWS resources used if you create a stack from this
|
|
|
- template. (qs-1qp7e9tnp)
|
|
|
-Metadata:
|
|
|
- 'AWS::CloudFormation::Interface':
|
|
|
- ParameterGroups:
|
|
|
- - Label:
|
|
|
- default: Availability Zone Configuration
|
|
|
- Parameters:
|
|
|
- - AvailabilityZones
|
|
|
- - NumberOfAZs
|
|
|
- - Label:
|
|
|
- default: VPC Network Configuration
|
|
|
- Parameters:
|
|
|
- - VPCCIDR
|
|
|
- - PublicSubnet1CIDR
|
|
|
- - PublicSubnet2CIDR
|
|
|
- - PublicSubnet3CIDR
|
|
|
- - PublicSubnet4CIDR
|
|
|
- - PrivateSubnet1CIDR
|
|
|
- - PrivateSubnet2CIDR
|
|
|
- - PrivateSubnet3CIDR
|
|
|
- - PrivateSubnet4CIDR
|
|
|
- - Label:
|
|
|
- default: ASAv Configuration
|
|
|
- Parameters:
|
|
|
- - NumberOfASAv
|
|
|
- - ASAv1HostName
|
|
|
- - ASAv2HostName
|
|
|
- - ASAv3HostName
|
|
|
- - ASAv4HostName
|
|
|
- - DnsName
|
|
|
- - InstanceTypeParam
|
|
|
- - KeyPair
|
|
|
- - VPNUser
|
|
|
- - VPNPassword
|
|
|
- - SSHLockDownCIDR
|
|
|
- - MgmtSubnet1CIDR
|
|
|
- - MgmtSubnet2CIDR
|
|
|
- - MgmtSubnet3CIDR
|
|
|
- - MgmtSubnet4CIDR
|
|
|
- - VPNPoolCIDR1
|
|
|
- - VPNPoolCIDR2
|
|
|
- - VPNPoolCIDR3
|
|
|
- - VPNPoolCIDR4
|
|
|
- - Label:
|
|
|
- default: AWS Transit Gateway configuration
|
|
|
- Parameters:
|
|
|
- - TGWSubnet1CIDR
|
|
|
- - TGWSubnet2CIDR
|
|
|
- - TGWSubnet3CIDR
|
|
|
- - TGWSubnet4CIDR
|
|
|
- - AmazonSideAsn
|
|
|
- - Label:
|
|
|
- default: On-Premises Gateway Configuration
|
|
|
- Parameters:
|
|
|
- - OnPremFirewallPublicIP
|
|
|
- - OnPremFirewallASN
|
|
|
- - PreSharedKeyForVPNAttachment
|
|
|
- - VPNTunnelCIDRs
|
|
|
- - OnPremCIDR
|
|
|
- - Label:
|
|
|
- default: AWS Quick Start Configuration
|
|
|
- Parameters:
|
|
|
- - QSS3BucketName
|
|
|
- - QSS3BucketRegion
|
|
|
- - QSS3KeyPrefix
|
|
|
- ParameterLabels:
|
|
|
- AvailabilityZones:
|
|
|
- default: Availability Zones
|
|
|
- NumberOfAZs:
|
|
|
- default: Number of Availability Zones
|
|
|
- VPCCIDR:
|
|
|
- default: VPC CIDR
|
|
|
- PublicSubnet1CIDR:
|
|
|
- default: Public subnet 1 CIDR
|
|
|
- PublicSubnet2CIDR:
|
|
|
- default: Public subnet 2 CIDR
|
|
|
- PublicSubnet3CIDR:
|
|
|
- default: Public subnet 3 CIDR
|
|
|
- PublicSubnet4CIDR:
|
|
|
- default: Public subnet 4 CIDR
|
|
|
- PrivateSubnet1CIDR:
|
|
|
- default: Private subnet 1 CIDR
|
|
|
- PrivateSubnet2CIDR:
|
|
|
- default: Private subnet 2 CIDR
|
|
|
- PrivateSubnet3CIDR:
|
|
|
- default: Private subnet 3 CIDR
|
|
|
- PrivateSubnet4CIDR:
|
|
|
- default: Private subnet 4 CIDR
|
|
|
- NumberOfASAv:
|
|
|
- default: Number of ASAv instances
|
|
|
- ASAv1HostName:
|
|
|
- default: ASAv1 hostname
|
|
|
- ASAv2HostName:
|
|
|
- default: ASAv2 hostname
|
|
|
- ASAv3HostName:
|
|
|
- default: ASAv3 hostname
|
|
|
- ASAv4HostName:
|
|
|
- default: ASAv4 hostname
|
|
|
- DnsName:
|
|
|
- default: DNS name
|
|
|
- InstanceTypeParam:
|
|
|
- default: Instance type of ASAv
|
|
|
- VPNUser:
|
|
|
- default: VPN user
|
|
|
- VPNPassword:
|
|
|
- default: VPN password
|
|
|
- KeyPair:
|
|
|
- default: ASAv instance key pair
|
|
|
- SSHLockDownCIDR:
|
|
|
- default: SSH lockdown CIDR
|
|
|
- MgmtSubnet1CIDR:
|
|
|
- default: Management subnet 1 CIDR
|
|
|
- MgmtSubnet2CIDR:
|
|
|
- default: Management subnet 2 CIDR
|
|
|
- MgmtSubnet3CIDR:
|
|
|
- default: Management subnet 3 CIDR
|
|
|
- MgmtSubnet4CIDR:
|
|
|
- default: Management subnet 4 CIDR
|
|
|
- VPNPoolCIDR1:
|
|
|
- default: VPN pool for ASAv1
|
|
|
- VPNPoolCIDR2:
|
|
|
- default: VPN pool for ASAv2
|
|
|
- VPNPoolCIDR3:
|
|
|
- default: VPN pool for ASAv3
|
|
|
- VPNPoolCIDR4:
|
|
|
- default: VPN pool for ASAv4
|
|
|
- QSS3BucketName:
|
|
|
- default: Quick Start S3 bucket name
|
|
|
- QSS3BucketRegion:
|
|
|
- default: Quick Start S3 bucket region
|
|
|
- QSS3KeyPrefix:
|
|
|
- default: Quick Start S3 key prefix
|
|
|
- TGWSubnet1CIDR:
|
|
|
- default: TGW subnet 1 CIDR
|
|
|
- TGWSubnet2CIDR:
|
|
|
- default: TGW subnet 2 CIDR
|
|
|
- TGWSubnet3CIDR:
|
|
|
- default: TGW subnet 3 CIDR
|
|
|
- TGWSubnet4CIDR:
|
|
|
- default: TGW subnet 4 CIDR
|
|
|
- AmazonSideAsn:
|
|
|
- default: ASN for TGW S2S VPN attachment
|
|
|
- OnPremFirewallPublicIP:
|
|
|
- default: Public IP for customer on-premises gateway
|
|
|
- OnPremFirewallASN:
|
|
|
- default: ASN for customer gateway
|
|
|
- PreSharedKeyForVPNAttachment:
|
|
|
- default: Pre shared key for VPN attachement
|
|
|
- VPNTunnelCIDRs:
|
|
|
- default: On-premises gateway to TGW S2S VPN tunnel CIDR blocks
|
|
|
- OnPremCIDR:
|
|
|
- default: On-premises network CIDR
|
|
|
-Parameters:
|
|
|
- AvailabilityZones:
|
|
|
- Description: >-
|
|
|
- List of Availability Zones to use for the subnets in the VPC. Note: The
|
|
|
- logical order is preserved and up to 4 Availability Zoness are used for
|
|
|
- this deployment.
|
|
|
- Type: 'List<AWS::EC2::AvailabilityZone::Name>'
|
|
|
- NumberOfAZs:
|
|
|
- AllowedValues:
|
|
|
- - '1'
|
|
|
- - '2'
|
|
|
- - '3'
|
|
|
- - '4'
|
|
|
- Default: '2'
|
|
|
- Description: >-
|
|
|
- Number of Availability Zones to use in the VPC. This must match the number
|
|
|
- of selections in the list of Availability Zones.
|
|
|
- Type: String
|
|
|
- VPCCIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.0.0/16
|
|
|
- Description: CIDR block for the VPC.
|
|
|
- Type: String
|
|
|
- PublicSubnet1CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.0.0/21
|
|
|
- Description: CIDR block for public subnet 1 located in Availability Zone 1, for ASAv1.
|
|
|
- Type: String
|
|
|
- PublicSubnet2CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.8.0/21
|
|
|
- Description: CIDR block for public subnet 2 located in Availability Zone 2, for ASAv2.
|
|
|
- Type: String
|
|
|
- PublicSubnet3CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.16.0/21
|
|
|
- Description: CIDR block for public subnet 3 located in Availability Zone 3, for ASAv3.
|
|
|
- Type: String
|
|
|
- PublicSubnet4CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.24.0/21
|
|
|
- Description: CIDR block for public subnet 4 located in Availability Zone 4, for ASAv4.
|
|
|
- Type: String
|
|
|
- PrivateSubnet1CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.32.0/21
|
|
|
- Description: CIDR block for private subnet 1 located in Availability Zone 1, for ASAv1.
|
|
|
- Type: String
|
|
|
- PrivateSubnet2CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.40.0/21
|
|
|
- Description: CIDR block for private subnet 2 located in Availability Zone 2, for ASAv2.
|
|
|
- Type: String
|
|
|
- PrivateSubnet3CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.48.0/21
|
|
|
- Description: CIDR block for private subnet 3 located in Availability Zone 3, for ASAv3.
|
|
|
- Type: String
|
|
|
- PrivateSubnet4CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.56.0/21
|
|
|
- Description: CIDR block for private subnet 4 located in Availability Zone 4, for ASAv4.
|
|
|
- Type: String
|
|
|
- NumberOfASAv:
|
|
|
- AllowedValues:
|
|
|
- - '1'
|
|
|
- - '2'
|
|
|
- - '3'
|
|
|
- - '4'
|
|
|
- Default: '2'
|
|
|
- Description: >-
|
|
|
- Number of ASAv instances to be initiated.
|
|
|
- Type: String
|
|
|
- ASAv1HostName:
|
|
|
- Type: String
|
|
|
- Default: ASAv01RAVPN
|
|
|
- Description: Enter ASAv1 hostname.
|
|
|
- ASAv2HostName:
|
|
|
- Type: String
|
|
|
- Default: ASAv02RAVPN
|
|
|
- Description: Enter ASAv2 hostname.
|
|
|
- ASAv3HostName:
|
|
|
- Type: String
|
|
|
- Default: ASAv03RAVPN
|
|
|
- Description: Enter ASAv3 hostname.
|
|
|
- ASAv4HostName:
|
|
|
- Type: String
|
|
|
- Default: ASAv04RAVPN
|
|
|
- Description: Enter ASAv4 hostname.
|
|
|
- DnsName:
|
|
|
- Type: String
|
|
|
- Description: Domain name of PublicHostedZone registered in Route53. This is the domain name behind which the ASAv firewall instances will be load balanced.
|
|
|
- Default: example.com
|
|
|
- InstanceTypeParam:
|
|
|
- Type: String
|
|
|
- Default: c5.large
|
|
|
- AllowedValues:
|
|
|
- - m4.large
|
|
|
- - m4.xlarge
|
|
|
- - m4.2xlarge
|
|
|
- - c3.large
|
|
|
- - c3.xlarge
|
|
|
- - c3.2xlarge
|
|
|
- - c4.large
|
|
|
- - c4.xlarge
|
|
|
- - c4.2xlarge
|
|
|
- - c5.large
|
|
|
- - c5.xlarge
|
|
|
- - c5.2xlarge
|
|
|
- Description: Select an instance type for the ASAv instances.
|
|
|
- VPNUser:
|
|
|
- Type: String
|
|
|
- Description: Test VPN username.
|
|
|
- VPNPassword:
|
|
|
- NoEcho: true
|
|
|
- Type: String
|
|
|
- Description: Test VPN password.
|
|
|
- KeyPair:
|
|
|
- Type: AWS::EC2::KeyPair::KeyName
|
|
|
- Description: ASAv instances will launch with this key pair.
|
|
|
- SSHLockDownCIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/0-28
|
|
|
- Description: CIDR block for locking down SSH access on the outside interface.
|
|
|
- Type: String
|
|
|
- MgmtSubnet1CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.64.0/21
|
|
|
- Description: CIDR block for management subnet 1 located in Availability Zone 1, for ASAv1.
|
|
|
- Type: String
|
|
|
- MgmtSubnet2CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.72.0/21
|
|
|
- Description: CIDR block for management subnet 2 located in Availability Zone 2, for ASAv2.
|
|
|
- Type: String
|
|
|
- MgmtSubnet3CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.80.0/21
|
|
|
- Description: CIDR block for management subnet 3 located in Availability Zone 3, for ASAv3.
|
|
|
- Type: String
|
|
|
- MgmtSubnet4CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.88.0/21
|
|
|
- Description: CIDR block for management subnet 4 located in Availability Zone 4, for ASAv4.
|
|
|
- Type: String
|
|
|
- VPNPoolCIDR1:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(19))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/19
|
|
|
- Default: 172.16.0.0/19
|
|
|
- Description: This is a /19 CIDR block for a ghost VPN pool for ASAv1. VPN clients connecting in will be assigned an IP from this subnet. This subnet should not overlap with the on-premises CIDR or VPC CIDR blocks. You can use the default value.
|
|
|
- Type: String
|
|
|
- VPNPoolCIDR2:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(19))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/19
|
|
|
- Default: 172.16.32.0/19
|
|
|
- Description: This is a /19 CIDR block for a ghost VPN pool for ASAv2. VPN clients connecting in will be assigned an IP from this subnet. This subnet should not overlap with the on-premises CIDR or VPC CIDR blocks. You can use the default value.
|
|
|
- Type: String
|
|
|
- VPNPoolCIDR3:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(19))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/19
|
|
|
- Default: 172.16.64.0/19
|
|
|
- Description: This is a /19 CIDR block for a ghost VPN pool for ASAv3. VPN clients connecting in will be assigned an IP from this subnet. This subnet should not overlap with the on-premises CIDR or VPC CIDR blocks. You can use the default value.
|
|
|
- Type: String
|
|
|
- VPNPoolCIDR4:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(19))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/19
|
|
|
- Default: 172.16.96.0/19
|
|
|
- Description: This is a /19 CIDR block for a ghost VPN pool for ASAv4. VPN clients connecting in will be assigned an IP from this subnet. This subnet should not overlap with the on-premises CIDR or VPC CIDR blocks. You can use the default value.
|
|
|
- Type: String
|
|
|
- QSS3BucketName:
|
|
|
- AllowedPattern: '^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$'
|
|
|
- ConstraintDescription: >-
|
|
|
- Quick Start bucket name can include numbers, lowercase letters, uppercase
|
|
|
- letters, and hyphens (-). It cannot start or end with a hyphen (-).
|
|
|
- Default: aws-quickstart
|
|
|
- Description: >-
|
|
|
- S3 bucket name for the Quick Start assets. Quick Start bucket name can
|
|
|
- include numbers, lowercase letters, uppercase letters, and hyphens (-). It
|
|
|
- cannot start or end with a hyphen (-).
|
|
|
- Type: String
|
|
|
- QSS3BucketRegion:
|
|
|
- Default: us-east-1
|
|
|
- Description: >-
|
|
|
- The AWS Region where the Quick Start S3 bucket (QSS3BucketName) is hosted.
|
|
|
- When using your own bucket, you must specify this value.
|
|
|
- Type: String
|
|
|
- QSS3KeyPrefix:
|
|
|
- AllowedPattern: '^[0-9a-zA-Z-/]*$'
|
|
|
- ConstraintDescription: >-
|
|
|
- Quick Start key prefix can include numbers, lowercase letters, uppercase
|
|
|
- letters, hyphens (-), and forward slash (/).
|
|
|
- Default: quickstart-cisco-asav-ravpn/
|
|
|
- Description: >-
|
|
|
- S3 key prefix for the Quick Start assets. Quick Start key prefix can
|
|
|
- include numbers, lowercase letters, uppercase letters, hyphens (-), and
|
|
|
- forward slash (/).
|
|
|
- Type: String
|
|
|
- TGWSubnet1CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.96.0/21
|
|
|
- Description: CIDR block for AWS Transit Gateway subnet 1 located in Availability Zone 1.
|
|
|
- Type: String
|
|
|
- TGWSubnet2CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.104.0/21
|
|
|
- Description: CIDR block for AWS Transit Gateway subnet 2 located in Availability Zone 2.
|
|
|
- Type: String
|
|
|
- TGWSubnet3CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.112.0/21
|
|
|
- Description: CIDR block for AWS Transit Gateway subnet 3 located in Availability Zone 3.
|
|
|
- Type: String
|
|
|
- TGWSubnet4CIDR:
|
|
|
- AllowedPattern: >-
|
|
|
- ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Default: 10.0.120.0/21
|
|
|
- Description: CIDR block for AWS Transit Gateway subnet 4 located in Availability Zone 4.
|
|
|
- Type: String
|
|
|
- AmazonSideAsn:
|
|
|
- Description: A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.
|
|
|
- Type: String
|
|
|
- Default: 64513
|
|
|
- OnPremFirewallPublicIP:
|
|
|
- Description: Specify the public IP address of the on-premises gateway.
|
|
|
- Type: String
|
|
|
- OnPremFirewallASN:
|
|
|
- Description: Specify the BGP ASN of the on-premises gateway.
|
|
|
- Type: String
|
|
|
- Default: 65001
|
|
|
- PreSharedKeyForVPNAttachment:
|
|
|
- Description: Specify the pre shared key of the customer gateway. Must be 15 characters in length and cannot start with zero (0).
|
|
|
- NoEcho: true
|
|
|
- Type: String
|
|
|
- Default: casav1234567891
|
|
|
- MinLength: 15
|
|
|
- MaxLength: 15
|
|
|
- OnPremCIDR:
|
|
|
- AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
|
|
|
- ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
|
|
|
- Description: CIDR block for the on-premises network.
|
|
|
- Type: String
|
|
|
- VPNTunnelCIDRs:
|
|
|
- Description: Specify the tunnel inside CIDR blocks for the on-premises firewall. You can use the default pre-filled CIDR blocks as well.
|
|
|
- Type: CommaDelimitedList
|
|
|
- Default: "169.254.6.0/30, 169.254.7.0/30"
|
|
|
-Conditions:
|
|
|
- UsingDefaultBucket: !Equals
|
|
|
- - !Ref QSS3BucketName
|
|
|
- - aws-quickstart
|
|
|
- 3SubnetCondition: !Or
|
|
|
- - !Equals
|
|
|
- - !Ref 'NumberOfAZs'
|
|
|
- - '3'
|
|
|
- - !Condition 4SubnetCondition
|
|
|
- 4SubnetCondition: !Equals
|
|
|
- - !Ref 'NumberOfAZs'
|
|
|
- - '4'
|
|
|
- 1ASAvCondition: !Or
|
|
|
- - !Equals
|
|
|
- - !Ref 'NumberOfASAv'
|
|
|
- - '1'
|
|
|
- - !Condition '2ASAvCondition'
|
|
|
- 2ASAvCondition: !Or
|
|
|
- - !Equals
|
|
|
- - !Ref 'NumberOfASAv'
|
|
|
- - '2'
|
|
|
- - !Condition '3ASAvCondition'
|
|
|
- 3ASAvCondition: !Or
|
|
|
- - !Equals
|
|
|
- - !Ref 'NumberOfASAv'
|
|
|
- - '3'
|
|
|
- - !Condition '4ASAvCondition'
|
|
|
- 4ASAvCondition: !Equals
|
|
|
- - !Ref 'NumberOfASAv'
|
|
|
- - '4'
|
|
|
-Resources:
|
|
|
- VPCStack:
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}submodules/quickstart-aws-vpc/templates/aws-vpc.template.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- AvailabilityZones: !Join
|
|
|
- - ','
|
|
|
- - !Ref AvailabilityZones
|
|
|
- NumberOfAZs: !Ref NumberOfAZs
|
|
|
- VPCCIDR: !Ref VPCCIDR
|
|
|
- PrivateSubnet1ACIDR: !Ref PrivateSubnet1CIDR
|
|
|
- PrivateSubnet2ACIDR: !Ref PrivateSubnet2CIDR
|
|
|
- PrivateSubnet3ACIDR: !Ref PrivateSubnet3CIDR
|
|
|
- PrivateSubnet4ACIDR: !Ref PrivateSubnet4CIDR
|
|
|
- PublicSubnet1CIDR: !Ref PublicSubnet1CIDR
|
|
|
- PublicSubnet2CIDR: !Ref PublicSubnet2CIDR
|
|
|
- PublicSubnet3CIDR: !Ref PublicSubnet3CIDR
|
|
|
- PublicSubnet4CIDR: !Ref PublicSubnet4CIDR
|
|
|
- TGWStack:
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-tgw.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- AvailabilityZones: !Join
|
|
|
- - ','
|
|
|
- - !Ref AvailabilityZones
|
|
|
- NumberOfAZs: !Ref NumberOfAZs
|
|
|
- NumberOfASAv: !Ref NumberOfASAv
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- NetworkInterfaceId1ASAv1: !If [1ASAvCondition, !GetAtt 'ASAvStack1.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId1ASAv2: !If [2ASAvCondition, !GetAtt 'ASAvStack1.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId2ASAv2: !If [2ASAvCondition, !GetAtt 'ASAvStack2.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId1ASAv3: !If [3ASAvCondition, !GetAtt 'ASAvStack1.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId2ASAv3: !If [3ASAvCondition, !GetAtt 'ASAvStack2.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId3ASAv3: !If [3ASAvCondition, !GetAtt 'ASAvStack3.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId1ASAv4: !If [4ASAvCondition, !GetAtt 'ASAvStack1.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId2ASAv4: !If [4ASAvCondition, !GetAtt 'ASAvStack2.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId3ASAv4: !If [4ASAvCondition, !GetAtt 'ASAvStack3.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- NetworkInterfaceId4ASAv4: !If [4ASAvCondition, !GetAtt 'ASAvStack4.Outputs.InsideENI', !Ref "AWS::NoValue"]
|
|
|
- PrivateSubnet1ARouteTable: !GetAtt 'VPCStack.Outputs.PrivateSubnet1ARouteTable'
|
|
|
- PrivateSubnet2ARouteTable: !GetAtt 'VPCStack.Outputs.PrivateSubnet2ARouteTable'
|
|
|
- PrivateSubnet3ARouteTable: !If [3SubnetCondition, !GetAtt 'VPCStack.Outputs.PrivateSubnet3ARouteTable', !Ref "AWS::NoValue"]
|
|
|
- PrivateSubnet4ARouteTable: !If [4SubnetCondition, !GetAtt 'VPCStack.Outputs.PrivateSubnet4ARouteTable', !Ref "AWS::NoValue"]
|
|
|
- VPNPoolCIDR1: !Ref VPNPoolCIDR1
|
|
|
- VPNPoolCIDR2: !Ref VPNPoolCIDR2
|
|
|
- VPNPoolCIDR3: !Ref VPNPoolCIDR3
|
|
|
- VPNPoolCIDR4: !Ref VPNPoolCIDR4
|
|
|
- TGWSubnet1CIDR: !Ref TGWSubnet1CIDR
|
|
|
- TGWSubnet2CIDR: !Ref TGWSubnet2CIDR
|
|
|
- TGWSubnet3CIDR: !Ref TGWSubnet3CIDR
|
|
|
- TGWSubnet4CIDR: !Ref TGWSubnet4CIDR
|
|
|
- OnPremFirewallPublicIP: !Ref OnPremFirewallPublicIP
|
|
|
- OnPremFirewallASN: !Ref OnPremFirewallASN
|
|
|
- PreSharedKeyForVPNAttachment: !Ref PreSharedKeyForVPNAttachment
|
|
|
- VPNTunnelCIDRs: !Join
|
|
|
- - ","
|
|
|
- - !Ref VPNTunnelCIDRs
|
|
|
- AmazonSideAsn: !Ref AmazonSideAsn
|
|
|
- OnPremCIDR: !Ref OnPremCIDR
|
|
|
- QSS3BucketName: !Ref QSS3BucketName
|
|
|
- QSS3KeyPrefix: !Ref QSS3KeyPrefix
|
|
|
- QSS3BucketRegion: !Ref QSS3BucketRegion
|
|
|
- CommonResourcesStack:
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-common.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- DnsName: !Ref DnsName
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- SSHLockDownCIDR: !Ref SSHLockDownCIDR
|
|
|
- ASAvStack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-instance.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- InstanceTypeParam: !Ref InstanceTypeParam
|
|
|
- KeyPair: !Ref KeyPair
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- VPNUser: !Ref VPNUser
|
|
|
- VPNPassword: !Ref VPNPassword
|
|
|
- PrivateSubnet1ID: !GetAtt 'VPCStack.Outputs.PrivateSubnet1AID'
|
|
|
- PublicSubnet1ID: !GetAtt 'VPCStack.Outputs.PublicSubnet1ID'
|
|
|
- MgmtSubnet1CIDR: !Ref MgmtSubnet1CIDR
|
|
|
- ASAv1HostName: !Ref ASAv1HostName
|
|
|
- DnsName: !Ref DnsName
|
|
|
- VPNPoolFrom1: !Sub
|
|
|
- - ${a}.${b}.0.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR1 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR1 ]]]]
|
|
|
- VPNPoolTo1: !Sub
|
|
|
- - ${a}.${b}.31.254
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR1 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR1 ]]]]
|
|
|
- VPNPoolCIDRMask1: !Select [1, !Split [ "/" , !Ref VPNPoolCIDR1 ]]
|
|
|
- VPCCIDRMASK: !Select [1, !Split [ "/" , !Ref VPCCIDR ]]
|
|
|
- VPCPOOL: !Select [0, !Split ["/", !Ref VPCCIDR]]
|
|
|
- OnPremCIDRMask: !Select [1, !Split [ "/" , !Ref OnPremCIDR ]]
|
|
|
- OnPremPool: !Select [0, !Split ["/", !Ref OnPremCIDR]]
|
|
|
- PrivateSubnet1GW: !Sub
|
|
|
- - ${a}.${b}.${c}.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet1CIDR ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet1CIDR ]]]]
|
|
|
- c: !Select [2, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet1CIDR ]]]]
|
|
|
- PrivateSubnet1CIDR: !Ref PrivateSubnet1CIDR
|
|
|
- PrivateSubnet1Pool: !Select [0, !Split ["/", !Ref PrivateSubnet1CIDR]]
|
|
|
- PrivateSubnet1CIDRMask: !Select [1, !Split [ "/" , !Ref PrivateSubnet1CIDR ]]
|
|
|
- PublicHostedZone: !GetAtt 'CommonResourcesStack.Outputs.PublicHostedZone'
|
|
|
- MgmtRouteTable: !GetAtt 'CommonResourcesStack.Outputs.MgmtRouteTable'
|
|
|
- ASAvInstanceSGMGMT: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGMGMT'
|
|
|
- ASAvInstanceSGOUTSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGOUTSIDE'
|
|
|
- ASAvInstanceSGINSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGINSIDE'
|
|
|
- InstanceIdentifier: 0
|
|
|
-
|
|
|
- ASAvStack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-instance.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- InstanceTypeParam: !Ref InstanceTypeParam
|
|
|
- KeyPair: !Ref KeyPair
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- VPNUser: !Ref VPNUser
|
|
|
- VPNPassword: !Ref VPNPassword
|
|
|
- PrivateSubnet1ID: !GetAtt 'VPCStack.Outputs.PrivateSubnet2AID'
|
|
|
- PublicSubnet1ID: !GetAtt 'VPCStack.Outputs.PublicSubnet2ID'
|
|
|
- MgmtSubnet1CIDR: !Ref MgmtSubnet2CIDR
|
|
|
- ASAv1HostName: !Ref ASAv2HostName
|
|
|
- DnsName: !Ref DnsName
|
|
|
- VPNPoolFrom1: !Sub
|
|
|
- - ${a}.${b}.32.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR2 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR2 ]]]]
|
|
|
- VPNPoolTo1: !Sub
|
|
|
- - ${a}.${b}.63.254
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR2 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR2 ]]]]
|
|
|
- VPNPoolCIDRMask1: !Select [1, !Split [ "/" , !Ref VPNPoolCIDR2 ]]
|
|
|
- VPCCIDRMASK: !Select [1, !Split [ "/" , !Ref VPCCIDR ]]
|
|
|
- VPCPOOL: !Select [0, !Split ["/", !Ref VPCCIDR]]
|
|
|
- OnPremCIDRMask: !Select [1, !Split [ "/" , !Ref OnPremCIDR ]]
|
|
|
- OnPremPool: !Select [0, !Split ["/", !Ref OnPremCIDR]]
|
|
|
- PrivateSubnet1GW: !Sub
|
|
|
- - ${a}.${b}.${c}.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet2CIDR ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet2CIDR ]]]]
|
|
|
- c: !Select [2, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet2CIDR ]]]]
|
|
|
- PrivateSubnet1CIDR: !Ref PrivateSubnet2CIDR
|
|
|
- PrivateSubnet1Pool: !Select [0, !Split ["/", !Ref PrivateSubnet2CIDR]]
|
|
|
- PrivateSubnet1CIDRMask: !Select [1, !Split [ "/" , !Ref PrivateSubnet2CIDR ]]
|
|
|
- PublicHostedZone: !GetAtt 'CommonResourcesStack.Outputs.PublicHostedZone'
|
|
|
- MgmtRouteTable: !GetAtt 'CommonResourcesStack.Outputs.MgmtRouteTable'
|
|
|
- ASAvInstanceSGMGMT: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGMGMT'
|
|
|
- ASAvInstanceSGOUTSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGOUTSIDE'
|
|
|
- ASAvInstanceSGINSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGINSIDE'
|
|
|
- InstanceIdentifier: 1
|
|
|
-
|
|
|
- ASAvStack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-instance.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- InstanceTypeParam: !Ref InstanceTypeParam
|
|
|
- KeyPair: !Ref KeyPair
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- VPNUser: !Ref VPNUser
|
|
|
- VPNPassword: !Ref VPNPassword
|
|
|
- PrivateSubnet1ID: !GetAtt 'VPCStack.Outputs.PrivateSubnet3AID'
|
|
|
- PublicSubnet1ID: !GetAtt 'VPCStack.Outputs.PublicSubnet3ID'
|
|
|
- MgmtSubnet1CIDR: !Ref MgmtSubnet3CIDR
|
|
|
- ASAv1HostName: !Ref ASAv3HostName
|
|
|
- DnsName: !Ref DnsName
|
|
|
- VPNPoolFrom1: !Sub
|
|
|
- - ${a}.${b}.64.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR3 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR3 ]]]]
|
|
|
- VPNPoolTo1: !Sub
|
|
|
- - ${a}.${b}.95.254
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR3 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR3 ]]]]
|
|
|
- VPNPoolCIDRMask1: !Select [1, !Split [ "/" , !Ref VPNPoolCIDR3 ]]
|
|
|
- VPCCIDRMASK: !Select [1, !Split [ "/" , !Ref VPCCIDR ]]
|
|
|
- VPCPOOL: !Select [0, !Split ["/", !Ref VPCCIDR]]
|
|
|
- OnPremCIDRMask: !Select [1, !Split [ "/" , !Ref OnPremCIDR ]]
|
|
|
- OnPremPool: !Select [0, !Split ["/", !Ref OnPremCIDR]]
|
|
|
- PrivateSubnet1GW: !Sub
|
|
|
- - ${a}.${b}.${c}.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet3CIDR ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet3CIDR ]]]]
|
|
|
- c: !Select [2, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet3CIDR ]]]]
|
|
|
- PrivateSubnet1CIDR: !Ref PrivateSubnet3CIDR
|
|
|
- PrivateSubnet1Pool: !Select [0, !Split ["/", !Ref PrivateSubnet3CIDR]]
|
|
|
- PrivateSubnet1CIDRMask: !Select [1, !Split [ "/" , !Ref PrivateSubnet3CIDR ]]
|
|
|
- PublicHostedZone: !GetAtt 'CommonResourcesStack.Outputs.PublicHostedZone'
|
|
|
- MgmtRouteTable: !GetAtt 'CommonResourcesStack.Outputs.MgmtRouteTable'
|
|
|
- ASAvInstanceSGMGMT: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGMGMT'
|
|
|
- ASAvInstanceSGOUTSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGOUTSIDE'
|
|
|
- ASAvInstanceSGINSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGINSIDE'
|
|
|
- InstanceIdentifier: 2
|
|
|
-
|
|
|
- ASAvStack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Type: 'AWS::CloudFormation::Stack'
|
|
|
- Properties:
|
|
|
- TemplateURL: !Sub
|
|
|
- - >-
|
|
|
- https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/quickstart-cisco-asav-ravpn-instance.yaml
|
|
|
- - S3Region: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Ref 'AWS::Region'
|
|
|
- - !Ref QSS3BucketRegion
|
|
|
- S3Bucket: !If
|
|
|
- - UsingDefaultBucket
|
|
|
- - !Sub '${QSS3BucketName}-${AWS::Region}'
|
|
|
- - !Ref QSS3BucketName
|
|
|
- Parameters:
|
|
|
- InstanceTypeParam: !Ref InstanceTypeParam
|
|
|
- KeyPair: !Ref KeyPair
|
|
|
- VPCID: !GetAtt 'VPCStack.Outputs.VPCID'
|
|
|
- VPNUser: !Ref VPNUser
|
|
|
- VPNPassword: !Ref VPNPassword
|
|
|
- PrivateSubnet1ID: !GetAtt 'VPCStack.Outputs.PrivateSubnet4AID'
|
|
|
- PublicSubnet1ID: !GetAtt 'VPCStack.Outputs.PublicSubnet4ID'
|
|
|
- MgmtSubnet1CIDR: !Ref MgmtSubnet4CIDR
|
|
|
- ASAv1HostName: !Ref ASAv4HostName
|
|
|
- DnsName: !Ref DnsName
|
|
|
- VPNPoolFrom1: !Sub
|
|
|
- - ${a}.${b}.96.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR4 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR4 ]]]]
|
|
|
- VPNPoolTo1: !Sub
|
|
|
- - ${a}.${b}.127.254
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR4 ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref VPNPoolCIDR4 ]]]]
|
|
|
- VPNPoolCIDRMask1: !Select [1, !Split [ "/" , !Ref VPNPoolCIDR4 ]]
|
|
|
- VPCCIDRMASK: !Select [1, !Split [ "/" , !Ref VPCCIDR ]]
|
|
|
- VPCPOOL: !Select [0, !Split ["/", !Ref VPCCIDR]]
|
|
|
- OnPremCIDRMask: !Select [1, !Split [ "/" , !Ref OnPremCIDR ]]
|
|
|
- OnPremPool: !Select [0, !Split ["/", !Ref OnPremCIDR]]
|
|
|
- PrivateSubnet1GW: !Sub
|
|
|
- - ${a}.${b}.${c}.1
|
|
|
- - a: !Select [0, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet4CIDR ]]]]
|
|
|
- b: !Select [1, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet4CIDR ]]]]
|
|
|
- c: !Select [2, !Split ['.', !Select [0, !Split [ "/" , !Ref PrivateSubnet4CIDR ]]]]
|
|
|
- PrivateSubnet1CIDR: !Ref PrivateSubnet4CIDR
|
|
|
- PrivateSubnet1Pool: !Select [0, !Split ["/", !Ref PrivateSubnet4CIDR]]
|
|
|
- PrivateSubnet1CIDRMask: !Select [1, !Split [ "/" , !Ref PrivateSubnet4CIDR ]]
|
|
|
- PublicHostedZone: !GetAtt 'CommonResourcesStack.Outputs.PublicHostedZone'
|
|
|
- MgmtRouteTable: !GetAtt 'CommonResourcesStack.Outputs.MgmtRouteTable'
|
|
|
- ASAvInstanceSGMGMT: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGMGMT'
|
|
|
- ASAvInstanceSGOUTSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGOUTSIDE'
|
|
|
- ASAvInstanceSGINSIDE: !GetAtt 'CommonResourcesStack.Outputs.ASAvInstanceSGINSIDE'
|
|
|
- InstanceIdentifier: 3
|
|
|
-
|
|
|
-Outputs:
|
|
|
- AccountId:
|
|
|
- Description: Amazon Account ID
|
|
|
- Value: !Ref 'AWS::AccountId'
|
|
|
-#------------------------------- ASAvStack1-----------------
|
|
|
- ASAv1MGMTIPStack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Description: ASAv Instance 1 Management IP
|
|
|
- Value: !GetAtt ASAvStack1.Outputs.ASAv1MGMTIP
|
|
|
- ASAv1PublicIPStack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Description: ASAv Instance 1 Public IP
|
|
|
- Value: !GetAtt ASAvStack1.Outputs.ASAv1PublicIP
|
|
|
- VPNPoolFrom1Stack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Description: ASAv Instance 1 VPN Pool From
|
|
|
- Value: !GetAtt ASAvStack1.Outputs.VPNPoolFrom1
|
|
|
- VPNPoolTo1Stack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Description: ASAv Instance 1 VPN Pool To
|
|
|
- Value: !GetAtt ASAvStack1.Outputs.VPNPoolTo1
|
|
|
- VPNPoolMask1Stack1:
|
|
|
- Condition: 1ASAvCondition
|
|
|
- Description: ASAv Instance 1 VPN Pool Mask
|
|
|
- Value: !GetAtt ASAvStack1.Outputs.VPNPoolCIDRMask1
|
|
|
-#------------------------------- ASAvStack2-----------------
|
|
|
- ASAv2MGMTIPStack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Description: ASAv Instance 2 Management IP
|
|
|
- Value: !GetAtt ASAvStack2.Outputs.ASAv1MGMTIP
|
|
|
- ASAv2PublicIPStack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Description: ASAv Instance 2 Public IP
|
|
|
- Value: !GetAtt ASAvStack2.Outputs.ASAv1PublicIP
|
|
|
- VPNPoolFrom2Stack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Description: ASAv Instance 2 VPN Pool From
|
|
|
- Value: !GetAtt ASAvStack2.Outputs.VPNPoolFrom1
|
|
|
- VPNPoolTo2Stack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Description: ASAv Instance 2 VPN Pool To
|
|
|
- Value: !GetAtt ASAvStack2.Outputs.VPNPoolTo1
|
|
|
- VPNPoolMask2Stack2:
|
|
|
- Condition: 2ASAvCondition
|
|
|
- Description: ASAv Instance 2 VPN Pool Mask
|
|
|
- Value: !GetAtt ASAvStack2.Outputs.VPNPoolCIDRMask1
|
|
|
-#------------------------------- ASAvStack3-----------------
|
|
|
- ASAv3MGMTIPStack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Description: ASAv Instance 3 Management IP
|
|
|
- Value: !GetAtt ASAvStack3.Outputs.ASAv1MGMTIP
|
|
|
- ASAv3PublicIPStack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Description: ASAv Instance 3 Public IP
|
|
|
- Value: !GetAtt ASAvStack3.Outputs.ASAv1PublicIP
|
|
|
- VPNPoolFrom3Stack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Description: ASAv Instance 3 VPN Pool From
|
|
|
- Value: !GetAtt ASAvStack3.Outputs.VPNPoolFrom1
|
|
|
- VPNPoolTo3Stack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Description: ASAv Instance 3 VPN Pool To
|
|
|
- Value: !GetAtt ASAvStack3.Outputs.VPNPoolTo1
|
|
|
- VPNPoolMask3Stack3:
|
|
|
- Condition: 3ASAvCondition
|
|
|
- Description: ASAv Instance 3 VPN Pool Mask
|
|
|
- Value: !GetAtt ASAvStack3.Outputs.VPNPoolCIDRMask1
|
|
|
-#------------------------------- ASAvStack4-----------------
|
|
|
- ASAv4MGMTIPStack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Description: ASAv Instance 4 Management IP
|
|
|
- Value: !GetAtt ASAvStack4.Outputs.ASAv1MGMTIP
|
|
|
- ASAv4PublicIPStack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Description: ASAv Instance 4 Public IP
|
|
|
- Value: !GetAtt ASAvStack4.Outputs.ASAv1PublicIP
|
|
|
- VPNPoolFrom4Stack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Description: ASAv Instance 4 VPN Pool From
|
|
|
- Value: !GetAtt ASAvStack4.Outputs.VPNPoolFrom1
|
|
|
- VPNPoolTo4Stack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Description: ASAv Instance 4 VPN Pool To
|
|
|
- Value: !GetAtt ASAvStack4.Outputs.VPNPoolTo1
|
|
|
- VPNPoolMask4Stack4:
|
|
|
- Condition: 4ASAvCondition
|
|
|
- Description: ASAv Instance 4 VPN Pool Mask
|
|
|
- Value: !GetAtt ASAvStack4.Outputs.VPNPoolCIDRMask1
|
|
|
-#--------------------------------------------------------------
|
|
|
- VPNTunnelOutsideIPs:
|
|
|
- Description: VPN Tunnel Outside IP
|
|
|
- Value: !GetAtt TGWStack.Outputs.VPNTunnelOutsideIPs
|