AWS CLI を使用してクライアント VPN を設定するにはどうすればよいですか?

最終更新日: 2021 年 1 月 22 日

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

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?