[レポート] GitHub as an Authenticator #GitHubSatelliteTokyo

こんにちは黒澤です。
GitHub Satellite の Day 1 で開催されたセッション 『GitHub LT大会 ~ 事件は現場で起きている!?』 内で行われた LT
『GitHub as an Authenticator』
についてレポートします。

セッション動画

GitHub SATELLITE TOKYO 2018 Day 1 Community

GitHub as an Authenticator

  • スピーカー
    • Wantedly 大坪 新平様

Wantedly での GitHub

  • 情報共有
  • 社員名簿
  • 権限管理

これら全て GitHub を使っている

情報共有

  • 社内全員 GitHub
    • 入社フローは GitHub アカウントの作成から
  • 社内は何でも GitHub
    • 「issue つくった?」
    • コードレビュー/記録/議論/朝会/目標/結果……

GitHubを使って法務コミュニケーションのスピードを2倍にした話

社員名簿

組織上のチームと GitHub のチームが対応

  • 組織構成
    • infrastructure
    • engineers
    • visit
    • people
    • ……
  • 属性も管理
    • full-time-employee
    • short-term-intern
    • long-term-intern
    • ruby
    • ……

権限管理

  • GitHub Team をベースに認可
    • 例: full-time-employee -> OK
  • HR のフローに乗るだけでいい
    • HR の入退社フローでだいたい OK
  • 権限の外し忘れが無い
    • org から外せば自動的に全権限を revoke できる

特定のチームの人だけ ssh を許可したい

  1. 宣言された GitHub Username の公開鍵でログイン
  2. 特定の GitHub Team 所属かを確かめる
  3. 目的のサーバへの ssh を許可

Team ごとに異なる Kubernetes の操作を許可したい

  1. DaemonSet で各 master に genmon が存在
  2. Webhook Token Authentication で genmon へ
  3. GitHub Team = Group として扱い RBAC

まとめ

  • 社内全員 GitHub に入れちゃおう
  • 組織構造と Team 構造を合わせよう
  • GitHub を認証サービスとして使おう

さいごに

みなさんいかがでしたでしょうか。セッションの冒頭で Wantedly では GitHub を酷使しているというお話がありましたが、お話を聞いてみると本当に全部 GitHub を使っていて、こういう使い方もあるんだなと学びを得ることができました。こちらも10分という短い時間での LT でしたがとても濃い内容で充実した時間でした。