Google Driveの共有ドライブにおける共有設定の方法

# はじめに

こんにちは、フューチャーの村田です。この記事は[フューチャー Advent Calendar 2022](https://qiita.com/advent-calendar/2022/future)の5日目記事です。

# 本記事の背景

当社ではGoogle Workspaceを利用しており Google Meet や Google Drive に日頃からめちゃくちゃお世話になっているのですが、共有ドライブの共有設定で迷う部分があったのでナレッジとしてこの記事にまとめます。

# やりたいこと

共有ドライブを使うからにはなにか共有したいものがあるのですが、今回のユースケースは「全社向け勉強会資料を共有したい」というものでした。

世間の企業と同様当社内にもCCoEが存在しており私もそのメンバーです。CCoEでは定期的に勉強会を開催しており、その際に2種類のドキュメントが登場します。

1つは勉強会にて投影されるプレゼン資料、もうひとつは勉強会中に参加者で協力して書き上げていく勉強会メモです。前者はパワポ、PDF、Google Slideなどの形式で、後者はGoole Docの形式なことがほとんどです。

今回の共有対象は上記2種のファイルです。

# 前提事項

今回ご紹介する方法のうちいくつかは「共有ドライブの設定」にて「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」が有効になっていることを前提としています。組織のポリシー次第ですが本項目は「Google Workspace管理者」もしくは共有ドライブにて「管理者」の権限を持っているユーザが設定変更可能です。

# アクセス権限について

## メンバーとゲスト

共有ドライブには「メンバー」と「ゲスト」という2つの概念があります。端的に言うと、共有ドライブのルートフォルダに対してなにかしらのアクセス権限を持っているユーザが「メンバー」、配下のフォルダやファイルに対してのみアクセス権限を持っているユーザが「ゲスト」です。

例えばとあるプロジェクトで利用している共有ドライブがあったとして、その中の特定のフォルダ・ファイルのみをプロジェクト外メンバーへ共有したい場合、共有相手のユーザは「ゲスト」としてアクセス権限を付与するのが理想の形です。

## ロールの種類

「メンバー」「ゲスト」という概念とは別に、ユーザができることに応じていくつかのロールが定義されています。

### フォルダに対してのロール

| ロール名 | ロールの説明 |
|:-|:-|
| 管理者 | コンテンツ、ユーザー、設定を管理  |
| コンテンツ管理者 | ファイルを追加、編集、移動、削除できます  |
| 投稿者 | ファイルを追加、編集できます  |
| 閲覧者（コメント可） | 閲覧したファイルに対してコメントができます |
| 閲覧者 | 閲覧のみでコメントはできません |

上記ロールの内「管理者」は「ゲスト」へ付与することのできないロールです。つまりルートフォルダに対しての共有設定時にのみ表示され、それ以外のシーンでは選択することができません。

### ファイルに対してのロール

| ロール名 | ロールの説明 |
|:-|:-|
| 編集者 | ファイルを編集できます  |
| 閲覧者（コメント可） | ファイルにコメントができます |
| 閲覧者 | 閲覧のみでコメントはできません |

## 一般的なアクセス

ルートフォルダを除くフォルダおよびファイルにて共有設定のダイアログを開くと、「一般的なアクセス」という項目が表示されます。こちらはデフォルトでは「制限あり」となっており、「メンバー」あるいは「ゲスト」として明示的にアクセス権限を付与されたユーザのみが対象のフォルダ・ファイルへアクセスすることが可能です。

これを変更することができ、定義された特定のグループに対して一括でアクセス権限を付与することができます。ただしグループは Google Workspace の設定に依存します。当社ではこの機能を利用して社内の全ユーザへアクセス権限を付与することができるようになっています。

「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」が無効となっている場合、「メンバー以外とは共有できません」のエラー文言が表示され本機能が利用できません。「一般的なアクセス」によってアクセス権限を付与されたユーザは「ゲスト」と同様の扱いになっているようです。

## アクセス権限の変更権

アクセス権限を変更できるのは共有ドライブにて「管理者」のロールを持つユーザのみです。例えば特定フォルダに対して「コンテンツ管理者」のロールがアタッチされているユーザは「共有+」ボタンを押下してアクセス権限を付与したいユーザを選択することができますが、それにより「管理者」ユーザへ共有リクエストが飛ぶ形となっており、リクエストが承認されないとアクセス権限の付与は行われません。

# 共有の方法

さて、アクセス権限周りの定義を踏まえてユースケースに合わせて共有方法を検討していきます。おさらいですが、今回のユースケースは「全社向け勉強会資料を共有したい」なので、共有相手は全社員です。

## 「メンバー」として共有

これは前提事項で記載した「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」の設定が有効になっていなくても使える方法です。

共有ドライブのルートフォルダに対して全社員を「メンバー」として登録してしまうことで、一括でアクセス権限を付与してしまいます。全社員が含まれるメーリスなどがあれば設定は楽ですが、そういったものが存在しない場合には設定は少し非現実的でしょうか。また、ロールは少し検討が必要かもしれません。

今回の想定ユースケースでは以下のキャラクターが存在します。

* 勉強会運営メンバー
    * 受領した勉強会資料をアップする
    * 勉強会メモのファイルを作成する
* 勉強会参加者
    * 勉強会資料を閲覧する
    * 勉強会メモを編集する

勉強会運営メンバーには最低限「コンテンツ管理者」のロールを付与しておく必要がありそうです。勉強会参加者には「投稿者」もしくは「閲覧者（コメント可）」のロールが適切でしょう。もし「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」の設定が有効にできるのであれば、ルートフォルダレベルでは「閲覧者（コメント可）」として設定（as a 「メンバー」）し、個別のファイルごとに適宜「編集者」としてロールをアタッチ（as a 「ゲスト」）するなどの方法も可能です。

私は今回この方式は却下しました。というのも、CCoE活動においてひとつの共有ドライブを作成しており、公開したいのはあくまでその中の"勉強会フォルダ"だけだからです。ですがユースケース次第では十分に採択可能な選択肢だと思います。

## 「ゲスト」として共有

この方法は前提事項で記載した「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」の設定が有効になっている必要があります。

フォルダ・ファイル単位での共有が可能なので、共有ドライブの中に全社公開用のフォルダを作成してしまい全社員向けにアクセス権限を付与してしまえばOKです。先程の方式と同様、共有対象者を全員含んでいるメーリスなどがあることが望ましいですね。

## 「一般的なアクセス」を利用して共有

この方法も前提事項で記載した「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」の設定が有効になっている必要があります。

ルートフォルダを除くフォルダ、あるいはファイルに対して本設定を行うことができますが、今回のユースケースである全社共有と非常に相性が良かったので私は今回この方式を採択しました。「ゲスト」として共有の方式と比べるとメーリス1個だけですが登場人物が減るので、その分管理運用コストが下がっていいなと思っています。

# さいごに

さて、今回は「全社向け勉強会資料を共有したい」というユースケースを元に共有ドライブ利用時のアクセス権限設定方法を検討しました。実は個人的に一番気になっていたのは「管理者」以外のロールのユーザが共有設定を行った場合どういった挙動をするか、だったのですが、「『管理者』へ共有リクエストが飛ぶ」という挙動が分かったので非常にすっきりしました。

本記事の執筆に際しては、クラメソさんの[Googleドライブの「共有ドライブ」の共有の設定についてまとめてみた](https://dev.classmethod.jp/articles/google_shared_drive_settings/)を非常に参考にさせていただきました。実際今回のユースケースに直面した際に最初にたどり着いたブログがこちらのブログでした。

フューチャーアドベントカレンダーはまだまだ続きます。引き続きご期待ください！