Google Workspace2026-06-28
【セキュリティ】B2B取引における機密ファイルの自動受け渡し:Google Drive API + サービスアカウントの実装ガイド
個人アカウントでのファイル共有に潜むセキュリティホール
B2Bビジネスにおいて、見積書、NDA(秘密保持契約書)、設計書などの機密ファイルを社外の取引先やパートナー企業と共有する機会は日常的です。しかし、多くの現場では、**「社員個人のGoogleアカウントから、その都度手動でフォルダを作成して社外メンバーのメールアドレスを招待する」**という運用が行われています。
この運用方法には、以下のような重大なガバナンスリスクが潜んでいます。
- アクセス権の消し忘れ: 取引終了後や担当者の退職後も、フォルダへの共有設定が残ったままになり、情報漏洩に繋がる。
- 権限設定の誤り: 閲覧専用(Viewer)で共有すべきファイルを、誤って編集権限(Editor)やリンクを知っている全員への一般公開設定で共有してしまう。
- 監査ログの不在: 誰がどのファイルを持ち出したか、ダウンロードしたかのログが管理できず、ISMS(ISO27001)などの情報セキュリティ監査で重大な指摘を受ける。
これらの課題を解決するためには、個人アカウントではなく**Google Cloudのサービスアカウント(プログラム専用のID)**を使用して、システムの裏側でフォルダの作成やアクセス制限の付与・削除をすべて自動制御(Touchless化)するスキームの導入が必要です。
2. 課題解決のビフォー・アフター
| 項目 | 手作業によるフォルダ共有(Before) | サービスアカウント+API管理(After) |
|---|---|---|
| 共有の作成 | 人間の手で「共有ボタン」から操作(ミス発生) | プログラムにより適切なアクセスレベルが瞬時に付与 |
| アクセス有効期限 | 削除忘れが常態化し、外部に放置 | 指定期間(例: プロジェクト終了日)経過後に自動で権限剥奪 |
| オーナーシップ | 退職した個人のドライブにファイルが残る | 会社の組織アカウント(共有ドライブ)が管理し回収不要 |
| 監査トレース | 誰がファイルを共有したか追跡不能 | APIログから「いつ・誰に・どの権限で」がすべて監査可能 |
3. 具体的な実装例:期限付き共有フォルダの自動作成と招待
サービスアカウントを利用して、特定の取引先メールアドレスに対して閲覧権限を付与したフォルダを自動生成する、Google APIs(TypeScript)の実装コード例です。
import { google } from "googleapis";
// サービスアカウントによる認証の設定
const SCOPES = ["https://www.googleapis.com/auth/drive"];
const auth = new google.auth.GoogleAuth({
credentials: {
client_email: process.env.GOOGLE_CLIENT_EMAIL,
private_key: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, "\n"),
},
scopes: SCOPES,
});
const drive = google.drive({ version: "v3", auth });
export async function createSecurePartnerFolder(partnerEmail: string, projectName: string) {
try {
// 1. 共有ドライブまたは指定フォルダ配下に、新規フォルダを作成
const fileMetadata = {
name: `【HadayaLab共有】${projectName}`,
mimeType: "application/vnd.google-apps.folder",
parents: [process.env.SHARED_ROOT_FOLDER_ID!],
};
const folderResponse = await drive.files.create({
requestBody: fileMetadata,
fields: "id, webViewLink",
});
const folderId = folderResponse.data.id!;
console.log(`Folder created: ${folderId}`);
// 2. パートナー企業のアドレスに対して「閲覧者(Reader)」権限を付与
await drive.permissions.create({
fileId: folderId,
requestBody: {
role: "reader",
type: "user",
emailAddress: partnerEmail,
},
fields: "id",
});
console.log(`Permission granted to: ${partnerEmail}`);
return {
folderId,
link: folderResponse.data.webViewLink,
};
} catch (error) {
console.error("Secure B2B file transfer failed:", error);
throw error;
}
}
4. HadayaLabの安全なB2Bデータ連携パッケージ
HadayaLabでは、ISMS/ISO27001やSOC2などの国際セキュリティ基準を維持しながら、他社とのファイル連携を自動化する仕組みの構築をサポートしています。
- 自動フォルダ・アクセス制御: 取引のステータス変更(契約締結・終了など)に応じて、Google Driveのフォルダを自動生成・権限自動剥奪。
- アップロードファイルのマルウェア・整合性検証: 共有フォルダにアップされたファイルをAIが自動検知し、データ形式の破損がないか判定。
- ** tamper-proof なファイル提出パイプライン**: 変更が不可能なリードオンリーの監査データとして、提出記録をバックアップ。
「取引先とのファイル受け渡しが多く、手動での権限管理に限界を感じている」「セキュリティ審査に耐えうる安全なデータ共有基盤がほしい」という企業様は、ぜひHadayaLabのセキュアファイル連携設計をご相談ください。