SSL-VPN の二要素認証では、クライアントが接続を確立する前に、2 つの異なる認証方式を通過する必要があります。すなわち、デフォルトの SSL クライアント証明書認証と、IDaaS (Identity as a Service) を介したユーザー名およびパスワード認証です。クライアントは、両方の認証を通過しなければ Virtual Private Cloud (VPC) に接続できません。この二重レイヤーのメカニズムにより、なりすましや不正アクセスが防止され、SSL-VPN 接続のセキュリティが強化され、VPC 内の機密データが保護されます。本トピックでは、SSL-VPN の二要素認証機能を活用して、クライアントが安全な SSL-VPN 接続を確立し、VPC のリソースにアクセスする方法について説明します。
シナリオ
本トピックでは、上記の図に示すシナリオを使用します。ある企業では、従業員のアカウントおよび権限管理に Alibaba Cloud IDaaS を採用しています。同社は中国 (杭州) リージョンに VPC を保有しており、その VPC 内には Elastic Compute Service (ECS) インスタンス上でアプリケーションが展開されています。同社では、出張中の従業員がいつでも VPC 内のリソースにアクセスできるようにするとともに、すべてのアクセスに対して認証を実施することを要件としています。
これを実現するために、同社は VPN ゲートウェイの SSL-VPN 機能を活用し、二要素認証を有効化できます。VPC への SSL-VPN 接続を確立するには、クライアントがまず SSL クライアント証明書認証を通過した後、IDaaS を用いたユーザー名およびパスワード認証を通過する必要があります。このプロセスにより、VPC 内のリソースへの安全なアクセスが保証されます。
前提条件
Enterprise Edition の IDaaS EIAM インスタンスを作成済みである必要があります。詳細については、「インスタンスの管理」をご参照ください。
重要IDaaS EIAM 1.0 インスタンスは、新規購入ができなくなりました。IDaaS EIAM 2.0 インスタンスのご利用を推奨します。本トピックでは、IDaaS EIAM 2.0 インスタンスを例として使用します。詳細については、「[お知らせ] SSL-VPN の二要素認証は IDaaS EIAM 2.0 をサポート」をご参照ください。
IDaaS EIAM 1.0 インスタンスの使用方法については、「IDaaS EIAM 1.0 インスタンスの構成方法」をご参照ください。
EIAM インスタンス内で組織およびアカウントを作成済みである必要があります。
本トピックでは、以下の図に示すように、EIAM インスタンス内で手動で作成された組織およびアカウントを使用します。AD/LDAP 認証を用いて従業員がアプリケーションにログインできるよう、LDAP 経由でアカウント情報を EIAM インスタンスに自動同期したい場合は、「AD 認証を用いた VPC への SSL-VPN 接続の確立」をご参照ください。アカウント同期方法の詳細については、「アカウントおよび組織の作成」をご参照ください。

