事例

freee 株式会社 & GitHub

セキュリティ強化と権限管理に向けてGitHub Enterpriseに移行。SSOや脆弱性の可視化、アクセス制御などを導入し、セキュアで柔軟な権限設定の基盤上で高い生産性を実現。

  • SSOの導入で活発なコラボレーション維持と権限管理の強化を両立
  • OSS の脆弱性可視化を可能にし、ボットによるバージョンアップの自動化も実現
  • リポジトリへの関与の制限とOrganizationオーナー権限の集約によりロールを細分化 生産性を維持したままユーザー棚卸を実現したセキュアな開発環境を構築

サービス開発と改善を支えたのは意欲的なエンジニアたちとGitHub

日本にある会社全体の中で 97 % を占めるというスモールビジネス(堅実な中小企業や個人事業主)。その経理や給与計算などのバックオフィス業務から経営者や担当者を解放し、本来のクリエイティブな事業活動にフォーカスできるよう、洗練された技術に裏付けられたイノベーティブなサービスを提供しているのがfreee 株式会社(以下、freee)だ。2013 年に、主力となるクラウド会計ソフト「freee」をを端緒として、2015 年に「会社設立 freee」、2016 年に「クラウド申告freee」と「開業freee」を多岐にわたるサービスをリリースし、2017 年には「人事労務freee」をリブランドするなど、次々にプロダクトを開発してきた。

その結果、2018 年4 月時点で、クラウド会計ソフト「freee」は約100 万事業所で活用され、クラウド会計・人事労務ソフトの法人シェアで国内No.1となった。その絶え間ないサービス開発と改善を支えてきたのが、優秀で意欲的なエンジニアたちと、ソフトウェア開発プラットフォーム「GitHub」の存在だ。

freee の社員は500 名ほどだが、ソフトウェア開発は業務委託する協力会社のメンバーも含めて約200 名体制でおこなっている。2013 年頃から、ボットを利用したリリースフローや、CI/CD (継続的なインテグレーションとデリバリー)の導入のほか、チャットからGitHub を操作してデプロイするChatOps なども取り入れるなど、エンジニアが自由にトライできるカルチャーを担保しているのも、freee の強みといえる。

また、同社はサービスのビジュアル改善にも注力しており、各プロダクトのデザイナーやサービス企画を考えるプロダクトマネージャーなどもGitHub を利用する。 さらに、インフラ管理にもGitHub を活用。FreeeではAWS をインフラに採用しており、AWS上に構築した開発環境の構成管理や、定義ファイルの設定・プロビジョニングを、Pull Requestベースで宣言的に管理・自動化できるよう、IaC(Infrastructure as Code)を実践している。

2019 年11月現在、freeeの提供サービス数は公開されているだけでも10 種ほどあるが、その 開発環境はマイクロサービス化されていている。

GitHub Enterpriseへの移行を機に強すぎた権限設定をより細分化

「私が入社した2013 年当時は社員が5 名ほどでしたが、当時からGitHub(Teamプラン)が使える状況でした。前職では集中リポジトリ型の開発環境だったため、多くのエンジニアが開発に関わるとコンフリクトが発生しやすく、整合性を取るのが大変でしたが、GitHub はその心配もなく、GitHub Flowでデプロイを実施した時は素直に感動した覚えがあります」と話すのは、freee 執行役員 ソフトウェアエンジニア & マネージャー 若原 祥正氏だ。

GitHubTeamプランを使い始めた時点では、コードのリビジョン管理に使う程度だったが、その後はプライベートリポジトリを使って開発を分業し、CI/CD を実行するなど、リリースフローを取り入れた本番リリースをおこなうほどになっていったという。

しかし、開発するソリューションが会計や給与、マイナンバーなどセンシティブなデータを扱うだけでなく、ビジネスも急速に拡大していたため、開発環境にもより堅牢なセキュリティを求めるようになった。そこで若原氏は、「GitHub Enterprise Cloud」(以 下、GitHub Enterprise)への移行を決断したという。注目したセキュリティ強化のポイントは主に次のようなものがあった。

1つは、より柔軟な権限管理が可能であること。事業拡大によりエンジニアの数も急増し、業務委託する協力会社も増えたが、非常にセンシティブなデータを扱うため、厳格な管理が必要となる。活発なコラボレーションは維持しつつ、権限管理を強化するには、SSO が必須だった。

