如何使用 AWS CLI 設定 Client VPN?

2 分的閱讀內容
0

如何使用 AWS Command Line Interface (AWS CLI) 設定 AWS Client VPN?

簡短描述

若要使用 AWS CLI 設定 Client VPN:

1.    為您的特定驗證類型設定 Client VPN:相互或使用者型。

2.    將子網路與您在步驟 1 中建立的 Client VPN 建立關聯。

3.    新增授權規則以授與用戶端存取目標虛擬私人雲端 (VPC)。

4.    (選擇性) 視需要將其他路由新增至 Client VPN 端點上的目的地網路。

5.    下載 Client VPN 端點設定檔案,以分配給您的用戶端。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確認您使用的是最新的 AWS CLI 版本。Client VPN 服務的 API 動作僅適用於最新的 AWS CLI 版本。

使用相互驗證設定 Client VPN

1.    佈建伺服器憑證並將其匯入 AWS 憑證管理員 (ACM)。如需產生伺服器和用戶端憑證和金鑰的詳細步驟,請參閱相互驗證

2.    記下伺服器憑證 Amazon Resource Name (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

活動目錄驗證

1.    針對目錄 ID,指定 AWS Active Directory 的識別碼。

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=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 身分識別與存取管理 (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

注意:「SAML 提供者」是 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

對於基於活動目錄的認證:

$ 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 年前