Netskope を使って、SaaS の利用をユーザベースで制御する

Netskope を使って、特定の SaaS の利用をユーザベースで制御する

 

最近 Netskope を使う機会があり、設定を色々試しています。

Netskope は CASB(Cloud Access Security Broker)と呼ばれるセキュリティソリューションのひとつです。

https://www.netskope.com/products/casb

 

今回は、特定のクラウドサービスに対して、指定したドメインのユーザだけを利用許可するための設定を紹介します。

例えば、企業の開発端末などに適用するセキュリティポリシとして、企業のドメインのユーザでのみ Gmail の利用を許可し、その他のドメイン(例えば個人利用)のユーザでは Gmail の利用を制限したい、といったユースケースに利用できます。

宛先 URL や送信元 IP アドレスに基づく単純なフィルタリングでは、利用するユーザに応じてクラウドサービスの利用を制限することは困難な場合が多く、こうしたクラウドサービスへのきめ細かいアクセス制御が求められる状況において Netskope が活躍します。

 

以下では、前述の例をとり、指定したドメイン(@hoge.com)の Google アカウントにのみ Gmail の利用を許可するための設定手順を示します。

動作を確認した Netskope のバージョンは 74.0.0.347 です。

 

設定手順

  1. Home > Policies > Profiles > Constraints のメニューを開き、”New User Constraint Profile” をクリック(新しい Constraint を作成)します。

  2. User Constraint Profile の新規作成画面が表示されたら、適当なプロファイル名を入力し、”EMAILS” を次の通り設定します。
    - プルダウンメニューで “DOES NOT MATCH” を選択する
    - アドレス入力欄に “*.@hoge.com” を入力する

    User Constraint Profile では上記のように正規表現を利用したマッチングが可能となっています。
    入力が完了したら “SAVE CONSTRAINT PROFILE” をクリックすると「hoge.com 以外の Email アドレス にマッチするプロファイル」が作成されます。

  3. 新規プロファイルの作成に成功していれば、Constraints メニューの “APPLY CHANGES” ボタンが活性化しているはずです。これをクリックして変更理由を記入し、”APPLY” ボタンをクリックして変更を適用します。

  4. 次に、作成したプロファイルを Gmail へのアクセス制御設定と関連付けしてゆきます。
    Home > Policies > Real-time Protection のメニューを開き、”NEW POLICY” をクリックして次のとおりポリシを設定します。
    - Cloud Apps + Web: Google Gmail
    - Select Activities:
         Activities: Select All
         Constraint (From User): 1. で作成した Profile を指定
         Constraint (To User): No constraints
         Action: Block
    その他の項目は適当なものを設定し、 “SAVE”  をクリックすると新規ポリシが作成されます。

  5. 新規ポリシの作成に成功していれば、Real-time Protection メニューの “APPLY CHANGES” ボタンが活性化しているはずです。これをクリックして変更理由を記入し、”APPLY” ボタンをクリックして変更を適用します。

  6. 以上で設定は完了です。エージェントへのポリシ配信に数分程度時間を要する場合があるため、一定時間待ってから、設定が想定どおりのものとなっているか確認してみてください。ポリシが正しく適用されていれば、hoge.com ドメインGoogle アカウントでのみ Gmail が利用できるようになっているはずです。


今回は、Gmail を例に設定方法を紹介しましたが、ユーザのドメインを限定したクラウドサービスへのアクセスはいずれも上記とほぼ同じ手順で設定可能です。

 

補足

  • 手順 6. で hoge.com以外の Google アカウントが Gmail へのログインを試みると、ログインプロセスまではブロックされずに進めることができます(ログインに成功した後、Gmail の受信トレイは表示できずにブロックされるはずです)。これは Netskope の Real-time Protection において、Gmail の Activities にログインを特定するメニューがないためです。ログインに成功しても何も見れないので実害はありませんが、ログインそのものは上記設定では禁止できません。

  • プロファイル名やポリシ名に.(ドット) が使用できないため、ドメインをプロファイル名やポリシ名に記載したい場合は別の特殊文字で代替する必要があります(ドットの代わりにアンダーバーを使う、など)