「Teamプランでは管理者権限の柔軟性がなく、不要に強い権限を持つユーザーが多かったため、権限設定がより細分化できるGitHub Enterprise への移行を決めました」と若原氏はいう。 2 つ目は、ディペンデンシー・インサイトの活用。依存するオープンソースプロジェクトの脆弱性のほか、ライセンスなどに関する重要情報を可視化するので、対応が必要なOSS のライブラリがどのリポジトリに入っているのかを見ることで気付きを得ることができる。さらに、GitHub Enterprise は依存関係があるOSS に脆弱性を修正するアップデートが提供されている場合、アップデート適用のPull Request を自動で作成するためセキュリティ対策の自動化を実現できるという

3 つ目は、リポジトリに対する外部コラボレーターの制限。協力会社が開発に関与する機会が増える中で、リポジトリへのアクセスや新規作成を制限できるのは非常に有効だと若原氏はいう。「Organization のオーナー権限を持つ人は、以前はおよそ30 ~40人ほどいましたが、現在は2 ~ 3人に集約し、必要最小限の権限のみを渡すことで、ロールを細分化しています」 プライベートリポジトリを誤ってパブリックにしたり、間違ってマージしたりするのを防ぐためにも、一定の制限はエンジニアにも歓迎されており、こうした懸念もGitHub Enterprise に移行する促進要因になったという。

freee にとってGitHub は基幹系。呼吸するように活用するほどの存在

GitHub Enterprise への移行が、グループごとの権限管理の見直しやユーザーの棚卸など、抜本的な見直しをする絶好のタイミングになったという若原氏は、「生産性はそのままに、よりセキュアになった開発環境が柔軟な権限設定の上で運用できることは、当社のビジネスにと作業の自動リマインド、開発ボトルネック分析、コードレビュアーのアサイン最適化などの機能を活用するだけでなく、Jenkins、CircleCI、Codecov(コードのテストカバレッジの計測のためのCIサービス)、Renovate(パッケージのアップデートを継続的におこなう機能)などとGitHub Enterprise を連携している。また、監査にも対応するため、Danger(コードレビューに関するチームの規則を自動化するツール) を連携させて、根拠となるURLや文章が書かれていなければマージできないようにするなど、開発の証跡管理も強化している。 さらに、GitHub Enterprise の社内利活用を促進し、より活用してもらうため、非エンジニアや新卒エンジニア向けの社内講習も実施している。コマンドの使い方や、コマンドの内部挙動まで解説するほか、「軋轢を生まないレビューの方法」や「伝わりやすいPull Request の作り方」といった実践的なテーマも用意されているという。

今ではGitHub Enterprise が止まると業務が全て停滞してしまうほど、深い依存関係にあると若原氏は強調する。「私たちが提供しているサービスは基幹系ですが、freee にとってはGitHub Enterpriseも基幹系システムの1つであり、呼吸をするように活用しているといっても過言ではないほど不可欠な存在になっています。そのため、ギットハブ・ジャパンには今後も安定したサービスの提供と、最新機能のキャッチアップなどのサポートを強く期待しています」 freee は今後もGitHub Enterprise を核とした先進的な開発を加速し、スモールビジネスがさらにスマート化するためのプラットフォームの実現をめざすという。

  • 業種

    ITサービス

  • 企業規模

    500+

GitHubを企業で活用する

柔軟なホスティングオプションやビッグデータに裏付けされたセキュリティが、企業におけるソフトウェア開発をサポートします。

営業へのお問合わせ

世界最大の開発者コミュニティに参加しましょう

Free

GitHubのコア機能

  • 無制限のパブリック/プライベートリポジトリ
  • 無制限のコラボレータ
  • GitHub Actions利用時間2,000分/月 パブリックリポジトリでの利用は無料
  • GitHub Packages利用500MB/月 パブリックリポジトリでの利用は無料
  • コミュニティボードによるサポート

Team

GitHubのコア機能

  • Freeプランに含まれているすべての機能
  • 必須レビューワー
  • GitHub Actions利用時間3,000分/月 パブリックリポジトリでの利用は無料
  • GitHub Packages利用2GB/月 パブリックリポジトリでの利用は無料
  • コードオーナー

$4 ユーザー/月

Teamプランを使う

Enterprise

企業ニーズを満たすセキュリティ、コンプライアンス、柔軟なデプロイメント

  • Teamプランに含まれているすべての機能
  • SAMLによるSSO
  • GitHub Actions利用時間50,000分/月 パブリックリポジトリでの利用は無料
  • GitHub Packages利用50GB/月 パブリックリポジトリでの利用は無料
  • 高度な監査機能

$21 ユーザー/月

営業に問合せる

GitHub One

GitHubが提供するすべての高度な機能、サポート、サービス

  • Enterpriseプランに含まれているすべての機能
  • コミュニティに支えられたセキュリティ機能
  • 生産性をあげるメトリックス
  • 24/7対応のサポート
  • トレーニング