Atrae Tech Blog

People Tech Companyの株式会社アトラエのテックブログです。

アトラエらしさと向き合った Google ドライブの設計

みなさんこんにちは。エンジニアの小倉です。権限管理してますか?(挨拶)

今回は「アトラエらしさと向き合った Google ドライブの設計」を題材にし、アトラエのビジネスや組織の考え方をどのように Google ドライブに反映させたかを説明します。細かに書きすぎるとセキュリティ的にアレなので重要な点のみを抽出しています。

なお、2023年時点で完成しているわけではなくむしろ発展途上ですので、その前提で読み進めて頂けると幸いです。

背景

アトラエでは以前からクラウドストレージサービスとして Google ドライブ(以下 ドライブ)を利用しています。 ドライブは柔軟性の高いサービスで、セキュリティで固く縛ることもできますし、逆に意図的にゆるく設計することも可能です。

ドライブを導入後、社内に統一的なポリシーがなかったため運用における問題がたくさんありました。例えば以下です。

  • Slack でドライブの URL が送られてくるが、リンクを開いてもアクセス権限がないことがあった(自身には権限がないマイドライブや共有ドライブだった 等)
  • 誤操作によってファイルやフォルダが消失していたり意図せず変更されているケースがあった
  • 社外に共有する際のルールがなかったり、チームや個人にによってその方法が異なっていたりした

後述しますが、世界中の人々を魅了する会社を創ることをビジョンに掲げるアトラエにとって情報共有がボトルネックになっていることは由々しき事態でした。

時間をかけてドライブと向き合いバージョンアップを重ねた結果、上記の課題を解決できるようになったのでその過程を詳細に書いていきます。

取り組んだこと

以下の3つを約1年の間で取り組みました。特に方針の策定に時間がかかりました。

  • 課題の整理
  • 方針の策定
  • 移行の実施と浸透

課題の整理

MECE ではなく恐縮ですが、私が観測していたことと従業員からヒアリングして得られた話などをまとめたものが以下です。

事象と原因が混在していますが、要は生産性とセキュリティレベルの低下が発生している状態でした。

これが続くと利用歴の長い既存の従業員がこれまで通り利用を続けることで、よりドライブの構成が複雑になることが予想されましたし、事業部やチームごとに個別で異なるクラウドストレージを採用したり、それによって本来意図していた全社としての情報共有が阻害されたりする未来がなんとなく見えていました。

私は Konmari 魂とともにドライブと向き合うことを決めました。

「らしさ」と情報システムの設計

閑話休題。課題の解決方法からその組織「らしさ」が見えてくると私は考えています。だからこそ組織で特定された課題へのアプローチが複数ある場合、「どのような組織にしたいか?」を考えた上で方法を選択するべきだとも考えています。

特にクラウドストレージのような組織の全員が日々触れる情報システムにおいては、より「らしさ」と向き合った設計が必要になります。どういう組織にしたいか?逆にどういう組織にしたくないか?を考えました。

「最小権限」を問いなおす

例えば「各従業員に対して適切に権限が付与されていない」という課題を情報セキュリティの定石から解決しようとすると「最小権限の原則(Principle of Least Privilege)」を採用することになります。これは本来の目的達成に必要な最低限の権限しか与えないようにすることを指し、基本的には各人にミニマムな権限を付与した上で必要な上位権限を追加的に付与していくことになります。この背景には性弱説および性悪説があり、不要なら付与しないということで不要な事故や事件を防ぐことを目指します。

しかしながら組織環境や状況に応じて「最小」が指すところは変わってきそうです。

アトラエでは、全メンバーがフラットかつ建設的に議論できるような、経営者と同じレベルの情報にアクセスできる業務環境を志向しています。当事者意識、経営者目線を阻害する理由の1つに情報量の不足が挙げられます。熱意ある変革者だとしても情報が限られていることで正しい意思決定、自信のこもった意思決定ができないのは想像に難くないはずです。

一般には最小権限の原則に従って自チームや自事業部以外の情報へのアクセスを与えないべきなのですが、アトラエでは全員にほぼ全部の情報にアクセスさせるということが是ということになります。だって経営者なら自社サービスの営業をいつでもできるように営業資料に目を通す可能性は全然ありますよね。いい意味で他事業部、他チームに首を突っ込めた方がいいと私も、みんなも考えています。

適切なガードレールを設置する

一方で全員が全情報を編集できる必要があるか?と問われるとそんなことはありません。そのため編集権限ではなく閲覧権限で十分そうです。

加えて、編集権限を持っているがゆえに本来的ではない操作もできてしまいます。誤操作により業務で利用するファイルを削除してしまうとか、もしくは意図的に情報を抜き取るとかです。これらのリスクに対しては不要な機能をオフにしたり、監視体制を設置したりすることで対応します。

