Browser AccessとPRAでクライアントレスなリモート接続

# はじめに
こんにちは、ゼットスケーラーでカスタマーサクセス・エンジニアを担当しておりますナレットです。

この記事は、ゼットスケーラー株式会社の [Advent Calendar 2023](https://qiita.com/advent-calendar/2023/zscaler) の一環です。前回の [4日目](https://qiita.com/naret/items/a7b11c088da3ba7cde0c) では、Let's Encryptを利用してSSL証明書の発行方法をご紹介しましたが、今回はもう一歩進んで、まず前半ではBrowser Accessに焦点を当て、後半ではPrivileged Remote Accessを試してみます。

# 免責事項
本記事のコンテンツや情報において、可能な限り正確な情報を掲載するよう努めておりますが、 誤情報が入り込んだり、情報が古くなったりすることもあり、必ずしもその内容の正確性および完全性を保証するものではございません。そのため、本記事をエビデンスとしたゼットスケーラーへの問い合わせなどはご対応致しかねることをご理解頂けると幸いです。掲載内容はあくまで個人の意見であり、ゼットスケーラーの立場、戦略、意見を代表するものではありません。当該情報に基づいて被ったいかなる損害について、一切責任を負うものではございませんのであらかじめご了承ください。

# Browser Accessって何？ Privileged Remote Accessってどんなメリットがあるの？
共にZscaler Client Connector（ZCC）のインストールが不要で、クライアントレスに社内のプライベート環境へのアクセスを提供します。

Browser Accessは、特にBYOD環境や、ZCCをインストールできない提携子会社、協力会社、あるいは最近合併した企業などの状況に便利です。これにより、様々なデバイスから社内のWebサービスに簡単にアクセスすることが可能になります。

一方、PRAは特権リモートアクセスに特化しており、ブラウザ経由で直接RDPやSSHを使ってサーバーに接続できるため、サーバーやシステムの保守ベンダーに一時的なアクセスを提供する際にも役立ちます。ZCCをインストールせずにプライベート環境への特権アクセスを提供し、アクセス期限や時間帯の設定も可能です。

# 事前準備
今回は、UbuntuサーバーをZPA環境に配置し、Web、RDP、SSHの3つのサービスを展開します。いずれも多くのブログ記事で導入方法が紹介されています。ZPAでこれらのサービスを公開するには、ドメイン名と、前回の記事で紹介したSSL証明書の準備が必要です。事前にこれらを用意しておきましょう。（今回使うドメインは zkyone.com)

使用するサーバーとサービスのバージョンは以下の通りです。
```
Ubuntuサーバー 22.04.2 LTS
Webサービス （Apache 2.4.52）
RDPサービス （xrdp 0.9.17）
SSHサービス （OpenSSH_8.9p1）
```

さらに、このサーバーはZPAのApp Connectorを介して名前解決が可能である必要があります。この点も事前に確認しておきましょう。（今回は ubuntu01.zkyone.com）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/b9cb432c-8b16-4e86-aa49-b6a05d96c7aa.png)

# Browser Access の設定
流れとしては ZPAのアプリケーション設定からBrowser Accessを有効化し、その後ユーザーが実際にアクセスするUser Potalの設定を行います。

**1\. Browser Accessの有効化**
Resource Management > Application Management > Application Segments > へ進み、Browser Access を有効化したいアプリケーションを編集します。

・Browser Accessにチェックを入れて有効化します。
・Webサーバーの証明書を選択します。（前回の記事で作成したSSL証明書を使用）
・HTTPSを選択し、デフォルトのポート番号443を使用します。（必要に応じて変更可）
・Use Untrusted Certificatesオプションがデフォルトで有効になっていますが、チェックが入っていない場合、証明書が信頼できないとアプリケーションへの接続は失敗します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/d3a947fb-415b-9907-6a16-3f2723d6d3c9.png)

**2\. CNAMEをDNSサービスに登録**
Resource Management > Application Management > Browser Access タブで設定したアプリケーションが表示されていることを確認します。詳細をクリックするとCNAMEが表示されますので、ドメインを発行したサービスに登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/7e1e92a2-4702-7e1b-998c-d7386cee39c0.png)

