ADVERTISEMENT

【Googleスプレッドシート】共有リンクの有効期限!期限付きアクセス権の運用

【Googleスプレッドシート】共有リンクの有効期限!期限付きアクセス権の運用
🛡️ 超解決

共有リンクを使ってスプレッドシートを他の人と共同編集する際、無期限のアクセスを許可することにリスクを感じたことはありませんか。特に機密性の高いデータを扱う場合、一定期間だけアクセスを許可したいケースが多々あります。Googleスプレッドシートの標準機能では、共有リンクに有効期限を設定することは直接できませんが、Google Workspaceの機能や工夫を活用することで、期限付きアクセス権を実現できます。この記事では、有効期限を設定する具体的な方法と運用のポイントを解説します。

【要点】共有リンクに有効期限を設けてセキュリティを高める方法

  • 特定ユーザーのアクセス権設定: 共有画面でユーザーを追加し、そのユーザーに対して有効期限を設定します。
  • 共有ドライブの利用: 共有ドライブ内のファイルでは、共有設定で期限を付与するオプションが利用できます。
  • Apps Scriptによる自動化: スクリプトで定期的に共有設定を変更し、期限が切れたらアクセス権を削除する方法もあります。

ADVERTISEMENT

共有リンクに有効期限を設定する仕組み

Googleスプレッドシートの共有設定では、ファイルへのアクセス権を「制限付き(特定のユーザーのみ)」または「リンクを知っている全員」の2種類から選択できます。デフォルトの個人アカウントでは、どちらの場合も有効期限を設定する機能は提供されていません。しかし、Google Workspace(旧G Suite)の組織アカウントを利用している場合、共有ドライブ(旧チームドライブ)内のファイルに対しては、共有リンクに有効期限を設定できるオプションが管理コンソールで有効化できます。また、特定のユーザーを追加する際に、そのユーザーだけにアクセス期限を設ける方法も可能です。これにより、外部のゲストユーザーや特定のプロジェクトメンバーに対して、限定的な期間だけアクセスを許可できます。

有効期限付きアクセス権を設定する手順

方法1:特定ユーザーに期限を設定する

  1. スプレッドシートを開いて共有ボタンをクリック
    右上の「共有」ボタンをクリックし、共有設定画面を開きます。
  2. 「ユーザーとグループ」に追加
    「ユーザーとグループ」欄に共有したい相手のメールアドレスを入力し、権限(編集者、閲覧者など)を選択します。
  3. 歯車アイコンから「有効期限」を設定
    追加したユーザーの右側にある歯車アイコンをクリックし、「有効期限を設定」を選びます。ここで日時を指定すると、その日時を過ぎると自動的にアクセス権が削除されます。

この方法は、個別のユーザーに対して期限を設定する場合に便利です。ただし、一度設定した期限を変更するには、同じ手順で日時を変更します。

方法2:共有ドライブでリンクの有効期限を設定する

  1. 共有ドライブにファイルを移動
    スプレッドシートを共有ドライブ内に保存します。まだ移動していない場合は、ファイルを共有ドライブにドラッグするか、右クリックから「移動」を選択します。
  2. ファイルの共有設定を開く
    共有ドライブ内のファイルを開き、「共有」ボタンをクリックします。
  3. 「リンクを知っている全員」または「特定のユーザー」を選択
    アクセス範囲を選択し、「有効期限」のチェックボックスをオンにして日時を指定します。このオプションは、管理者が組織の共有設定で有効にしている場合に表示されます。

共有ドライブの機能を利用すると、複数のファイルに対して一括でポリシーを適用できるため、管理が容易になります。

方法3:Apps Scriptで自動化する

  1. スクリプトエディタを開く
    スプレッドシートのメニューから「拡張機能」→「Apps Script」を開きます。
  2. 期限切れユーザーを削除する関数を作成
    以下のようなコードを記述します。特定の日付が過ぎた編集者のアクセス権を削除する処理です。
  3. トリガーを設定
    スクリプトエディタで時計アイコンをクリックし、毎日など定期的に実行するトリガーを設定します。
function removeExpiredUsers() {
  var file = SpreadsheetApp.getActiveSpreadsheet();
  var editors = file.getEditors();
  var today = new Date();
  for (var i = 0; i < editors.length; i++) {
    var email = editors[i].getEmail();
    var permissions = file.getSharingAccess();
    // 独自の仕組みで期限を管理(例:シートに期限を記録)
  }
}

この方法は、標準機能では対応できないカスタム期限管理に有効です。ただし、スクリプトの実行権限やエラーハンドリングに注意が必要です。

注意点とよくあるトラブル

個人アカウントでは有効期限設定が利用できない

Google Workspaceの組織アカウントでなければ、共有設定に有効期限オプションは表示されません。個人アカウントで期限を管理するには、手動で定期的にアクセス権を削除するか、Apps Scriptなどの代替手段が必要です。

共有ドライブの期限設定は管理者のポリシーに依存する

共有ドライブで有効期限オプションを表示するには、Google Workspaceの管理コンソールで該当の機能が有効になっている必要があります。デフォルトでは無効になっている場合があるため、管理者に確認してください。

期限切れ後もリンクは残るがアクセスは拒否される

有効期限を過ぎると、そのユーザーはファイルにアクセスできなくなります。ただし、共有リンク自体は無効化されないため、リンクを知っている他のユーザーがまだ有効期限内であればアクセス可能です。期限切れユーザーが再度アクセスしようとすると、アクセス権が不足している旨のエラーが表示されます。

Apps Scriptの制限と注意点

スクリプトでアクセス権を変更するには、スクリプト実行者の権限がファイルの編集者である必要があります。また、大量のユーザーを処理する場合は、Google Apps Scriptの実行時間制限(1回あたり最大6分)に注意してください。定期的なトリガーを設定する際は、トリガーの誤作動に備えてテストを十分に行いましょう。

ADVERTISEMENT

アクセス権の種類と期限設定の比較

アクセス権の種類 標準で期限設定可能か Google Workspaceでの期限設定 Apps Script対応
制限付き(特定ユーザー) 不可 可能(ユーザーごとに設定) 可能
リンクを知っている全員 不可 共有ドライブでのみ可能 トリガーでリンク無効化も可能
公開(ウェブ全体) 不可 不可(非推奨) 削除のみ可能

まとめ

Googleスプレッドシートで共有リンクに有効期限を設定する方法は、利用環境によって異なります。Google Workspaceの組織アカウントであれば、共有ドライブやユーザー別の期限設定を活用してセキュリティを強化できます。個人アカウントの場合は、Apps Scriptによる自動化や手動管理で対応する必要があります。いずれの場合も、定期的にアクセス権を見直す運用を組み合わせることで、望まない情報漏洩を防止できます。ぜひ、自社の環境に合わせた期限付きアクセス権の運用を始めてみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。