AppSheetを社内運用する場合のイロハ

AppSheetの社内運用を厳格に管理したいけれど、どうやって管理したらよいのかわからない。という声が聞こえてきたので、AppSheet Enterprise Plusを導入していろいろな角度から検証してみました。

確かに、Google WorkspaceにAppSheet Coreプランが追加されたことで作れるようにはなったけれど、これ安全なの?という疑問は普通に湧いてくると思いますし、制御を掛けたいというのも当然の要望です。

今回利用するサービス

今回のネタは大半がAppSheet Enterprise Plusのネタになります。会社で使うならばこれを使え!ということなのですが、全員に割り当てるにはなかなかいいお値段がします(月額2500円 / フレキシブルプラン)。Coreでも通用する部分もありますが、少なくとも企業で使うのにFreeプランはNGですので、最低でもGWSの導入はしておきましょう。

また、Enterprise Plusだと何がどう制御できるのか?という詳細な日本語資料も少なく、AppSheetを普及する上では重要なポイントです。

導入方法

簡便な制御方法

AppSheetの管理は管理コンソールとAppSheet側とで分かれていて統合されておらずわかりにくいです。管理コンソール上では、

  • アプリの利用を組織部門別にオンオフ(設定グループも使える)
  • AppSheet Core ライセンスのセキュリティ設定により一定の制御だけ出来る。有効にするとAppSheet側の設定で以下の設定が使えるようになる。オンにすると以下の内容が制御可能になります。
    • AppSheet のアプリとデータベースを外部アプリユーザーと共有する機能
    • 外部アプリデータへの接続
    • 外部の宛先に送られる自動化メール
    • アプリ API を介した外部統合
    • Webhook

但し、これだけだと組織管理は殆どできないので、社内運用するにはかなり厳しいと思います。しかもこのセキュリティ設定はプライマリドメインのみで、セカンダリドメインにまでは及ばないということです(セカンダリは外部ユーザ扱いとなる)。

図:Coreのセキュリティ設定は管理コンソールから

Enterprise Plusを導入する

組織でより詳細な管理を行う為には、管理コンソールよりEnterprise Plusを追加しライセンスを割り当てる必要があります。以下の手順で導入することが可能です。試用版はないようです。

  1. 管理コンソールにログインする
  2. 左サイドバーよりお支払い⇒その他のサービスを利用する⇒Google Workspaceアドオンを開く
  3. AppSheet Enterprise Plus(その他のサービス)にある開始をクリックする
  4. 次へをクリックする
  5. プランを選択する。月単位契約ならばフレキシブル、年間一本ならば年間プランを選択し、ご購入手続きをクリックする
  6. 注文をクリックする
  7. 次に同じ画面のAppSheet Enterprise Plusの「ライセンスを割り当て」をクリックする
  8. 割り当てるユーザ名をクリックする
  9. 下の方にあるライセンスをクリックする
  10. AppSheet Enterprise Plusのステータスをクリックして、スイッチをオンにすると割り当て済みになります。
  11. 保存をクリックする

これで、対象ユーザはEnterprise PlusとしてAppSheetが利用可能になります。一旦、AppSheetをログアウトして再ログインすると、ライセンスがCoreからEnterprise Plusに変わります。

図:アドオンとして追加する

図:ライセンスを割り当てる

図:ライセンス表記が変わった

社内運用ノウハウ

AppSheetの実行権限

GASなどは基本、実行者の権限で動きつつも、ウェブアプリの場合は誰の権限で動かすか?を設定することが出来ます。一方、AppSheetはデフォルトではデプロイした人の権限で常に動作します。よって共有ドライブ上のスプレッドシートであっても、アクセス権限の有無を問わずに読み書きが出来ます。

つまり、Cloud Identity Freeのユーザであっても共有ドライブ上のファイルが本来は読み取り専用のハズが、書き込みもできるようになります。この辺りの検証結果は以下のエントリーにまとめてあります。

AppSheetの実行権限変更についても記載していますので、ユーザ権限で動かしたい場合には変更が必要です。

※組織部門でアプリをオフにした場合、所属ユーザはAppSheetでアプリを作れなくなりますが、同時に他の人のアプリも使えなくなってしまいます。よって、特定ユーザにだけ作成させたい・他のユーザは利用だけさせたいという制御は出来ません

AppSheetのアプリはCloud Identity Freeから使えるのか?

グループアドレスで通知はできるのか?

AppSheetにはメールではないNotificationというアプリの通知機能があります。メールの場合は普通にSend emailにてグループアドレス宛に通知を送ることが可能ですが、このNotificationの場合はどうなのか?

結論から言えば現時点では「グループアドレスで一斉にアプリ通知は送れない」。

故に個人で情報を登録した後の個人宛の完了通知などに使えるでしょう。AppSheetはなぜかダイアログ表示機能が無いので、これを変わりにして使っています(PC上では通知は送れないので意味がないですが)。

今後の機能増強に期待しましょう。

図:便利なアプリ通知機能

グループアドレスで共有できるのか?

AppSheet Enterprise Plusだとグループアドレスで他のユーザとアプリを共有できると耳にしたものの、通常のユーザと同様に共有のパネルからグループアドレスを入れても、Access Denied・・・確かに対象のアカウントはそのグループに入ってるのに・・・。ちなみにドメイン内全員と共有する場合は、この通常の共有パネルでメアドではなく、「domain.com」という具合にドメインを入れて共有すると使えるようになります。

