GAS最小権限:OAuth保護
GAS応用とセキュリティの重要性
Google Apps Script(GAS)は、Google Workspace の機能を拡張するための強力なツールです。 しかし、スクリプトが外部サービスと連携したり、ユーザーのデータにアクセスしたりする際には、セキュリティリスクが伴います。 そのため、GAS応用を行う際には、最小権限の原則を徹底し、機密情報を安全に扱う設計が不可欠です。
OAuthスコープと最小権限の実装
GAS で外部 API を呼び出す場合、OAuth スコープを正しく設定することが鍵です。
例えば、Google Drive のファイルを読み取るだけなら https://www.googleapis.com/auth/drive.readonly を指定し、書き込み権限は付与しません。
こうした最小権限の設定は、権限が漏洩した際の被害を限定します。
function getFiles() {
var files = DriveApp.getFiles();
while (files.hasNext()) {
Logger.log(files.next().getName());
}
}
ここでは DriveApp の読み取り専用スコープのみを使用しています。
PropertiesServiceで機密情報を隠蔽
機密情報(API キーやシークレット)はコード内にハードコーディングしないでください。
GAS の PropertiesService を利用すれば、スクリプトの実行環境に安全に保存できます。
function setSecret() {
PropertiesService.getScriptProperties().setProperty('API_KEY', 'xxxxxxxxxxxx');
}
function getSecret() {
return PropertiesService.getScriptProperties().getProperty('API_KEY');
}
これにより、コードベースから機密情報を分離し、アクセス制御を強化できます。
アクセス制御と安全設計のベストプラクティス
スクリプトの実行者を限定するために、ScriptApp.getOAuthToken() を使ってユーザー情報を取得し、許可されたユーザーのみ実行できるようにします。
また、スクリプトの公開設定を「限定公開」にし、必要なユーザーだけに共有します。
さらに、コードレビューを行い、不要な権限や情報漏洩のリスクを早期に発見します。
監査ログで継続的な安全性を確保
Google Workspace の監査ログを活用して、スクリプトの実行履歴や権限変更を追跡します。 監査ログに異常が検知された場合は、即座に権限を見直し、必要に応じてスクリプトを停止します。 監査はセキュリティの最終防衛線であり、継続的に監視することで組織全体の安全設計を維持できます。
コメント
コメントを投稿