CKA / CKAD を取得しました

CNCF (Cloud Native Computing Foundation) が提供している、ふたつの Kubernetes の認定資格を取得しました。
受験準備や参照したリソースについて書き残しておきたいと思います。

試験概要

Linux Foundation 傘下で Kubernetes をはじめ様々な Cloud Native 関連の OSS プロジェクトをホストしている CNCF (Cloud Native Computing Foundation) という組織があり、そちらから提供されている監督付きのオンライン試験となっています。

CKA (Certified Kubernetes Administrator)

Kubernetes クラスタの構築・運用を行う管理者を対象とした試験です。

  • 試験時間:3 時間
  • 問題数:24 問
  • 受験料:$300
  • 試験官との応対言語:英語
  • 試験問題の言語:英語・日本語・中国語を適宜切り替え可能

CKAD (Certified Kubernetes Application Developer)

Kubermetes でアプリケーションを実行する開発者を対象とした試験です。

  • 試験時間:2 時間
  • 問題数:19 問
  • 受験料:$300
  • 試験官との応対言語:英語
  • 試験問題の言語:英語・日本語・中国語を適宜切り替え可能

試験官との応対、および試験の言語

私は通常の CKA / CKAD で受験したため試験官との応対は英語で行いました。
日本語話者の試験官を希望する場合は、CKA / CKAD ではなく CKA-JP / CKAD-JP に申し込む必要があるようです。

CKA / CKAD で受験した場合でも、試験問題は日本語を選択可能です。
したがって英語を使う必要があるのは試験前の環境確認や注意事項の案内など簡単なやりとりに限られますが、不安があれば CKA-JP / CKAD-JP での申し込みを検討されても良いかもしれません。

試験内容のアップデート

Kubernetes のリリースに合わせて、試験は四半期ごとに更新される計画となっています。
最新の試験環境バージョンは各試験のFAQのリンクから確認できます。

https://training.linuxfoundation.org/wp-content/uploads/2020/02/CKA-CKAD-FAQ-02.2020.pdf

私が受験した際はちょうど更新がかかったばかりのところで、CKA / CKAD どちらも試験環境の Kubernetes は最新の v1.17 となっていました。
当然ですが、試験問題も Kubernetes のバージョンに合わせてアップデートされていました。

再試験ポリシー

試験に落ちた場合、1 回まで再受験が可能となっているようです。
そのため、ある程度準備ができたところで試験内容のレベル感を把握するために一度受験してみる、といったアプローチも良いかと思います。
私は CKA / CKAD いずれも 1 回目の受験で合格したため利用することはありませんでした。

おすすめの学習リソース

Kubernetes 完全ガイド

book.impress.co.jp

言わずとしれた Kubernetes 関連の代表的な参考書です。
Kubernetes v1.11 をベースに書かれており、最新の Kubernetes のバージョン(v1.17)とは少し離れてきていますが、今でも Kubernetes の全体像や各リソースの基礎を抑えるには最適な一冊です。

Kubernetes The Hard Way

github.com

現在は kubeadm や kubespray といったクラスタ構築をサポートするソフトウェアがありますが、こちらのチュートリアルではそういったサポートなしに Kubernetes クラスタを構築する流れを学ぶことができます。
CKAD だけの受験を考えている方は必要ありませんが、CKA を受験する方は何周か実施して流れを掴んでおくと良いでしょう。

CKAD Exercises

github.com

有志の方が公開している CKAD 向けの問題集です。
CKA でも同じような知識は求められるため、CKA のみの受験を考えている方にもおすすめの学習リソースです。

ckad-prep-notes

github.com

問題集やチュートリアルではないのですが、CKADの受験にあたって注意すべき事項と必要な基礎知識がまとめられていますので、一読しておくことをおすすめします。

その他の学習リソース

kodekloud.com

コミュニティでこちらのチュートリアルも試験対策に好評と聞き、数問だけ手を付けてみました。
が、私が利用した際はバーチャルコンソールの反応が遅く、結局はほとんど利用しませんでした。
問題の内容は良さそうでしたので、レスポンスが問題なければこちらも活用できるのではと思います。

