tools/cloudconnect/aws-vpn.yaml (75 lines of code) (raw):

AWSTemplateFormatVersion: "2010-09-09" Description: > Creates CustomerGateway and enables static router if applicable Metadata: License: > Copyright 2017 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Parameters: PeerIp: Type: String Description: IP Address of Peer VPNGatewayId: Type: String BgpAsn: Type: Number MinValue: 64512 MaxValue: 65534 Description: Use private ASN 64512-65534 not used elsewhere in the network Default: 65534 StaticRoutesOnly: Type: String Default: false AllowedValues: - false - true StaticRoute: Type: String Default: "" Conditions: CreateStaticRoute: !Not [ !Equals [ !Ref StaticRoute, "" ] ] Resources: GcpGw: Type: "AWS::EC2::CustomerGateway" Properties: Type: ipsec.1 BgpAsn: !Ref BgpAsn IpAddress: !Ref PeerIp Tags: - Key: Name Value: !Ref "AWS::StackName" Vpn: Type: "AWS::EC2::VPNConnection" Properties: Type: ipsec.1 CustomerGatewayId: !Ref GcpGw VpnGatewayId: !Ref VPNGatewayId StaticRoutesOnly: !Ref StaticRoutesOnly Tags: - Key: Name Value: !Ref "AWS::StackName" Route0: Type: "AWS::EC2::VPNConnectionRoute" Condition: CreateStaticRoute Properties: DestinationCidrBlock: !Ref StaticRoute VpnConnectionId: !Ref Vpn Outputs: VpnId: Value: !Ref Vpn