日中間のゼロトラストNW

作成日:2021-05-24

Alibaba Cloud活用で日中間のゼロトラストネットワークを実現

img

はじめに

本記事では、Alibaba CloudとCloudflareとOktaを組み合わせて中国のクライアントから日本のWebサーバへゼロトラストネットワークによるアクセスを行う方法をご紹介します。

構成図

img

各コンポーネントを簡単に紹介します

  • Alibaba Cloud
    • VPN Gateway:フルトンネル接続で中国クライアントのすべてのトラフィックを受けます
    • CEN:上海VPCと東京VPC間をセキュア&安定性に優れた専用線で接続します
    • ECS(NAT Server):Linux NATサーバです。これで中国から日本のインターネットを利用できます
  • Active Directory:オンプレミスのADDSサーバです
  • Okta:IDaaSです。ADユーザ情報を基にした認証を導入するため、AccessのIdPとして利用します
  • Cloudflare Access:Webサーバへのアクセスに認証システムを導入し、ゼロトラストセキュリティを実現します

Objective

やりたいことのタスクを整理します。

  • 中国クライアントはAlibaba Cloud上海リージョンのVPN GatewayにSSL-VPNでフルトンネル接続
  • CENを通じて東京リージョンのNATサーバへアクセス。デフォルトルートはこのNATサーバに向けておく
  • ADDSサーバを構築しておき、更にOktaにインポートしておく
  • OktaとCloudflare AccessをOpenID Connectする
  • Cloudflare AccessでWebサイトの認証およびDNS設定をする

Alibaba Cloud編

ここでは上海VPCのVPN Gateway(SSL-VPN)へフルトンネルで接続する方法をご紹介します。

SSLクライアントのページを開いて、証明書とOpenVPNプロファイルのセットをダウンロードします。
img

「cert.zip」という名前のファイルが取得できるので、zip解凍しましょう。
config.ovpnファイルをテキストエディタで編集して以下の2行を追加します。

  • redirect-gateway autolocal

  • dhcp-option DNS 8.8.8.8 ※明示的にDNSサーバも指定する場合

設定の全容はこのような形です。

img
あとは保存して、OpenVPNクライアントにインポートしましょう。
これでVPN Gatewayに接続するとフルトンネルでアクセスできます。
あとは東京VPC側でNATサーバも構築完了して、VPCの設定でデフォルトルートを向けてあげれば…

img
中国クライアントからすべてのトラフィックを東京VPCにあるNATサーバへ流すので
結果として日本のインターネットへブレイクアウトします。 Googleへもアクセス可能です。
画面左下のロケーションが「日本」となっていることからも、Google側も日本からのアクセスと判定していますね。

Okta編

今回AccessのIdPとしてAD連携したOktaを採用しています。
その理由として、AccessでActive Directoryの情報で認証を行うにはオンプレADDSと連携したAzure ADやADFSのMS系プロダクトをIdPとすることも当然可能ですが、設定ステップが少なく一番導入が容易なOktaにしました。
開発・検証用途は無償です。詳細は以下より

https://www.okta.com/jp/press-room/press-releases/okta-developer-starter/

オンプレミスのADDSサーバには自身の情報のユーザを1つ追加しただけの いたってシンプルなADです。
オンプレミスのADDSサーバにOktaのADエージェントをインストールし
OktaにADユーザ情報を同期させています。

Accessと連携させるための認証設定を行います。 左サイドバーより[Applications]を選択
[Create App Integration]ボタンを選択します。 img

Sign-on methodは[OIDC - OpenID Connect]を選択
Application typeは[Web Application]を選択してNext

img

続いてこのアプリケーション設定を行います。
App Integration Nameは任意
Sign-in redirect URIsはCloudflare TeamsチームドメインのCallBack URIを入力します。
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

img

そして一旦Saveします。

[Applications]の画面より、先ほど作成したAccessの連携アプリケーション設定を開きます
そしてClient IDとClient secretを控えておきます。
後ほどCloudflare側で使用します。

img

[Sign On]タブへ遷移して
OpenID Connect ID TokenのGroups claim filterを以下に設定します。
groups:Matches regex:.*

img

