Я использую Terraform для развертывания моей инфраструктуры на AWS и сохранения состояния в файле .tfstate. В моем приложении мне нужно подключиться к VPN в другие сети, где администратор другой сети определил параметры соединения IPSec ESP, которым должно придерживаться VPN-соединение на моем конце.
Используя Terraform, я создаю VPN-шлюз и клиентский шлюз с параметрами удаленной сети, насколько это возможно. Затем я создаю VPN-соединение и соответствующий маршрут. Вот мой код VPN в Terraform:
resource "aws_vpn_gateway" "vpn_gw" {
vpc_id = "${aws_vpc.default.id}"
tags {
Name = "default"
Terraform = true
}
}
resource "aws_customer_gateway" "customer_gw" {
bgp_asn = 65000
ip_address = "172.0.0.1"
type = "ipsec.1"
}
resource "aws_vpn_connection" "default" {
vpn_gateway_id = "${aws_vpn_gateway.vpn_gw.id}"
customer_gateway_id = "${aws_customer_gateway.customer_gw.id}"
type = "ipsec.1"
static_routes_only = true
}
resource "aws_vpn_connection_route" "office" {
destination_cidr_block = "192.168.10.0/24"
vpn_connection_id = "${aws_vpn_connection.default.id}"
}
Я должен иметь возможность установить следующие параметры в моем VPN-туннеле для фазы 1 и фазы 2 соединения:
Фаза 1
- Метод аутентификации, например Предварительно общий секрет
- Схема шифрования, например АЙК
- Группа Диффи-Хеллмана например Группа 2
- Алгоритм шифрования, например AES-256
- Алгоритм хеширования, например SHA-1
- Основной или агрессивный режим, например Основной режим
- Срок службы (для повторных переговоров) например 86400
Фаза 2
- Инкапсуляция (ESP или AH) например ESP
- Алгоритм шифрования, например. AES-256
- Алгоритм аутентификации, например SHA-1
- Совершенная прямая секретность, например NO-PFS
- Срок службы (для повторных переговоров) например 3600
Документы по клиентскому шлюзу VPN показывают, что вы не можете самостоятельно установить такое количество параметров: https://www.terraform.io/docs/providers/aws/r/customer_gateway.html Boto API также не позволяет устанавливать какие-либо дополнительные параметры.
Есть ли способ установить эти параметры (программно)?