An open API service indexing awesome lists of open source software.

https://github.com/devwithkaiju/drivepermissionchecker

Google Drive のフォルダ内のファイルの権限が不適切なものを Slack に通知する GAS
https://github.com/devwithkaiju/drivepermissionchecker

google-apps-script google-drive slack

Last synced: about 2 months ago
JSON representation

Google Drive のフォルダ内のファイルの権限が不適切なものを Slack に通知する GAS

Awesome Lists containing this project

README

          

# DrivePermissionChecker

## これはなに

Google Drive API (v3) を使用して、指定フォルダ以下の全ファイルを高速にスキャンし、不適切な権限設定(外部共有など)があるファイルを検知して Slack に通知する GAS スクリプト。
従来の `DriveApp` クラスを使ったスクリプトに比べて高速に動作するため、ファイル数が多い環境でもタイムアウトしにくい(はず)。

## できること

* **高速スキャン**: Drive API を使用し、サブフォルダを含む大量のファイルを効率よくチェックする。
* **権限チェック**: 以下の条件に該当するファイルを「不適切」とみなす。
* 「リンクを知っている全員」が閲覧可能な状態
* 指定した許可ドメイン(例: `@gmail.com`)以外のアカウントに共有されている状態
* **Slack 通知**:
* 不備ファイルの一覧を Slack に通知する。(上位 30 件までを表示)
* **除外設定**: 特定のキーワード(例: `【共有用】`)を含むファイルはチェック対象から除外できる。

## 使い方

1. **スクリプトの準備**: Google Apps Script エディタにコードを貼り付ける。
2. **Drive API の有効化**:
* エディタ左側の「サービス」の `+` ボタンをクリックする。
* **Drive API** を選択し、「追加」をクリックする(このコードのバージョンは **v3** に対応)。
3. **設定の入力**:
* コード内の `SETTINGS` オブジェクトを環境に合わせて書き換える。
* `TARGET_FOLDER`: チェックしたい親フォルダの ID
* `SLACK_URL`: Slack の Incoming Webhook URL
* `SAFE_DOMAINS`: 許可するドメイン(配列形式)
4. **実行**:
* `main` 関数を実行し、権限承認を行う。
* 必要に応じて「トリガー」を設定し、定期実行させる。

## 通知サンプル

権限設定に不備があった場合、Slack に以下のような通知が飛ぶ。

> 🚨 **Drive権限チェック: 35件の不備が見つかりました**
> **[内部資料] 2025年度予算案.pdf**
> ⚠️ リンクを知っている全員がアクセス可能
> **顧客リスト.xlsx**
> 🚫 外部共有: outsider@example.com [writer]
> *(...他 5 件(件数が多いため省略))*