本記事では、Amazon VPCにアクセスするためのOneLoginからAWS Client VPNへのSAML シングルサインオン(SSO)の設定手順をご案内します。
目次
2. AWS Certificate Manager (ACM)側の設定
前提条件
- OneLoginのライセンスが Starter, Enterprise, Unlimited または SSO, Advanced, Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- AWSのアカウントを所有していること
- AWS IAM、VPC、Client VPN等の管理権限を所有していること
*詳しくはAWSでご確認ください
1. OneLogin側の設定
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
AWS ClientVPN と検索し、該当コネクタを選択します
-
Visible in portal を無効にします
- [Save]をクリックします
- More Actions > SAML Metadata を選択します
-
Access タブに移動し、割り当てたいユーザーが属するロールを選択後、[Save]をクリックします
2. AWS Certificate Manager (ACM)側の設定
AWS Client VPNでは正しいサーバーに接続されているかを確認するためにサーバー証明書をAWS Certificate Manager(ACM)に登録する必要があります。本章では、クライアントPCでOpenVPN easy-rsaを使用してサーバーとクライアント証明書とキーを生成後、そのサーバーの証明書とキーをコンソールからACMにアップロードする手順をご案内します。
*使用可能な証明書:プライベート証明書
-
OpenVPN easy-rsaリポジトリをローカルにクローンし、easy-rsa/easyrsa3 フォルダに移動します
$ git clone https://github. com/OpenVPN/easy-rsa. git$ cd easy-rsa/easyrsa3
-
新しいPKI環境を初期化します
$ . /easyrsa init-pki
-
新しい認証機関(CA)を構築し、CA名を入力します
$ . /easyrsa build-ca nopass
例)PentioCA
-
サーバー証明書とキーを生成します
$ . /easyrsa build-server-full server nopass
-
ホームディレクトリにcustom_folderを作成し、ルート証明書とサーバー証明書、キーをコピーします
custom_folderに移動し、ルート証明書とサーバ証明書、キーが作成されていることを確認します$ mkdir ~/custom_folder/ $ cp pki/ca. crt ~/custom_folder/ $ cp pki/issued/server. crt ~/custom_folder/ $ cp pki/private/server. key ~/custom_folder/ $ cd ~/custom_folder/ $ ls
- 手順5までで作成した証明書をACMにインポートします
AWSに管理者としてログインし、ACMを開き、[証明書のインポート]をクリックします
-
証明書のインポート を以下の通りに設定し、[次へ]をクリックします
AWS 側の項目 設定する値 証明書本文 server. crt内の
-----BEGIN CERTIFICATE-----
Base64–encoded certificate
-----END CERTIFICATE-----
すべてを入力します
証明書のプライベートキー server. key内の
-----BEGIN PRIVATE KEY-----
Base64–encoded certificate
-----END PRIVATE KEY-----
すべてを入力します
証明書チェーン ca. crt内の
-----BEGIN CERTIFICATE-----
Base64–encoded certificate
-----END CERTIFICATE-----
すべてを入力します
- 証明書がインポートされたことを確認します
AWS Certificate Manager (ACM)へのサーバー証明書インポートは以上です。
3. AWS側のIDプロバイダーの設定
- AWSに管理者としてログインし、IAM > アクセス管理 > [プロバイダを追加]をクリックします
-
プロバイダのタイプ で SAML を選択し、任意の プロバイダ名 を入力します。メタデータドキュメント に
onelogin_metadata_xxxxxxx.xmlを選択し、[プロバイダを追加]をクリックします
-
{任意のプロバイダ名} が追加されました。と表示されることを確認します
*既存のVPCに接続する場合は、4. Amazon VPCの設定 は読み飛ばしてください
4. Amazon VPCの設定
本セクションではAmazon VPCの設定手順をご説明します。Amazon VPC(Amazon Virtual Private Cloud)とはAWSアカウント専用の仮想ネットワークです。Amazon VPCを使用することで定義した仮想ネットワーク内でAWSリソースを起動できます。VPNを用いてAWSリソースに接続するためにVCP設定する必要があります。
-
VPCの管理コンソールを開き、[VPCを作成]をクリックします
-
VPCの設定で名前タグとVPCのIPv4アドレス範囲を指定し、[VPCを作成]をクリックします
CIDR ブロックサイズは、/16 ネットマスクと /28 ネットマスクの間で設定します
-
{VPC名} が正常に作成されました と表示されることを確認します
- サブネットの管理コンソールを開き、[サブネットを作成]をクリックします
- VPC IDで手順3で作成してVPCを選択します
-
サブネット名とアベイラビリティゾーン、IPV4 CIDR ブロックを入力し、[サブネットを作成]をクリックします
- 次にインターネットへの出入り口となるインターネットゲートウェイを設定します
インターネットゲートウェイの管理コンソールを開き、[インターネットゲートウェイの作成]をクリックします
- インターネットゲートウェイの設定の名前タグを入力し、[インターネットゲートウェイの作成]をクリックします
- インターネットゲートウェイが作成されたことを確認し、アクション > [VPCにアタッチ]をクリックします
- 使用可能なVPCの欄で、手順3で作成したVPCを選択し、[インターネットゲートウェイのアタッチ]をクリックします
- ルートテーブルを設定します
ルートテーブルの管理コンソールを開き、[ルートテーブルの作成]をクリックします
- 名前タグと手順3で作成したVPCを選択し、[作成]をクリックします
- 現状はVPC内宛のみでインターネットゲートウェイ宛の通信のためのルートが登録されていません
そこで、[ルートの編集]をクリックし、インターネットゲートウェイ宛の通信のためのルートを登録します
- [ルートの追加]をクリックします
- 送信先に 0. 0. 0. 0/0 、ターゲットに手順6で作成したインターネットゲートウェイを設定し、[ルートの保存]をクリックします
以上で、インターネットゲートウェイ宛の通信のためのルートの設定は完了です
また、VPCの設定も完了です
5. Client VPNの設定
- クライアントVPNエンドポイントを作成します
VPCダッシュボード > 仮想プライベートネットワーク(VPN) > クライアントVPNエンドポイント を開き、[クライアントVPNエンドポイントの作成]をクリックします
-
以下の通りに設定し、[クライアントVPNエンドポイントの作成]をクリックします
*下記の表以外の項目の設定はデフォルトのままで問題ありません。AWS 側の項目 設定する値 名前タグ クライアントVPNエンドポイントの名前を設定します(例:pentio-vpn) クライアント IPv4 CIDR VPN接続時にクライアントに割り当てられるIPアドレスの範囲(例:10. 200. 0. 0/22) サーバー証明書ARN ACMにインポート済みのサーバー証明書を選択します
*証明書のインポート方法に関してはAWS Certificate Manager への証明書のインポートをご参照ください認証オプション ユーザーベースの認証 > 統合認証 を選択します SAML プロバイダーARN 3. IDプロバイダーの設定の手順1~3で作成したIDプロバイダーを選択します 接続ログ記録
クライアント接続の詳細を記録するかどうかを設定します。本ドキュメントでは いいえ を選択します クライアント接続ハンドラ クライアント接続ハンドラを有効化するかどうかを設定します。本ドキュメントでは いいえ を選択します スプリットトンネルを有効にする スプリットトンネルを有効化すると、インターネットへの通信はVPNを使用しないため効率が高まるため 有効 にすることを推奨します
- クライアントVPNエンドポイントが作成されたことを確認します
次にVPN接続後にアクセスすることができるVPCを設定します
作成したクライアントVPNエンドポイントを選択し、関連付けタブ > [関連付け]をクリックします
- VPN接続後にアクセスすることができるVPCとVPC内のサブネットを選択し、[関連付け]をクリックします
- どのユーザーがどのネットワーク範囲にアクセスすることができるのかを制限するルールを設定します
*すべてのユーザーがすべてのネットワーク範囲にアクセスすることを許可する場合でも本設定は必須です
作成したクライアントVPNエンドポイントを選択し、認証タブ > [受信の承認]をクリックします
- アクセスを有効にする送信先ネットには、接続先のVPCのCIDR を入力し、アクセスを付与する対象には すべてのユーザーにアクセスを許可する を選択し、[認証ルールの追加]をクリックします
- クライアントVPNエンドポイントの状態が 使用可能 に変わったことを確認できましたら、クライアントVPNエンドポイントの設定は完了です
- 設定したクライアントVPNエンドポイントを選択し、[クライアント設定のダウンロード]をクリックします
- クライアント設定のダウンロードというポップアップ内の[ダウンロード]をクリックします
Client VPNの設定は以上です。
6. AWS Client VPN 接続テスト
-
AWS Client VPN downloadからAWS VPN Client アプリをダウンロードします
- AWS VPN Client アプリを起動し、ファイル > [プロファイルを管理]をクリックします
- 表示された プロファイルを管理 というポップアップ内の[プロファイルを追加]をクリックします
- 表示名を入力し、5. Client VPNの設定の手順9でダウンロードしたファイルを選択します
- プロファイルが追加されたことを確認し、[完了]をクリックします
- [接続]をクリックします
- 自動的にブラウザが立ち上がり、OneLoginのログイン画面が表示されますのでユーザー名を入力し[続行する]をクリックします
- パスワードを入力し、[続行する]をクリックします
- MFAを設定している場合はMFA認証が求められます
- 認証が通ると「受信した認証の詳細、処理の詳細。このウィンドウをいつでも閉じることができます。」が表示されるとブラウザ側の処理は完了です
-
接続済み。と表示されることを確認します
AWS Client VPN接続テストは以上です。