Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. 【Zscaler】ZIA APIとGAS連携:パラメータ自動出力による運用負荷軽減術

【Zscaler】ZIA APIとGAS連携:パラメータ自動出力による運用負荷軽減術

投稿者:セキュリティ&ネットワーク事業本部 セキュリティ担当 太田

こんにちは。セキュリティ担当の太田です。
クラウドセキュリティプラットフォームの運用管理において、設定パラメータやポリシーリストの保管・更新は不可欠です。しかし、WEB管理画面からの手動での確認やExcelへの転記は非常に手間がかかり、ヒューマンエラーの原因にもなりかねません。

本記事では、Zscaler Internet Access (ZIA) のAPIから最新のデータを取得し、その結果をGoogle Apps Script (GAS) を利用して自動的に整形・加工してGoogleスプレッドシートへ出力する方法をご紹介しています。「データ取得はツール(Postman)に任せ、データの整形は生成AIを活用してスクリプトで自動化する」という、エンジニアでなくとも実践しやすいハイブリッドな運用術をぜひご覧ください!

目次

1.ZIA APIの認証と環境構築
2.Postmanを活用したクラウドアプリケーションリストの取得
3.GASのコーディングは生成AIを活用して効率化
4.まとめ:適材適所のツール使い分け
5.おわりに

1. ZIA APIの認証と環境構築


「毎回管理画面を開いて設定を確認するのってちょっと面倒…」そんなときに役立つのがZIA APIです。まずはこの仕組みを構築していきましょう!

🔑 ZIA APIの認証方式
ZIA APIは、セキュリティ確保のためセッションベースの認証を採用しています。これは、まずログインAPIを叩いてセッションを確立し、取得したセッション情報を使って後続のAPIリクエストを行う仕組みです。
今回は、ZIA APIの認証方式がいくつかある中から、実装が比較的容易な「API管理者の認証情報+APIキー/トークンを用いた方式」で行います。

💻 環境の準備
必要な情報は以下の通りです。
・ZIA管理者権限アカウント(API利用を許可されていること)
・ユーザー名、パスワード、APIキー
・利用しているリージョン(Cloud Name)に基づいたAPIのベースURL

APIキーは、ZIA管理ポータルの「管理者(Administration)」メニュー内から確認・発行できます。

APIキーの生成や権限設定までの詳細な手順は公式ドキュメントをご参照ください。 (https://help.zscaler.com/ja/zia/getting-started-zia-api)

2.Postmanを活用したクラウドアプリケーションリストの取得

APIの準備が終わったら、いよいよAPIを叩いてみましょう。
とはいえ、いきなりスクリプトを組んで実行するのはちょっと大変ですよね。
そんな時に便利なのが、PostmanというWeb APIテストツールです。

今回APIで自動取得するデータは「クラウドアプリケーションのリスト」です。
WEB管理画面からこれらの一覧を取得してExcelにまとめる作業は、コピー&ペーストの繰り返しになりがちで、非常に大変な作業です。これをAPIで一発取得することを目指します。

ステップ①:認証(セッション作成)
Postmanを使って、ZIAにログインします。 POST /authenticatedSession を実行し、ステータス200(OK)が返ってくればログイン成功です。

ステップ②:データ取得
確立したセッションを利用して、クラウドアプリケーションの一覧を取得するGETリクエストを送ります。GET /cloudApplications/policy?page=1&pageSize=50000
すると、画面下部にJSONデータが大量に返ってきます。 これを目視で確認するのは大変ですが、データとしてはこれで正しく取得できています。

このJSONデータ全体をコピーし、次のステップでGoogle Apps Script (GAS) を用いて整形します。

3.GASのコーディングは生成AIを活用して効率化


ここからが運用のポイントです。APIで集めたJSONデータ、せっかくなら見やすく整理して活用しましょう。ここからはGASと生成AIで、一気に表形式へ変換していきます。
コードを一から自分で書く必要はありません。
現在はChatGPTやGeminiなどの生成AIを活用することで、専門的な知識がなくてもスクリプトを作成することが可能です。

手順は非常にシンプルです
1.Postmanで取得したJSONデータをコピーしておきます。
2.生成AI(Geminiなど)を開きます。
3.以下のような指示(プロンプト)を入力します。
「以下のJSONデータはZscalerのアプリケーションリストです。これをGoogleスプレッドシートのA列から順に一覧として出力するGoogle Apps Script (GAS) のコードを作成してください。 (ここにJSONデータを貼り付け)」
※実際に生成AIにプロンプトを投げる際は機密情報が含まれないようデータの中身をサンプルに置き換えて実行してください。

これだけで、AIが目的に合ったコードを生成してくれます。 私たちは、提案されたコードをコピーして、GASのエディタに貼り付けるだけです。

生成されたコードをコピーしたら、以下の手順で実行します。
1.Googleスプレッドシートを新規作成します。
2.「拡張機能」>「Apps Script」を開きます。
3.コピーしたコードを貼り付けて保存します。

今回使用したコード

function convertAndImport() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var rawSheet = ss.getSheetByName("JSON");
var paramSheet = ss.getSheetByName("整形");

// JSONの全データを文字列に連結
var rawValues = rawSheet.getRange(1, 1, rawSheet.getLastRow(), 1).getValues();
var jsonLikeText = rawValues.map(r => r[0] || "").join("\n");

// キーにクォートを追加する正規表現変換
// ^や { の後の単語を探し、"word": に変換
var fixedText = jsonLikeText.replace(/(\s|{|,)\s([A-Za-z0-9_]+)\s*:/g, '$1"$2":');

// トリム
fixedText = fixedText.trim();

// 正しいJSONに変換後パース
var data;
try {
data = JSON.parse(fixedText);
} catch(e) {
SpreadsheetApp.getUi().alert("JSON変換後のパースに失敗しました: " + e);
return;
}

// 出力配列作成
var values = [["app", "appName", "parent", "parentName"]];
data.forEach(function(item) {
values.push([
item.app || "",
item.appName || "",
item.parent || "",
item.parentName || ""
]);
});

// パラメータシート更新
paramSheet.clearContents();
paramSheet.getRange(1, 1, values.length, values[0].length).setValues(values);

SpreadsheetApp.getUi().alert("パラメータシートに出力しました");
}

「実行」ボタンを押すと、一瞬でスプレッドシートにデータが整形されて出力されます。

このように、「Postmanでデータ取得」→「AIにコード作成を依頼」→「GAS実行」というフローであれば、プログラミングの深い知識がなくとも自動化を実現できます。

4.まとめ:適材適所のツール使い分け

すべてをプログラムで自動化しようとすると、API認証の実装などで躓いてしまうことがあります。
・データ取得 → Postmanなどの専用ツールを使う
・データ整形 → 生成AIとGASに任せる
このようにツールを適材適所で使い分けることで、非エンジニアの運用担当者でも手軽に「API活用の第一歩」を踏み出すことができます。

慣れてくれば、WEB APIもGASに組み込んで定期実行で完全自動化を目指すこともできそうですね!

5.おわりに

「運用をもっと効率化したいけれど、プログラミングは敷居が高い」 そう感じていた方も、この方法であれば明日からお試しいただけるのではないでしょうか。
ZIA APIをきっかけに、運用課題を解消する方法がみえてきたのではないでしょうか。
他にもZscalerに関する運用課題やサポートが必要という読者の方は、ぜひ一度 NI+Cにご相談ください。
弊社では、お客様の運用状況やご要望に合わせ、最適な運用支援をご提案いたします。
皆様のZscaler運用が、よりスマートで快適なものになるようお手伝いできれば幸いです。

ページのトップへ