OneLoginとAWS ClientVPNをSAML連携してみた

f:id:pentioKM:20210520144843p:plain
こんにちは、OneLogin担当の目良です。この間、銭湯好きの友人に連れられ、久しぶりに銭湯に行ってきました。そんなに好きではなかった銭湯が自分も大人になったのかすごく居心地がよく最高でした。今では友人よりも自分がハマってしまい、週一で通ってます笑

さて、今回、読者の皆様にご紹介したいのはOneLoginとAWS Client VPNがSAML連携できるというお話です。昨今のリモートワークが進む中、社員による自宅やカフェ、コワーキングスペースなどの管理者の監督下にいない外部のネットワークからクラウドを利用する機会が増えていますよね。従来からあるVPN網は拠点ネットワークへの入り口なので、多くの企業では大多数の従業員による同時アクセスを収容する設備までは持ち合わせていない場合がほとんどだと思います。

そこで昨今ではAmazonの提供するAWS Client VPNを利用したマネージド型・スケーラブルなVPNを構築するケースが増えてます。元々AWS Client VPNでは証明書を用いた相互認証やActive Directory連携を前提とするAD認証の2つを利用する必要がありましたが、ペンティオでは、クライアント証明書の発行・配布・失効やAD設定すべてを不要とする、OneLoginによるSAML2.0シングルサインオン連携をご提案します。

今日はそんなOneLoginとAWS Client VPNの連携のお話です。

目次

必要なもの

  • OneLoginのSuper UserまたはAccount Owner権限を持つアカウントを所有していること
  • AWSのアカウントを所有していること
  • VPN接続するVPC
  • サーバ証明書のACMへの登録
  • AWS 公式ドキュメントを参照してください
  • docs.aws.amazon.com
  • AWS IAM, VPC, Client VPN等の管理権限を所有していること
  • ※詳しくはAWSでご確認ください

OneLoginの設定

OneLoginに管理者としてログインし、カタログからAWS Client VPNコネクタを追加します f:id:pentioKM:20210319104237p:plain

このコネクターはOneLoginのポータルサイトからログインするものではないので、Visible in portalInvisibleにします

これは結構おすすめ。

エンドユーザが誤ってログインを試みたりしないように、ポータル画面にはいらないものは非表示にしましょう! f:id:pentioKM:20210319104242p:plain

More Actions > [SAML Metadata]をクリックし、SAML Metadataをダウンロードします f:id:pentioKM:20210319104248p:plain

AccessタブでRoleを割り当てます Accessタブ > Rolesで割り当てたいRoleを選択し、[SAVE]します f:id:pentioKM:20210402121150p:plain

AWSでのIDプロバイダーの設定

OneLoginでの認証を行うためにAWSでOneLoginをIDプロバイダーとして登録します

AWSに管理者としてログインし、IAM > アクセス管理 > [プロバイダを追加]をクリックします f:id:pentioKM:20210402121230p:plain

プロバイダの設定を下記のように設定します

  • プロバイダのタイプ:SAML
  • プロバイダ名:OneLogin(任意)
  • メタデータドキュメント:OneLoginの設定でダウンロードしたメタデータファイル

各項目を設定したら、[プロバイダを追加]をクリックします f:id:pentioKM:20210318184139p:plain

ID プロバイダーが追加されるとページが遷移し、ページ上部でロールの割り当てを求めるポップアップが表示されますが、割り当てをする必要はありませんので、そのまま閉じていただいて問題ありません。 以上で、IDプロバイダーの登録は完了です f:id:pentioKM:20210318184202p:plain

Client VPNの設定

クライアントVPNエンドポイントを作成します VPCダッシュボード > 仮想プライベートネットワーク(VPN) > クライアントVPNエンドポイント を開き、[クライアントVPNエンドポイントの作成]をクリックします f:id:pentioKM:20210402121336p:plain

クライアントVPNエンドポイントの各項目を記入します 下記の表を参考に項目を記入し、[クライアントVPNエンドポイントの作成]をクリックします *下記の表以外の項目の設定はデフォルトのままで問題ありません f:id:pentioKM:20210318184924p:plainf:id:pentioKM:20210318184938p:plain

クライアントVPNエンドポイントが作成されたことを確認します 次にVPN接続後にアクセスすることができるVPCを設定します 作成したクライアントVPNエンドポイントを選択し、関連付けタブ > [関連付け]をクリックします f:id:pentioKM:20210318185026p:plain

VPN接続後にアクセスすることができるVPCとVPC内のサブネットを選択し、[関連付け]をクリックします f:id:pentioKM:20210402121503p:plain

どのユーザーがどのネットワーク範囲にアクセスすることができるのかを制限するルールを設定します

*すべてのユーザーがすべてのネットワーク範囲にアクセスすることを許可する場合でも本設定は必須です 作成したクライアントVPNエンドポイントを選択し、認証タブ > [受信の承認]をクリックします f:id:pentioKM:20210318185200p:plain

アクセスを有効にする送信先ネットには、接続先のVPCのCIDR を入力し、アクセスを付与する対象には すべてのユーザーにアクセスを許可する を選択し、[認証ルールの追加]をクリックします f:id:pentioKM:20210402121542p:plain

クライアントVPNエンドポイントの状態が 使用可能 に変わったことを確認できましたら、クライアントVPNエンドポイントの設定は完了です f:id:pentioKM:20210318185312p:plain

設定したクライアントVPNエンドポイントを選択し、[クライアント設定のダウンロード]をクリックします f:id:pentioKM:20210402121616p:plain

クライアント設定のダウンロードというポップアップ内の[ダウンロード]をクリックします 以上でAWS側の設定は完了です f:id:pentioKM:20210319103603p:plain

AWS ClientVPN 接続テスト

AWS Client VPN downloadからAWS VPN Client アプリをダウンロードします

aws.amazon.com

AWS VPN Client アプリを起動し、ファイル > [プロファイルを管理]をクリックします f:id:pentioKM:20210319105224p:plain

表示された プロファイルを管理 というポップアップ内の[プロファイルを追加]をクリックします f:id:pentioKM:20210319105316p:plain

表示名を記入し、Client VPNの設定でダウンロードしたファイルを選択します f:id:pentioKM:20210319105613p:plain

プロファイルが追加されたことを確認し、[完了]をクリックします f:id:pentioKM:20210319105653p:plain

接続]をクリックします f:id:pentioKM:20210319105726p:plain

自動的にブラウザが立ち上がり、OneLoginのログイン画面が表示されますのでユーザー名を記入し[続行する]をクリックします f:id:pentioKM:20210319105759p:plain

パスワードを入力し、[続行する]をクリックします f:id:pentioKM:20210319105844p:plain

MFAを設定している場合はMFA認証が求められます f:id:pentioKM:20210319105916p:plain

認証が通ると[受信した認証の詳細、処理の詳細。このウィンドウをいつでも閉じることができます。]が表示されるとブラウザ側の処理は完了です f:id:pentioKM:20210319105948p:plain

接続済み。]と表示されるとVPN接続は完了です。 f:id:pentioKM:20210319110118p:plain