続いて[Assignments]タブへ遷移して
アサインするユーザ/グループを選択します。
今回はADDSサーバよりインポートした自身のユーザのみ選択しました。
自分専用のOkta リッチ

img

以上でOktaの設定は完了です。

Cloudflare編

Teamsにログインして左サイドバー[Configuration][Authentication]より
[+Add]をクリック

img

一覧よりOktaを選択

img

Name:任意
App IDは先ほどのOktaの画面で控えていたClient IDを入力
Client secretは同様にOktaのClient secretを入力
そしてSaveします。 これでOkta連携設定は完了です。

img

続いてOktaの認証を用いてアクセスするためのサイト(アプリケーション)を設定します。
サイドバーより[Access][Applications]を選択
[Add an application]ボタンをクリック

img

ZoomやGoogleWorkplaceなどへ認証を導入したい場合は[SaaS]を選択しますが
今回は自作Webページへアクセスさせたいので[Self-hosted]を選択。

img

Application nameは任意
Application domainには所有ドメイン上からサイトドメインを設定します。
ルートドメインでも構いませんしサブドメインにしてもOKです。
私の場合はsaito.mydomain.comとしました。

img

Identity providersにはOktaのみを今回選択します。

img

そしてアクセスルールも作成しておきましょう。 今回はOktaのDomain Usersグループに所属するユーザのみ認証可とします。
ADDSサーバでは標準でDomain Usersグループが作成されますが
Oktaへのインポート時に自動でグループも取り込まれます。
もちろん私個人のユーザ情報もこのグループに格納されておりますので問題なし。 その他Countryで国の接続元制限をかけたり等、幅広くポリシーを書くことが出来ます。

img
あとは画面に従い、セットアップを完了します。

最後に、DNS設定をします。
Teamsではなく通常のCloudflareダッシュボードに遷移して
DNSよりオリジンサーバのレコードを登録してあげます。
この際、例えばAレコードならば名前に先ほどApplication domainに設定した値を入力してください。
今回の場合はsaitoですね。
そしてオリジンサーバのIPアドレスも入力 してあげたら[保存]ボタンをクリックして完了。

img
※Argo Tunnelでオリジンサーバを登録する際は、DNSレコード登録も自動です。

https://www.sbcloud.co.jp/entry/2021/03/17/argotunnel

では早速アクセス

上海にWindowsクライアントを用意しました。(実際はAlibaba Cloud上海リージョンにあるDaaS環境です)

Cloudflareに登録したURLにアクセスします。
するとオリジンサーバにそのままではアクセスさせてくれず
認証画面が表示されます。ではOktaを選択しましょう。

img

Oktaのサインイン画面へリダイレクトされました。
Oktaのディレクトリに登録してあるユーザ名とパスワードを入力してサインインします。

img

Oktaで認証成功するとアクセストークンが発行→Webブラウザに送信され
Webサイトへアクセスが出来るようになります。

無事アクセスできましたね

img

実運用ではどう使う

Accessはポータル機能を標準で用意しています。
つまり先ほどの実演のように、1つ1つのサイトやSaaSに対して個別に認証しなくとも、ポータルに1度サインインしてしまえば、有効期限内はシングルサインオン(SSO)が可能になります。
このようなイメージです↓

img

社内のポータルサイトやSalesforce、会議用のZoomや日本にあるDaaS環境へのRDP接続などに対して、Accessを挟むことでゼロトラストセキュリティが簡単に実現できるようになります。

そしてその環境に中国からでも、Alibaba Cloudを利用することで
低コスト&高品質&高機密な接続ができます

最後に

本記事では、libaba Cloud活用で日中間のゼロトラストネットワークを実現する方法をご紹介しました。
今回のようにVPN Gateway+CEN+NATサーバの構成を活用すれば日本で展開している様々なSaaSを中国から利用可能になります。
ご興味ございましたら、ぜひ実際にハンズオンしてみてください。

斎藤 貴広
この記事を書いた人
斎藤 貴広
2020年からAlibaba Cloudのソリューション開発や技術支援に従事。ネットワークや基盤などのインフラ回りがメイン領域で、最近はゼロトラストセキュリティやWeb系もかじり中。
Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena