AWS CLI を使用してクライアント VPN を設定するにはどうすればよいですか?
AWS コマンドラインインターフェイス (AWS CLI) を使用して AWS クライアント VPN を設定するにはどうすればよいですか?
簡単な説明
AWS CLI を使用してクライアント VPN を設定するには:
1. 特定の認証タイプ (相互認証またはユーザーベース認証) について、クライアント VPN を設定します。
2. ステップ 1 で作成したクライアント VPN にサブネットを関連付けます。
3. ターゲットの仮想プライベートクラウド (VPC) へのアクセス権をクライアントに付与する承認ルールを追加します。
4. (オプション) 必要に応じて、クライアント VPN エンドポイント上の送信先ネットワークへのルートをさらに追加します。
5. クライアント VPN エンドポイント設定ファイルをダウンロードして、クライアントに配布します。
解決方法
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください。クライアント VPN サービスの API アクションは、最新の AWS CLI バージョンでのみ使用できます。
相互認証を使用してクライアント 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 でプロビジョニングされている必要があります。
ユーザベース認証を使用してクライアント VPN を設定する
Active Directory 認証
1. [Directory ID] (ディレクトリ ID) で、AWS Active Directory の ID を指定します。
2. create-client-vpn-endpoint コマンドを使用します。例えば、次のコマンドは、クライアントの CIDR ブロック 172.16.0.0/16 で Active Directory ベースの認証を使用するエンドポイントを作成します。
$ 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 解決のためにカスタム DNS サーバーを渡すには、「--dns-servers」オプションを使用します。クライアント VPN エンドポイントは、最大 2 つの DNS サーバーを持つことができます。DNS サーバーが指定されていない場合は、ローカルデバイス上で設定された DNS アドレスが使用されます。
- VPN セッションのトランスポートプロトコルを設定するには、「--transport-protocol」オプションを使用します。
フェデレーション認証 (SAML ベースのフェデレーション認証の場合)
1. [SAML provider ARN] (SAML プロバイダー ARN) で、AWS Identity and Access Management (IAM) Security Assertion Markup Language (SAML) ID プロバイダーの 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 です。
サブネットをクライアント VPN に関連付ける
1. 次のコマンドを使用して、前の手順で作成したクライアント VPN エンドポイントにサブネットを関連付けます。
$ aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --subnet-id subnet-0123456789abc123
このアクションにより、クライアント VPN の状態が「Available」に変更されます。VPC のローカルルートは、クライアント 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 を使用 (ID プロバイダーグループは「Engineering」)) の場合:
$ 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
(オプション) 必要に応じて、クライアント VPN エンドポイント上の送信先ネットワークへのルートをさらに追加する
1. クライアント 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
クライアント VPN エンドポイント設定ファイルをダウンロードして、クライアントに配布する
1. クライアント VPN エンドポイント設定ファイルをダウンロードして、クライアントに配布します。
相互認証の場合は、クライアント証明書とクライアントキーを設定ファイルに追加します。
$ aws ec2 export-client-vpn-client-configuration --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --output text>client-config.ovpn
関連するコンテンツ
- 質問済み 6年前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 9ヶ月前