「どのような組織にしたいか?」が攻めの観点とした場合、「どのようにガードレールを設計できるか?」が守りの観点となります。

よいセキュリティの仕組みはガードレールに例えられることが多いです。適切なガードレールがあるからこそ余計なことを考えずに事故もなく走り抜けられるように、快適に業務ができて事故が起きにくい仕組みが情報システムにおいても必要です。

ちなみに全員でほぼ全情報を共有すると書きましたが、人事情報(マイナンバー、給与情報 等)を代表とする情報はそもそも全員がアクセスできるべきではないので、これは一部の人のみがアクセスできるようにする必要があります。

方針の策定

ここまでの観点を踏まえて、「アトラエらしさ」の表現のために一般的な情報セキュリティのベストプラクティスとは反する合理性を含めて方針を策定しました。

資産情報の可視化

インシデント対策として実施しています。やはり情報管理の一丁目一番地となるのが資産のランク付けです。全員がほぼ全てのファイルにアクセスできるからこそ、取り扱いに責任を持ってもらうことを期待してファイルの情報を可視化しました。

Google Workspace のラベル機能を利用し、資産情報の可視化を行っています。Google Workspace Enterprise では DLP 機能が利用でき、その機能の一環としてドライブ上の全てのファイルに対してラベルを自動で付与することができます(このあたりは公式ドキュメントをご覧になったりデモ的に操作したりすることをおすすめします)。

例えばアトラエでは2種類のラベルを設定することでドライブ内の資産管理を行っています。

  • 重要度(Confidentiality)
    • Higly Confidential Confidential General の3種類
    • デフォルトで Confidential が付与され、ファイル内に事前定義の機微な情報が含まれる場合は Higly Confidential に自動的に変更される
    • ファイルに含まれる情報が経営に全く影響しない場合は手動で General に手動で切り替える
  • 共有範囲(Accessibility)
    • Atrae Internal Atrae External の2種類
    • デフォルトで Atrae Internal が自動で付与される
    • 社外に共有する場合は Atrae External に手動で切り替える

ラベルが付与されたことで、グルーピングされたファイルに対してまとめて制御をかけたり、監視の対象としたりできるようになりました。

また結果的に自動で付与されるラベルを通して自分が扱っている情報資産の価値を認識する逆転現象のケースも発生しました。個人情報の正確な定義を知らない人が扱うファイルが、ふと Higly Confidential になり、不思議に思って調べたら、実はこれまで自分が入力していた情報は個人情報の類だった、みたいな感じです(※)。

※ 弊社では個人情報含む機密情報に関するトレーニングを継続的に行っておりますが、その専門ではないメンバーが非常に細かい定義を把握することは非常に難しいこともある、というニュアンスを示唆しています。メインの業務で扱う情報に関しては日々各人で理解に努めています。

共有ドライブの再設計

生産性を改善しつつインシデントが発生しにくい設計を試みました。結果、アトラエの共有フォルダは以下の5種類に大別されるようになりました。

ドキュメントを読み込まないと利用ができないドライブの構成はワークしないと思ったので、命名規則や権限管理を工夫しました。

例えば、

  • 基本的に社員が格納する場所は Employees_Only とする
  • 社外ユーザーに共有するには External_SharingPublic を利用する
  • 協業パートナーとの情報共有は With_Partners を利用する

とかです。直感的ですね。

この取り組みの結果、無秩序に乱立したフォルダはなくなりデータの格納先は統一され、結果どのフォルダに格納しても基本的に社員であれば全てのファイルや対応する URL にアクセスできるようになりました。また誤って社外の方が参加している Slack チャンネルにドライブの URL を添付してしまっても社員以外はアクセス権限がないので、情報漏えいが発生しないというセキュリティ上の効果もあります。

加えて外部共有のルールもできたため、社員が共有してはいけないデータをお客様に誤共有してしまうような事案も極めて発生しにくい構造となりました。

監視機構の導入

期待しないことが発生した場合すぐ気付けるようにするため、ドライブのログを全て SIEM に流しています。

例えば以下のようなケースです。

  • ファイルの重要度を格下げされた時
  • 一定期間にファイルが大量に削除された時
  • 怪しい拡張子がドライブに保存された時
  • 上位権限者としての操作があった時

いずれもインシデントに繋がるケースを想定して、Sumo Logic にログを収集、成形した上で Slack に通知をするような実装をしています。

また、Google Admin にあるアラートセンターなども活用し、外部共有されているファイルの数や種類なども別途確認できます。

細かい設定は他にもたくさんありますが書ききれないので、ログを利用して資産の利用状況が見えるようになりました。

移行の実施と浸透

現状を把握し、理想を伝え、実施して、邪魔なものを削除するということを小さい単位で繰り返しました。

この点についてはアトラエのみんなの協力のおかげで正直あまり困りませんでした(みんなありがとう)。