学習の流れ

試験準備として Kubernetes The Hard Way を1周、CKAD-exercises を 2 周実施し、ckad-prep-notes と 公式の受験要項をひととおり読みました。
試験とは無関係に以前から Kubernetes The Hard Way は何度か通したことがあったため、今回の受験準備としては流れを確認する程度にとどめています。
Kubernetes 完全ガイド』も既に何度か読み直していましたので今回の受験向けには改めて通し読みはしていませんが、必要に応じてかいつまんで読むようなかたちで復習に活用しました。

(おまけ)Kubernetes ポケットリファレンス

gihyo.jp

昨年出版されたこちらの書籍の制作に参加しておりまして、おまけの参考書籍としてご紹介させて頂きます。
書名のとおりコマンドリファレンスにフォーカスした書籍となっており、各コマンドでよくあるトラブルなどにも触れていますので、kubectl に習熟する過程でお役に立つのではと思います。
制作にあたっては Kubernetes v1.16 をベースに各コマンドの実行確認やドキュメントチェックなどを繰り返していましたので、私の場合はこの書籍の制作過程でも Kubernetes に対するスキルアップが図れました。

受験準備

受験場所

試験はオンラインで実施されるため、受験場所は受験者自身があらかじめ確保しておく必要があります。
私の場合はコワーキングスペースで提供されている1名用個室を予約して受験しました。
受験前には試験官との受験環境確認があり、受験後にはアンケート回答があるため、試験の予定時間+前後30分を目安に場所を確保しておくと良いと思います。

受験するときのテーブル上には、許可されたもの(ディスプレイ、キーボード、マウスetc.)以外は一切置くことができません。
私の場合はレンタルした個室のテーブルにシェードランプが置かれており、受験前の環境確認の際に取り外すよう試験官から指示を受けました。
幸い取り外し可能な備品でしたので対応できましたが、レンタルしたスペースに備え付けの備品があるような場合は注意が必要かと思います。

Kubernetes.io の活用

試験中には公式ドキュメントを参照することができますが、試験時間を考えるとその場で新しい知識を仕入れている余裕はないと思います。
私の場合はよく参照するいくつかのページはすぐにアクセスできるよう、ブラウザのブックマークに登録しておくようにしました。

受験時の所感

試験の難易度

個々の問題の難易度としては、管理者向けを想定している CKA のほうがより高度な知識を求められたと思います。
一方、CKAD のほうが 1 問あたりに使える時間が少ないため、こちらはスピーディに問題を解いてゆかなければならないところに難しさがありました。
問題ごとに配点の目安となるパーセンテージが明記されていますので、これを参考に回答順序を考えても良いでしょう。

バーチャルコンソールの操作性

試験時に利用するバーチャルコンソールはレスポンスよく利用でき、特に不自由は感じませんでした。
コピーは Ctrl+Insert、ペーストは Shift+Insert で行えます(Windowsの場合)。
tmux も使えるようですが私は利用しませんでした。

ブラウザの制限

ブラウザのタブは、試験問題+バーチャルコンソールのタブがひとつと、これに加えて Kubernetes.io の公式ドキュメントを参照するためのタブをひとつのみ開くことができます。
公式の受験要項にも記載されていますが、Kubernetes.io の公式ドキュメント以外の Web ページにアクセスしないことや、ドキュメント参照のために複数のタブを開かないことは受験者自身の努力で遵守する必要があります。
特に試験で利用する端末にアクセス制限や開くタブ数の制限が設定されるわけではないため、ブックマークなどを利用する際はうっかり許可されていないページにアクセスしないよう注意が必要です。

おわりに

普段 Kubernetes での開発や運用を経験している方であれば、基本を押さえておけば問題の難易度はそれほど高くないと思います。
CKA / CKAD はすべての問題をコマンドラインから回答する形式となっているため、kubectl や Linux の基本的なコマンドはとにかく手を動かして慣れておくことが重要です。
加えて、よく参照するドキュメントにすぐにアクセスできるような準備や、配点に応じた時間配分を意識しておくと良いかと思います。