”モダンな情報システム”を目指しているeurekaが、今年で一番変わったお話をしたい。

エウレカでCTO室の責任者をさせて頂いている梶原です。
この記事は、eureka Advent Calendar 2017 1日目の記事です。
私の職務としては組織作り、環境づくりに関するすべてを担当させて頂いています。
具体的には、以下の業務を担当しています。

  • Pairs 開発チームのチーム・ビルディングの実施・推進
  • 開発チームへのスクラム導入・支援・アジャイルコーチ
  • 全社的な情報システムの導入・推進
  • エンジニア採用の実施・推進
  • 技術広報の実施・推進

本日のエントリーでは、私の役割のひとつ「情報システム」に関して執筆させて頂きます。

モダンな情報システムを目指しているエウレカ

さて、昨年、このようなエントリーをブログに投稿させて頂きました。
エウレカが目指す“モダンな情シス”とは?

伝統的な情報システムのあり方とは違って、Webサービスを開発するかの様に情報システムを運用したら、生産性向上に寄与し、従業員の満足度が向上するのではないかと考えました。
* ツール間のIntegrationを推進して、あらゆる業務は自動化されている
* ひとつの要求で処理を完結できるようなシステムを作る

この2つの概念を取りいれて情報システムを設計した事によって、eurekaの中がどのように変わっていったかを紹介させて頂きます。

エウレカで使っているツールの紹介

コミュニケーション/グループウェア

  • G Suite
  • Slack
  • Workplace by Facebook

タスク管理ツール

wiki / ドキュメンテーションツール

  • Confluence
  • Qiita:Team

ストレージ

  • Box Business

エンドポイントセキュリティ

  • Cylance

この他、Developer、Designerが使っているツールも数多くあります。 

こんな多くのSaaS使ってたら、アカウント管理とか大変じゃないの?

昨年までは、すべて独立したアカウントとパスワードで運用されていました。 その場合は以下の様な課題が発生し、大変でした。

セキュリティ上の課題

  • 退職者のアカウントの消し忘れなどによる情報漏えいのリスク
  • 各サービスのパスワード強度が高く保てない。
  • 2FAの徹底ができず、ログイン強度が一定にならない。

運用上の課題

  • アカウント作成、削除など、管理者側の運用負荷がかかる

どのように改善したのか。

G Suiteを利用していたので、こんな感じにほぼすべてのアプリケーションでシングル・サインオンの実装しました。

その結果、以下の通りに改善できました。

認証をすべてG SUITEに寄せることで、セキュリティを強化する。

  • G SUITEのアカウントを削除すると、他のアプリケーションへのログインができなくなるように制御。
    (アカウント自体は消されないが認証できなくなる。 SAML経由でデプロビジョニング(削除)できるツールは積極的に適用していく
  • シングル・サインオンを徹底することで、パソコンやスマフォなどを紛失した時などのインシデント発生時にも、セントラルですべて管理できるようになりました。
  • パスワードの強度はG SUITE側のポリシーを高める事で、一律制御することができるようになった。
  • G SUITE連携している限り、2FAを強制させるポリシーが適用できるようになった。

またツールを利用する社員としても

  • ツール毎にアカウントとパスワードを覚えなくてよい。
  • とくにツールに初回ログイン時は、Googleのアカウントとパスワードでログインだけすればよい状態になり、心理的な負担を下げることができる。

私たちが扱う情報は、個人情報はもとより、とてもセンシティブな情報を扱っているためセキュリティ向上は常にトッププライオリティで考える事案です。
シングル・サインオンを徹底することで、認証に関するセキュリティの改善が出来ました。

認可(パーミッション)情報を各ツール間で同期させる。

認証の課題が解決した後は、次に課題になりえるのが認可(パーミッション) ≒ 権限の問題です。 

アンチパターン

このグループによる権限設定を実施せず、個人のアカウントベースで権限設定をしてしまうと、以下の様なことが発生します。
パーミッション設定の負担を軽減するためには、どんなツールでもグループの概念が実装されています。 

ベター・プラクティス

ツールのグループに対して権限設定を行うと変更範囲が少なくてよい。

ただし、各ツールで同じようなグループへのメンバー追加・削除の業務が発生してしまいます。 そこで、各ツール間で同じグループ情報が同期できれば、もっと柔軟に簡単に、権限設定を行うことができるようになります。

eurekaが考えたベスト・プラクティスとは

前提として、弊社では(現在のところ)Active Directoryを運用しておりません。
(MacOSの比率が95%な現場でして、何かよいソリューションがあれば教えてください。)
そのため以下の自動化を実現させようと情報システムで開発を行いました。

  • 人事データベースと連携して、組織にもとづくグループを自動的に作成する
  • G Suiteのグループ情報を各ツールに連携させる。

なぜ、この2つの自動化を考えたのかその理由とは、

人事データベースと連携して、組織にもとづくグループを自動的に作成する

権限設定を実施する時は、同じチームのメンバーに対して編集権限を割り当てし、ステークホルダーは閲覧できるようにするケースが多い。 メーリング・リストやファイルの閲覧権限を、まず設定するのは部署の単位で設定することが多いでしょう。

そのため、人事情報と連携して組織情報にもとづいたグループを自動作成し、メンテナンスも自動的に行われているのが理想的です。新しい人がチームに参加したときに、何もしなくても多くのリソースにアクセスできるようになります。

因みに、人事データベースに新しい人が追加されるとG Suiteのアカウント作詞、必要なグループへの追加が自動的にされるように実装されています。

権限管理のグループ情報はツールを超えて同じ状態を維持する。

基本的に共有したい範囲は、ツールが違っても常に同じメンバーなハズです。 連携されていないと、どのツールでも同じメンバーになるようにメンテナンスが必要になります。
たてえば、5つのツールがあった場合に、グループメンバーのメンテナンス作業を5回も実施しなければなりません。 これをエンジニアがやるのはナンセンスですよね。

そのため、Google Groupの情報を他のツールに同期するアプリケーションを開発しました。

なぜマスターにGoogle Groupを選んだのか。

  • Google Groupはグループ情報が見える化する事ができます。(管理者が誰で、メンバーには誰が居てなどが見える化されます。)
  • メンバー追加を現場のリーダーにデリゲーションできる。

そのため、システム管理者のみが設定を確認できると比較して、ユーザ自身が状態を把握して切り分けすることができます。
また、Google Groupでは、メンバー追加の承認方式を柔軟に選択する事ができます。

  • グループ管理者が追加する方法(もっとも厳格な方法)
  • 利用者が手続きすればグループに追加になることもできます。

システム管理者に依頼をして、その作業を待つ事が不要になり、現場に適切にデリゲーションする事ができます。 システム管理者に依頼がある時点では、すでに現場で必要性について議論され結論でてますからね。システム管理側はオペレートするだけであれば、現場にデリゲーションした方が早いですよね?という発想です。
これはプロジェクト単位でのグループを作成したい時にとても効果的です。 Active Directoryな場合は、Webアプリケーションなど開発しないかぎり、適切にデリゲーションが出来ないと考えています。

最後に

このような、インテグレーションを実装することで、アカウント作成、グループ作成およびメンバー情報のメンテナンスコストを0にする事ができます。
また、適切な権限設定を維持することができるようになりました。

  • このエントリーをはてなブックマークに追加

エウレカでは、一緒に働いていただける方を絶賛募集中です。募集中の職種はこちらからご確認ください!皆様のエントリーをお待ちしております!

Recommend

エンジニアの僕が絶対やるJIRAの4つの設定

東大理情名物のCPU実験で毎週徹夜したお話(概要編)