またマニュアルを作ったものの実はそこまで熟読されておりませんが(マニュアルの閲覧ログを見ています)、トラブルが発生したり運用の質問が来たりすることは現時点ではかなり少ないです。結果的に命名、権限、設定の設計に時間をかけたことは正解だったと思えました。

伸びしろ

冒頭に書いたような目立った課題こそ解決できましたが、まだまだ改善の余地があるのも事実です。

まず全部の情報にアクセスできるようになったはいいものの、必要なファイルに必要なタイミングでアクセスできているわけではない点です。アクセスできていることと、活用できているのはまた別の話です。Google は検索とレコメンドの会社なので、フォルダを掘るようにポチポチと GUI をクリックして欲しいファイルを探すのではなく、ドライブでの検索やレコメンドの最適化を積極活用するべきだと私自身は考えています。極論、それができれば共有ドライブの構成は適当でいいまであるかなとも思います。異論は認めます。人数や社内で発生するプロジェクトがもっと増えたタイミングでこの辺りを考え直そうと思います。

2つ目に外部共有についてです。アトラエからお客様に対してファイルをお送りする場合は、基本的にはドライブに格納しそのリンクをお送りするようにしています。一方でお客様の中にはドライブをはじめ、Google 周りのサービスに一切アクセスできない環境にお勤めの方もいらっしゃいます。この辺りも会社としてどのような方針を採用するか、どのようなツールを選定するかの検討の余地がありそうです。

長文にわたりやってやった感を出したブログになっていますが実際のところ課題はまだまだあります。アトラエらしさには時の流れとともに変わるものもあれば普遍的なものもあります。また見る人によって変わるものももちろんあります。なんならアトラエらしさって何なの?という問いすらも…。その前提に立つと今後クラウドストレージの立ち位置も大きく変化しそうです。いろいろな人と一緒にアトラエらしいクラウドストレージのあり方を追求し続けたいです。

最後に失敗系の学びも多かったので、それだけ共有させて下さいw

しくじり先生〜俺みたいなドライブ設計はするな!!〜

進め方、考え方において間違っていたこともありました。

完璧な設計が可能だと思っていた

クラウドストレージの設計において、承認、確認、その他の手動作業が発生するような設計になることは負けだと思っていました。ピースがよほど上手くハマらない限り、クラウドストレージで全部が自動化できることやサービスが具備している機能で全てが充足することはないはずです。

知見ある他社のご担当者の方々とディスカッションさせてもらいましたが、口を揃えて同じことを仰っていました。うまく設計できない自分の能力や情報不足が原因だと思い、設計に必要以上に時間をかけていた可能性もあります。可逆な施策であればもっとたくさん、早く回しても良かったかなと思います。

サービスの思想を理解しないまま進めてしまった

プロジェクトの早い段階でドライブや Google Workspace の設計思想を理解しておけばよかったです。

例えばマイドライブに重要な資産を保存することの是非はどうでしょうか。マイドライブは共有資産ではなく個人資産の側面が強いため、マイドライブへの保存を禁止している組織もあると思います。だってみんなの資産が「マイ」ドライブにあるの変じゃないですか。実際にアトラエでも長年、マイドライブどうするか問題に決着をつけられていませんでした。

紆余曲折あり、Google の方とディスカッションさせてもらう機会を得て、上記含めてドライブ の設計思想や目指している世界線Google 内でどのように使われているのかなどの話を聞かせてもらいました。

私の解釈が誤解を招く可能性があるのでここでは書きませんが、弊社では設定を変更した上でマイドライブを利用し続けることに自信をもつことができました。

サービス提供者が意図する方法と異なる使い方をして「このサービス全然イケてない!」というのはナンセンスで、思想を理解した上でそれができないならサービスを選定し直すべきという考えが自分の中で芽生えました。

運用を一人で行おうとしてしまった

賛否両論ありそうですが、クラウドストレージの管理者/運用者は2人以上設置したほうがいいと考えています。特に大きい組織であればなおさら。

理由は以下の通りです。

  • 上述のように、自動化しきれない(しない方がいい)運用作業が一定発生するから
  • 担当者が欠席した場合、共有や移動などのフローが滞りビジネスに影響を与えるから
  • クラウドストレージは会社で最も重要な資産なのに、監視や牽制なしに1人で管理するのはガバナンス上も望ましくないから

自分は最初1人ではじめてすぐその体制をやめました。単一障害点・ワイを回避。

Google ドライブの設定だけして要塞化した気になってしまった

要塞化の側面でドライブの運用をカスタマイズする場合、Google Workspace 全体で設定をする必要があります。

ドライブの設定だけして終わりというのがドライブ入門者あるあるです(私)。

最後に

アトラエでは一緒に働く仲間を募集しております。

「自分ならもっとイケてる構成にできる」という方、是非お待ちしております(そうではない方も、もちろんお待ちしています!w)

speakerdeck.com