CNAMEの登録後、リモート接続用の端末からnslookupコマンドを実行して設定を確認します。(今回は ubuntu01.zkyone.com）
```
% nslookup ubuntu01.zkyone.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
ubuntu01.zkyone.com	canonical name = xxxxx.xxxxxxxxxxxxxxxxxx.h.p.zpa-app.net.
xxxxx.xxxxxxxxxxxxxxxxxx.h.p.zpa-app.net	canonical name = exporter.gslb.prod.zpath.net.
exporter.gslb.prod.zpath.net	canonical name = tyo3.exporter.gslb.prod.zpath.net.
tyo3.exporter.gslb.prod.zpath.net	canonical name = exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com.
Name:	exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com.
Address: xx.xx.xx.xx
Name:	exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com.
Address: xx.xx.xx.xx
```

**3\. User Portalの設定**
ユーザーポータルは、許可されたアプリケーションが一覧表示されるページです。ここから、ユーザーはBrowser Accessが有効化されたWebサービスにアクセスできます。

ZPA Admin Portal > Resource Management > User Portal > Add User Portal　
でユーザーポータルを追加します。
必要な情報（Name, Status, URLなど）を入力します。SSL証明書も選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/290c12cf-3283-6dfb-c97e-b3375549e195.png)

SaveをクリックするとUser Portal用のCNAMEが表示されますので、ドメインサービスに登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/749ce155-4f7d-96fe-3aac-a7356a374654.png)

CNAMEの登録後、リモート接続用の端末からnslookupコマンドを実行して設定を確認します。（今回は up.zkyone.com）
```
% nslookup up.zkyone.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
up.zkyone.com	canonical name = xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx.h.p.zpa-app.net.
xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx.h.p.zpa-app.net	canonical name = exporter.gslb.prod.zpath.net.
exporter.gslb.prod.zpath.net	canonical name = tyo3.exporter.gslb.prod.zpath.net.
tyo3.exporter.gslb.prod.zpath.net	canonical name = exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com.
Name:	exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com
Address: xx.xx.xx.xx
Name:	exporter-lb-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.xxxxxxxxx.com
Address: xx.xx.xx.xx
```

# Browser Accessを体験してみる
以下のステップでUser Portalにアクセスしてプライベートアプリケーションへのアクセスを試します。

**1\. User Portalへのアクセス**
ブラウザからUser PortalのURLにアクセスします。（今回は up.zkyone.com)
初めに認証画面が表示されるので、ユーザー名またはメールアドレスを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/be3fd2b7-faa4-7553-d110-41eacb6c7c35.png)

**2\. IDPでのサインイン**
指定されたIDPにリダイレクトされたら、ユーザー名とパスワードを入力してサインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/5b78f482-fc50-e161-3c2c-b9c3e7a15026.png)

**3\. User Portalの表示**
サインイン後、User Portalが表示されます。ここからアクセスしたいリンクを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/1816af4a-ce5b-94ae-cb60-25e723537a49.png)

**4\. Webページへのアクセス**
ZPA経由でアクセスしたWebページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/520c7ac5-c993-7b86-6938-1669e95b21e4.png)

問題なくBrowser Accessを使用することができました!

# PRAの設定
こちらもZPAのアプリケーション設定からPrivileged Remote Accessを有効化し、その後ユーザーが実際にアクセスするPrivileged Portalの設定を行います。

**1\. Privileged Remote Accessの有効化**
Resource Management > Application Management > Application Segments > へ進み、Privileged Remote Accessを有効化したいアプリケーションを編集します。

・Privileged Remote Accessにチェックを入れて有効化します。
・RDPを選択し、デフォルトのポート番号3389を使用します。（必要に応じて変更可）
・RDPを選択した場合はConnection Securityを指定できますが、今回はAnyで進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/682716f9-1665-9ac8-bcff-b18130778750.png)

**2\. Privileged Portalの設定**
Privileged Portalは、許可されたサーバーが一覧表示されるページです。ここから、ユーザーは Privileged Remote Accesssが有効化されたサーバーにブラウザ経由でアクセスできます。