中国 (杭州) リージョンに VPC を作成し、その VPC 内の ECS インスタンスにアプリケーションを展開済みである必要があります。詳細については、「IPv4 VPC の作成」をご参照ください。
VPC 内の ECS インスタンスのセキュリティグループルールが、クライアントによるクラウドリソースへのアクセスを許可していることを確認してください。詳細については、「セキュリティグループルールの照会」および「セキュリティグループルールの追加」をご参照ください。
クライアントがインターネットにアクセスできること、およびクライアントのプライベート CIDR ブロックが VPC のプライベート CIDR ブロックと重複していないことを確認してください。
操作手順
ステップ 1:Alibaba Cloud SSL-VPN アプリケーションの追加
IDaaS コンソールにログインします。
EIAM ページで、「前提条件」で作成した EIAM インスタンスを見つけ、Console をクリックします(Actions 列)。
EIAM インスタンスの左側ナビゲーションウィンドウで、Application を選択します。Application ページで、Add Application をクリックします。
「Add Application」ページで、「Alibaba Cloud - SSL VPN」テンプレートを見つけ、Add Application をクリックします。
アプリケーションの追加ダイアログボックスで、アプリケーション名を入力し、追加 をクリックします。
アプリケーションの詳細ページの Sign-In タブで、以下のパラメーターを設定し、タブの下部にある Save をクリックします。
SSO: この機能は有効のままにしてください。
Grant Types:デフォルト値は Password Grant です。IdP のデフォルト値は IDaaS Account であり、これはシステムが EIAM インスタンス内のアカウント情報を用いて従業員を認証することを意味します。
Authorize: デフォルト値 Manually を使用します。これにより、このアプリケーションへのアクセスのために特定のアカウントに権限を手動で付与する必要があります。詳細については、「承認範囲」をご参照ください。
Sign-In タブのまま、Application Authorization タブをクリックします。
SSL-VPN 接続を必要とするアカウントに対して権限を付与します。詳細については、「アプリケーションの権限付与」をご参照ください。
ステップ 2:VPN ゲートウェイインスタンスの作成
- 「VPN ゲートウェイコンソール」にログインします。
VPN Gateway ページで、VPN Gateway の作成 をクリックします。
VPN ゲートウェイ ページで、以下の情報に基づいて VPN ゲートウェイを構成し、今すぐ購入 をクリックして支払いを完了します。
本トピックでは必須パラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。詳細については、「VPN ゲートウェイインスタンスの作成および管理」をご参照ください。
パラメーター
説明
リージョン
VPN ゲートウェイを作成するリージョンを選択します。本例では、中国 (杭州) を選択します。
説明VPN ゲートウェイは、VPC と同じリージョンに配置する必要があります。
ゲートウェイタイプ
VPN ゲートウェイのタイプを選択します。本例では、標準 を選択します。
ネットワークタイプ
VPN ゲートウェイインスタンスのネットワークタイプを選択します。本例では、パブリック を選択します。
トンネル
システムが、現在のリージョンで IPsec-VPN 接続にサポートするトンネルモードを表示します。
Virtual Private Cloud
接続先の VPC インスタンスを選択します。
vSwitch 1
VPC インスタンスから vSwitch を選択します。
シングルトンネルを選択した場合、1 つの vSwitch のみを指定する必要があります。
デュアルトンネルを選択した場合、2 つの vSwitch を指定する必要があります。
IPsec-VPN 機能を有効化すると、システムは各 vSwitch に対して弾性ネットワークインターフェイス(ENI)を作成し、IPsec-VPN 接続経由で VPC と通信するためのインターフェイスとして使用します。各 ENI は vSwitch 内で 1 つの IP アドレスを占有します。
説明システムはデフォルトで vSwitch を選択します。デフォルトの vSwitch を変更またはそのまま使用できます。
VPN ゲートウェイを作成した後は、関連付けられた vSwitch を変更できません。VPN ゲートウェイの詳細ページで、関連付けられた vSwitch、その vSwitch が属するゾーン、および vSwitch 内の ENI を確認できます。
vSwitch 2
VPC インスタンスから 2 つ目の vSwitch を選択します。
IPsec-VPN 接続のゾーン間ディザスタリカバリを実現するには、関連付けられた VPC 内で異なるゾーンに配置された 2 つの vSwitch を指定します。
1 つのゾーンのみをサポートするリージョンでは、ゾーン間ディザスタリカバリはサポートされません。IPsec-VPN 接続の高可用性を実現するには、同じゾーン内に 2 つの vSwitch を指定することを推奨します。また、最初の vSwitch と同じものを選択することも可能です。
説明VPC 内に 2 つ目の vSwitch が存在しない場合は、作成できます。「vSwitch の作成および管理」をご参照ください。
IPsec-VPN
IPsec-VPN 機能を有効化するかどうかを指定します。本例では、無効化 を選択します。
SSL-VPN
SSL-VPN 機能を有効化するかどうかを指定します。本例では、有効化 を選択します。
SSL 接続
接続可能なクライアントの最大数を選択します。
説明SSL-VPN 機能を有効化した後でなければ、[SSL 接続] を設定できません。
VPN Gateway ページに戻り、作成した VPN ゲートウェイインスタンスを確認します。
新しく作成された VPN ゲートウェイインスタンスは 準備中 状態です。1~5 分後、状態が 正常 に変わります。正常 状態は、VPN ゲートウェイが初期化され、使用可能になったことを示します。
ステップ 3:SSL サーバーの作成
左側ナビゲーションウィンドウで、 を選択します。
上部ナビゲーションバーで、SSL サーバーのリージョンを選択します。
説明SSL サーバーは、VPN ゲートウェイと同じリージョンに配置する必要があります。
SSL サーバー ページで、SSLサーバーの作成 をクリックします。
SSLサーバーの作成 パネルで、以下のパラメーターを用いて SSL サーバーを構成し、OK をクリックします。
本トピックでは必須パラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。詳細については、「SSL サーバーの作成および管理」をご参照ください。
パラメーター
説明
VPN Gateway
作成した VPN ゲートウェイインスタンスを選択します。
ローカルネットワーク
アクセス対象の VPC の CIDR ブロックを入力します。例:192.168.0.0/16。
クライアント CIDR ブロック
クライアントが VPC にアクセスする際に使用する CIDR ブロックを入力します。本例では、10.0.0.0/24 を入力します。
重要クライアント CIDR ブロックのサブネットマスクは、プレフィックス長が 16~29 ビットの範囲である必要があります。
クライアント CIDR ブロックは、ローカル CIDR ブロック、VPC CIDR ブロック、およびクライアントに関連付けられたルート CIDR ブロックと重複してはなりません。
クライアント CIDR ブロックには、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、またはこれらのサブネットのいずれかの使用を推奨します。パブリック IP アドレス範囲を使用する必要がある場合は、VPC のユーザ定義 CIDR ブロックとして設定し、適切なルーティングを確保する必要があります。「VPC のよくある質問」をご参照ください。
SSL サーバーを作成すると、システムは自動的にクライアント CIDR ブロックのルートを VPC のルートテーブルに追加します。このルートを VPC のルートテーブルに手動で追加しないでください。そうしないと、SSL-VPN 接続が中断される可能性があります。
Advanced Settings
二要素認証機能を有効化します。本例では EIAM 2.0 を使用します。その他のパラメーターはデフォルト値を使用します。
IDaaS インスタンスのリージョン: 中国 (杭州) を選択します。
IDaaS インスタンス: 「前提条件」セクションで作成した EIAM インスタンスを選択します。
IDaaS アプリケーション: Alibaba Cloud SSL-VPN アプリケーションを選択します。
説明UAE (ドバイ) リージョンで SSL サーバーを作成する場合、レイテンシーを低減するため、シンガポールの IDaaS EIAM 2.0 インスタンスと関連付けることを推奨します。
ステップ 4:SSL クライアント証明書の作成
左側ナビゲーションウィンドウで、 を選択します。
SSL クライアント ページで、SSL クライアントの作成 をクリックします。
SSL クライアントの作成 パネルで、SSL クライアント名を入力し、SSL サーバー を選択し、OK をクリックします。
SSL クライアント ページで、作成した SSL クライアントを見つけ、操作 列で 証明書のダウンロード をクリックします。
ダウンロードした SSL クライアント証明書をローカルデバイスに保存します。後ほどクライアントの構成で使用します。
ステップ 5:クライアントの構成
Linux クライアント
コマンドラインインターフェイスを開きます。
以下のコマンドを実行して OpenVPN クライアントをインストールします。
# CentOS の場合、以下のコマンドを実行します。 yum install -y openvpn # /etc/openvpn/conf/ ディレクトリが存在するか確認します。存在しない場合は、作成します。 cd /etc/openvpn # openvpn ディレクトリに移動します。 ls # openvpn ディレクトリ内に conf ディレクトリが存在するか確認します。 mkdir -p /etc/openvpn/conf # conf ディレクトリが存在しない場合は、作成します。 # Ubuntu の場合、以下のコマンドを実行します。 apt-get update apt-get install -y openvpn # /etc/openvpn/conf/ ディレクトリが存在するか確認します。存在しない場合は、作成します。 cd /etc/openvpn # openvpn ディレクトリに移動します。 ls # openvpn ディレクトリ内に conf ディレクトリが存在するか確認します。 mkdir -p /etc/openvpn/conf # conf ディレクトリが存在しない場合は、作成します。ダウンロードした SSL クライアント証明書を解凍し、/etc/openvpn/conf/ ディレクトリにコピーします。
/etc/openvpn/conf/ ディレクトリに移動し、以下のコマンドを実行して、ユーザー名およびパスワードを入力します。クライアントが IDaaS 認証を通過すると、SSL-VPN 接続が確立されます。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon
Windows クライアント
Windows 向け OpenVPN クライアント をダウンロードしてインストールします。
ダウンロードした SSL クライアント証明書を解凍し、OpenVPN\config ディレクトリにコピーします。
本例では、証明書を C:\Program Files\OpenVPN\config ディレクトリに解凍します。実際のシステム上のインストールディレクトリに合わせて、証明書をコピーしてください。
OpenVPN クライアントを起動し、接続 をクリックして、ユーザー名およびパスワードを入力します。クライアントが IDaaS 認証を通過すると、SSL-VPN 接続が確立されます。

