Google Workspace(旧:G Suite)は一般企業でも入れている会社も多いと思います。
スプレッドシートでのやり取りが多くなったり、GASや、WEBアプリケーションの構築で問題になるのが権限。
Googleは「権限」が厳しく設定されている事もあり、Google Workspaceのユーザーと無料版のユーザーのやり取りで権限に悩まされることもあるかと思います。Googleで権限設定は分かり易くなっているのですが、気が付いた部分を備忘録としてまとめてみました。
- Google Workspace(旧:G Suite)の権限が分かる
- GASを使うときの権限設定内容が分かる
Google Workspace(旧:G Suite)とは?
Google Workspace(旧:G Suite)は、今更な内容なのでギュッとまとめた内容にします。
Google社が提供するビジネス向けのクラウド型グループウェアサービスで、GmailやMeetsは使っている人も多いです。冒頭で記載した「今までレンタルサーバーで独自ドメインを使ってWEBサイトやメールを使っている」と言う方は、Googleで無料のアカウントを取得して、Gmailを使ったり、Meetsで話したりしていると言う感じではないでしょうか?
簡単に言うと、それの有料版が「Google Workspace(旧:G Suite)」です。
主な違いはこちら。
機能 | 無料プラン | 有料プラン |
---|---|---|
Gmail | 独自ドメインの設定が不可 | 独自ドメインの設定が可(広告無し) |
Googleドライブ | 上限15GB(オプション追加可) | 上限30GB以上 |
Meets | 60分(3人以上の参加者) | 無制限 |
カレンダー | 標準的な機能 | 会議室や設備など組織のリソースの予約機能、組織内の全員(または一部のユーザー)を招待できるグループカレンダーの利用など |
セキュリティ | 標準 (データ保全やハッキング対策など) |
高度 (2段階認証プロセス、SSO、迷惑メールのフィルタ機能や広告の無効化など) |
共有機能 | ユーザーごと・自身で作ったGoogleグループ・インターネット上の全員 | 無料の内容+同じドメイン(同じ組織)全員への一括 |
コロナ禍の時、本来は無料版では時間制限があるものの、自宅でオンラインで働く方が増えた事もあり、無料で時間無制限の期間が2回も延長されました。(Googleさん、ありがとう)
無料版でもアカウントあれば、有料版のMeetsに参加したり、Gドライブのアクセスも権限を貰えれば繋がるので、大きくは不便はないと思います。
料金とプラン
料金プランは無料のフリープランを入れて5種。
無料版も良いですが数人以下の企業でも「Business Starter」があると便利。少ない人数だからこそ、高度なセキュリティを提供される有料版をおすすめします。
スプレッドシートでGASを実行する権限
スプレッドシートやGASを動かしたときに、共有設定や権限周りでハマる場合も。操作慣れで理解している部分もあるのですが、今一度まとめておきたいと思います。「トリガー機能」とは、主に以下の様な事を指します。
- データ整形をシート上に設置した「ボタン」もしくはメニューの「スクリプトの実行」から行う。
- 定期的に自動で処理結果を反映させるために、決まったタイミングで「自動で実行」させる。
トリガーの種類は「シンプルトリガー」と「インストーラブルトリガー」2種類あります。
シンプルトリガー(一般的なトリガー)
上記の①(データ整形をシート上に設置した「ボタン」もしくはメニューの「スクリプトの実行」から行う。)のもの。
シンプルトリガーは、スクリプトに紐づいたドキュメントに対して操作されたタイミングで実行します。
シンプルトリガー関数 | 内容 |
---|---|
onOpen(e) | 編集権限のあるスプレッドシートなどをユーザーが開いたタイミングで実行。(読み取り専用では実行されない) |
onInstall(e) | ユーザーがスプレッドシートなどからアドオンをインストールしたときに実行。 |
onEdit(e) | ユーザーがスプレッドシートの値を変更したときに実行。 |
onSelectionChange(e) | ユーザーがスプレッドシートで選択内容を変更すると実行。 |
doGet(e) | ユーザーがウェブアプリにアクセスしたり、プログラムが HTTP GET リクエストをウェブアプリに送信したときに実行。 |
doPost(e) | プログラムがHTTP POSTリクエストをウェブアプリに送信すると実行。 |
<スプレッドシートで実行する場合の権限>
ファイルの設定 | 実行のアカウント |
---|---|
自分がオーナーのファイル | 自分のアカウント |
他の人がオーナーのファイル | 自分のアカウント |
インストーラブルトリガー(Googleのトリガー設定)
上記の②(定期的に自動で処理結果を反映させるために、決まったタイミングで「自動で実行」させる。)のもの。
インストーラブルトリガーは、GASで実行させる関数をあらかじめ作成して、Googleの設定から実行タイミングを指定します。(①をGoogleの設定で自動起動させるものです)
<スプレッドシートで実行する場合の権限>
ポイント
インストーラブルトリガーは、外部ファイルに対しても処理を行うことが可能なので、スクリプトが参照しているファイルにアクセス権限がない場合はエラーになります。フォルダーにも共有設定があるので、合わせるとスクリプトが参照するファイルとフォルダの両方に対してアクセス権限を付与することが必要です。
逆な考え方をすると、通常はアクセス権が無い人にもアクセス権が必要な情報を見せる仕組みづくりも可能です。
シンプルトリガーとGAS実行の注意点
- 読み取り専用の設定で開かれたスプレッドシートでは実行されない。
- アクションを起こすトリガー実行が必要。(例:セルに何か値をいれただけでは実行しない)
- 30秒以上の実行はできない。(実行処理に
- すべての処理が6分以内。(有料のGoogle Workspaceにしても同じ時間。バックグラウンド処理のプログラムを作れば疑似的な時間調整を行うこともできる。)
- 初回実行時には承認が必要となるので、一度も実行していない状態でトリガーが実行されると、権限の承認部分で止まります。(1度承認許可すればOK)
その他、GASの割り当てもあるので、以下のアドレスから確認する事をお薦めします。
補足(WEBアプリの実行権限について)
WEBアプリとして、デプロイするときにも実行権限を設定します。
設定は「自分」と「ウェブアプリケーションにアクセスしているユーザー」の2つ。
自分として設定した場合
自分として設定した場合、ウェブアプリに誰がアクセスして処理を実行しても、自分として実行されます。ウェブアプリの利用者は参照しているファイルやフォルダへのアクセス権限を付与されている必要はありません。ですが、全てがデプロイした「自分」として実行しますので、誰が行った処理なのかをあとから確認することは難しいです。
自分としてデプロイする場合、スクリプトが参照したり編集したりするファイルとフォルダへのアクセス権限が必要。
ウェブアプリケーションにアクセスしているユーザーとして設定した場合
GASの実行と同じことなので、初回アクセス時に処理を実行することを許可するかどうか確認があります。
利用者ユーザーには参照したり編集したりするすべてのファイルとフォルダへのアクセス権限を設定することが必要。
(利用者ユーザーであれば誰でもデータにアクセスできる状態になるので注意)
また、ファイルを生成するプログラムなどの場合、実行ユーザーが、ファイルオーナーになります。
デプロイ時のURLについて
デプロイでWEBアプリにした場合、WEBアプリのURLが発行されます。初回は「新しいデプロイ」で実行するのですが、GASの修正を行った後、再度デプロイをして反映させる必要です。再度、「新しいデプロイ」を行ってしまうとURLが変わってしまいますので、その時は「デプロイを管理」から「鉛筆マーク」をクリックして「新バージョン」を選択し、デプロイをします。こうする事で、URLを変更せずGASの修正を反映させることができます。
最後に
紹介したほとんどの内容でハマったことがあるので、Google検索でいろいろと調べ纏めました。また、Googleの権限内容や、ルールは変わる事も多いので、公式ドキュメントのURLを控えて置き、適度にチェックする事をお薦めします。