ということで調べてみたところ、グループアドレス単位で共有する場合にはちょっと複雑な処理が必要でした。この作業はGoogle Workspaceの特権管理者のみ行えます。ドメイン認証を利用する必要があります。

  1. 特権管理者でAppSheetにログインする
  2. 右上の自身のアカウントのアイコンをクリック⇒Account Settingsをクリック
  3. Integrationタブをクリックする
  4. Auth DomainsにてNew Auth Domainをクリックする
  5. Google Cloudをクリックする
  6. 特権管理者を選んで通常のログインと認証を進める
  7. 追加されたGoogle Cloudの「︙」をクリックして、Share with my teamをクリックする
  8. Team Auth Domainsにも追加される
  9. 次に適用するアプリの開発画面を開く
  10. 左サイドバーよりSecurity ⇒ Domain Authenticationを開く
  11. Require domain authentication?をオンにする
  12. Authentication domain sourceにて、先程作ったAuthが出てくるので選択
  13. Authentication display nameは適当に入力する
  14. Restrict by Domainは自社のプライマリドメインのアドレスを入れる
  15. そして、Authentication groupsにてグループアドレスを入れて、権限を付けて、バージョンを指定する
  16. 右上のSAVEをクリックする

これで、別のアカウントでログインしようとすると、13.の甘えのAuthが出てくるのでクリックしてログインする。グループアドレスに対象のユーザが入っていればそのままログインして使えるようになります。

特定のアプリに対して、一人ずつ沢山のユーザを共有リストに追加するなんて面倒なことをせずに済みます。

図:Auth Domainを追加する

図:AppSheet側のDomain Authentication設定

図:ログオン画面

ポリシー適用

社内運用する上で最も重要なのがAppSheet Enterprise Plusで利用できるチームポリシー。この設定はGoogle Workspaceの特権管理者しか行えませんが、行うことでGoogle WorkspaceのユーザおよびCloud Identityユーザ全員に対して制限を強制することが可能です。あらかじめ用意してあるものと、カスタムポリシーの2種類があります。

チームポリシーについて

チームポリシーを設定して気がついたのですが、この設定自体は特権管理者しか行えないのはその通りなのですが、Enterprise Plusのライセンスを割り当てていない他のユーザにもポリシーが反映されてることに気が付きました。今回の検証では他のユーザはCloud Identity Freeアカウントで、ライセンス割当はしていません。

CIFのユーザでもAppSheetは作成や利用が出来るのですが、外部共有制限ポリシーを適用中にgmail.comアカウントを追加しようとしたら、きちんと制限が働いてるのを確認。ひょっとしたら、特権管理者分のみ購入すれば代替の制御は出来たりするのかな?と感じました。CIFはCoreではなくFreeプラン扱いになるのですが、それでも同一ドメインだと適用されるみたいですね。

図:CIFでもポリシーが適用されてる

よく使いそうなポリシー

ポリシー設定手順

Enterprise Plusでは組織全体に対してポリシーを設定することが可能です。その中で組織管理でよく使いそうなものをチョイスしてみました。設定方法は以下の通りです。特権管理者のみが設定することが可能です。

  1. AppSheet開発画面の右上、自身のアイコンをクリックしてPoliciesをクリックする
  2. 左側にTeamとあるのでクリックする
  3. 右側にある+ Team Policyをクリックする
  4. Policy Templateから項目を選ぶ
  5. Nextをクリックする
  6. それぞれのポリシーごとの固有の設定をしていく

図:Policyを追加する画面

特定のドメインのユーザのみ

アプリの共有先をGoogle Workspaceのドメイン内に限定する設定です。例えば外部のgmail.comユーザを追加して共有しようとするとエラーとなり停止します。

  1. Only users from specific domainを選択する
  2. Nextをクリックする
  3. Nameにわかりやすいポリシー名をいれる
  4. conditionの中の数式を以下のように変更する
  5. Severityには「error」を選択する
  6. 右側のパネルに現在手持ちのアプリのうち、要件を満たしていないアプリの一覧が出てくる
  7. Saveをクリックする
  8. 確認ダイアログが出るのでSaveをクリックする

図:これで外部共有は出来なくなる

アプリをデプロイ出来るユーザを制限する

アプリをデプロイ出来るユーザを特定のユーザのみに限定する手法です。事実上、これにより特定のユーザにだけ作らせてユーザは使うだけという状態を作り出すことが可能です。例えば特権管理者のみデプロイを許可し、そのユーザをアプリの編集者として許可しておくと良いでしょう。

事前に特権管理者のAppSheet上のIDを調べる必要があります。IDはMy AccountのURLをクリックするとIDに数値が書いてあるのでこれを使います。

  1. Restrict who can deploy appsを選択する
  2. Nextをクリックする
  3. Nameにわかりやすいポリシー名をいれる
  4. conditionの中の数式を以下のように変更する
  5. Severityには「error」を選択する
  6. 右側のパネルに現在手持ちのアプリのうち、要件を満たしていないアプリの一覧が出てくる
  7. Saveをクリックする
  8. 確認ダイアログが出るのでSaveをクリックする

図:ここのIDを利用する

カスタムポリシー

これは独自のポリシーを構築するもので、前述の既定のポリシーにあるようなconditionをこちらにある項目と関数を組み合わせて、適合するものだけを許可するといったものになります。

カスタムなので独自に既定できますが上級の設定になるので、通常はあまり使いません。

モニタリング

Enterprise Plusのライセンスを割り当てるとデプロイしてるアプリケーションに関する各種機能が使えるようになります。Manageの中のMonitorがそれに該当します。

  • Audit log : いわゆる監査ログ。ログイン状況や何を行ったか?ユーザアカウント別にログが確認出来る
  • Automation Monitor : Automation機能を使っての自動化処理に関する状況を確認出来る
  • Usage Statics : アプリの利用統計レポート。どれくらい活用されてるのかを簡単に追跡できます。
  • Performance Profile:アプリ毎の演算時間などを確認して処理の重いアプリを抽出できる。

図:監査ログで状況を確認

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)