ZPA Admin Portal > Resource management > Privileged Remote Access > Privileged Portal > Add Privileged Portal で追加します。
必要な情報（Name, Status, URLなど）を入力します。SSL証明書を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/3bdf0803-469d-5d4d-f55c-1ce9366733a4.png)

SaveをクリックするとPrivileged Portal用のCNAMEが表示されますので、ドメインサービスに登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/dad54e11-3c0f-aff2-55b2-bb3e0739f11b.png)

CNAMEの登録後、リモート接続用の端末からnslookupコマンドを実行して設定を確認します。（今回は pp.zkyone.com）
```
% nslookup pp.zkyone.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
pp.zkyone.com	canonical name = xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx.pra.p.zpa-app.net.
xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx.pra.p.zpa-app.net	canonical name = exporter-ot.gslb.prod.zpath.net.
exporter-ot.gslb.prod.zpath.net	canonical name = sjc5.exporter-ot.gslb.prod.zpath.net.
sjc5.exporter-ot.gslb.prod.zpath.net	canonical name = exporter-ot-lb-xxxxxxxxxxxxxxxx.elb.us-west-1.xxxxxxxxx.com.
Name:	exporter-ot-lb-xxxxxxxxxxxxxxxx.elb.us-west-1.xxxxxxxxx.com
Address: xx.xx.xx.xx
Name:	exporter-ot-lb-xxxxxxxxxxxxxxxx.elb.us-west-1.xxxxxxxxx.com
Address: xx.xx.xx.xx
```

**3\. Privileged Consoleの設定**
ここでPrivileged Remote Accessを有効にしたアプリケーションとPrivileged Portalの紐付けを行います。

ZPA Admin Portal > Resource management > Privileged Remote Access > Privileged Consoles > Add Console
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/7e29c0c3-5dd2-1c3b-eb13-89dd521fe7d5.png)

このままNextをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/692cd484-379b-ecfc-abd0-0c6019a3f05e.png)

内容を確認してSaveします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/00e48f94-bd25-1cf8-e300-25dac45cf7cd.png)

# PRAを試してみる
実際にPrivileged Portalにアクセスしてプライベート環境に対してリモートアクセスを試みます。

**1\. Privileged Portalへのアクセス**
ブラウザから登録したPrivileged PortalのURLにアクセスします。（ユーザー名を入力）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/d52ad5a0-a436-98fc-6956-0e7d0ee749d6.png)

**2\. IDPでのサインイン**
ユーザー名とパスワードを入力してサインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/5b78f482-fc50-e161-3c2c-b9c3e7a15026.png)

**3\. Privileged Portalの表示**
サインイン後、Privileged Portalが表示されます。ここからアクセスしたいリンクを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/3c79e57f-0742-0b6a-c1bc-f73a9b779c1f.png)

**4\. RDPでのアクセス**
ユーザー名とパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/8917272b-a918-cd12-44ac-5ecf11e2b240.png)

ZPA経由でRDPアクセスしたサーバーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/7f2ee85a-9863-201a-c19a-3f46de026688.png)

**5\. SSHでのアクセス**
ユーザー名とパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/7a57d877-2792-5eb0-e9ba-5e403049305f.png)

ZPA経由でSSHアクセスしたサーバーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622929/9edd0f7b-17c9-641c-f92d-a2ca433e4b3b.png)

PRAを利用してブラウザからのRDPやSSH接続がスムーズに行えることを確認しました！使用感は、パブリッククラウド上の仮想サーバーのコンソール画面を操作しているような感覚です。このツールを使えば、リモートからでもプライベート環境のサーバーに安全にアクセスできるので便利ですね。

# 最後に
今回は、ZPAを用いたBrowser AccessとPrivileged Remote Accessをご紹介しました。どちらも、使い勝手が良く、設定は思ったよりも簡単です。Browser Accessは手軽なWebアクセスを、Privileged Remote Accessは高度なアクセス制御を提供します。

通常、ZPAの利用にはZCCのインストールが前提ですが、Browser AccessとPRAを使用することで、インストールなしに迅速にアクセスが可能です。クライアントレスが案外便利で、さまざまなシナリオでの利用の可能性も見えてきました。

最後までお読みいただきありがとうございました。ではまた！