スキップしてメイン コンテンツに移動

GAS最小権限:OAuth保護

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 の監査ログを活用して、スクリプトの実行履歴や権限変更を追跡します。 監査ログに異常が検知された場合は、即座に権限を見直し、必要に応じてスクリプトを停止します。 監査はセキュリティの最終防衛線であり、継続的に監視することで組織全体の安全設計を維持できます。

この記事はAIによって作成されました。

コメント