如何使用 AWS CLI 配置 Client VPN?

2 分钟阅读
0

如何使用 AWS 命令行界面 (AWS CLI) 配置 AWS Client VPN?

简短描述

使用 AWS CLI 配置 Client VPN:

1.    为特定身份验证类型配置 Client VPN:双向或基于用户。

2.    将子网与步骤 1 中创建的 Client VPN 相关联。

3.    添加授权规则以授予客户端访问目标 Virtual Private Cloud (VPC)。

4.    (可选)根据需要在 Client VPN 终端节点上添加到目标网络的其他路由。

5.    下载 Client VPN 终端节点配置文件,以分发给客户端。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您运行的是最新版本的 AWS CLI。Client VPN 服务的 API 操作仅在最新版本的 AWS CLI 中可用。

使用双向身份验证配置 Client VPN

1.    配置服务器证书并将其导入 AWS Certificate Manager (ACM)。有关生成服务器和客户端证书及密钥的详细步骤,请参阅双向身份验证

2.    记下服务器证书 Amazon 资源名称 (ARN) 和客户端证书 ARN。

3.    使用 create-client-vpn-endpoint 命令。例如,以下命令创建一个使用双向身份验证的终端节点,其客户端 CIDR 块为 172.16.0.0/16。

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:
1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678 }
--connection-log-options Enabled=false

注意:

  • 对于客户端 IPv4 CIDR 块,用 CIDR 表示法指定 IP 地址范围,以分配客户端 IP 地址。例如:172.16.0.0/16。
  • “ClientRootCertificateChainArn”是客户端证书的 ARN。证书必须由证书颁发机构 (CA) 签名并在 ACM 中进行预置。

使用基于用户的身份验证配置 Client VPN

Active Directory 身份验证

1.    对于 Directory ID(目录 ID),指定 AWS Active Directory 的 ID。

2.    使用 create-client-vpn-endpoint 命令。例如,以下命令创建一个使用基于 Active Directory 的身份验证的终端节点,其客户端 CIDR 块为 172.16.0.0/16。

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options
Type=directory-service-authentication,ActiveDirectory={DirectoryId=d-1234567890}
--connection-log-options Enabled=false

注意:

  • 使用“--dns-servers”选项传递自定义 DNS 服务器以进行 DNS 解析。Client VPN 终端节点最多可以有两个 DNS 服务器。如果未指定 DNS 服务器,则使用在本地设备上配置的 DNS 地址。
  • 使用“--transport-protocol”选项为 VPN 会话设置传输协议。

联合身份验证(用于基于 SAML 的联合身份验证)

1.    对于 SAML 提供商 ARN,请指定AWS Identity and Access Management (IAM) 安全断言标记语言 (SAML) 身份提供商的 ARN。

2.    使用 create-client-vpn-endpoint 命令。例如,以下命令创建一个使用联合身份验证的终端节点,其客户端 CIDR 块为 172.16.0.0/16。

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options Type=federated-authentication,FederatedAuthentication={SAMLProviderArn=arn:aws:iam::123456789012:saml-provider/MySAMLProvider}
--connection-log-options Enabled=false

注意:“SAMLProviderArn”是 IAM 中新 SAML 提供商资源的 ARN。

将子网与 Client VPN 关联

1.    使用以下命令将子网与您在之前步骤中创建的 Client VPN 终端节点相关联。

$  aws ec2 associate-client-vpn-target-network
--client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --subnet-id subnet-0123456789abc123

此操作会将 Client VPN 的状态改变为“可用”。VPC 的本地路由将自动添加到 Client VPN 终端节点路由表中。VPC 的默认安全组将自动应用于子网关联。关联子网后,您可以修改安全组。

添加授权规则以授予客户端访问目标 VPC

1.    根据您的应用场景,使用以下命令之一添加授权规则。

对于双向身份验证:

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --authorize-all-groups

对于基于 Active Directory 的身份验证:

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id S-1-2-34-1234567890-1234567890-1234567890-1234

对于联合身份验证(使用 SAML 2.0,其中身份提供商组为“工程”):

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id Engineering

(可选)根据需要在 Client VPN 终端节点上添加到目标网络的其他路由

1.    使用以下命令在 Client VPN 终端节点上添加到目标网络的其他路由。

$ aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abcabca

下载 Client VPN 终端节点配置文件,以分发给客户端

1.    下载 Client VPN 终端节点配置文件,以分发给客户端。

对于双向身份验证,将客户端证书和客户端密钥附加到配置文件中:

$ aws ec2 export-client-vpn-client-configuration --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --output text>client-config.ovpn

AWS 官方
AWS 官方已更新 3 年前