macOS クライアント(OpenVPN)
コマンドラインインターフェイスを開きます。
クライアントに Homebrew がインストールされていない場合は、以下のコマンドを実行してインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"以下のコマンドを実行して OpenVPN クライアントをインストールします。
brew install openvpnダウンロードした SSL クライアント証明書を解凍し、構成ディレクトリにコピーします。
/usr/local/etc/openvpn ディレクトリ内のすべての構成ファイルをバックアップします。
重要OpenVPN のデフォルトインストールパスは、macOS のバージョンによって異なる場合があります。実際のインストールパスを使用してください。
以下のコマンドを実行して OpenVPN の構成ファイルを削除します。
rm /usr/local/etc/openvpn/*以下のコマンドを実行して、ダウンロードした SSL クライアント証明書を構成ディレクトリにコピーします。
cp cert_location /usr/local/etc/openvpn/cert_locationは、ダウンロードした SSL クライアント証明書のパスです(例: /Users/example/Downloads/certs6.zip)。
次のコマンドを実行して、証明書を抽出します。
cd /usr/local/etc/openvpn/ unzip /usr/local/etc/openvpn/certs6.zip/usr/local/etc/openvpn/ ディレクトリに移動し、以下のコマンドを実行してユーザー名およびパスワードを入力し、SSL-VPN 接続を確立します。
sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
ステップ 6:接続性のテスト
上記の手順を完了すると、クライアントはリモートから VPC 内のリソースにアクセスできるようになります。以下では、Linux クライアントから VPC への接続性をテストする方法を説明します。
クライアントでコマンドラインインターフェイスを開きます。
pingコマンドを実行して VPC 内の ECS1 インスタンスにアクセスし、接続性を確認します。ping <ECS1 インスタンスの IP アドレス>図に示すように応答パケットを受信できれば、クライアントが VPC 内のリソースにアクセスできることを確認できます。

よくある質問
IDaaS EIAM 1.0 インスタンスの構成
IDaaS EIAM 1.0 インスタンスを使用する必要がある場合は、「Alibaba Cloud SSL-VPN アプリケーションの追加」のステップをスキップできます。SSL サーバーを作成する際に、EIAM 1.0 インスタンスを直接バインドできます。その他の手順は同じです。
二段階目認証のサポート状況
いいえ。
IDaaS は、SSL-VPN 統合においてユーザー名およびパスワード認証のみをサポートしています。このシナリオでは、ワンタイムパスワード(OTP)や SMS 検証などの他の認証方式はサポートされていません。