kubell Creator's Note

株式会社kubellのエンジニアのブログです。

ビジネスチャット「Chatwork」のエンジニアのブログです。

読者になる

Hashi Corp Vaultを使ったDBユーザー管理

はじめに

みなさんは、DBユーザーの管理をどのように行っているでしょうか。
Create UserGrantなどの生のSQL文をそのまま管理していたり、何かしらのツールを使って管理しているのではないでしょうか。
弊社では今まではgratanというツールを使って管理してましたが、昨年にHashiCorp Vaultを使った管理に移行しました。

背景と課題

チャットサービスならではの要件

「Chatwork」ではチャットという特性上、秘匿情報を持ったDBテーブルが多く存在します。
そのため、各エンジニアは秘匿情報にアクセスできないようにカラムレベルで権限制御を行っています。
また、監査という観点からもAuditログをしっかりと記録する必要があるため、エンジニア単位でDBユーザーを作成する必要があります。
(ここまで細かくユーザーや権限を管理しているところは意外と珍しいのではないでしょうか)

既存の管理方法と課題

エンジニア単位での管理は、エンジニアの増加に伴い管理コストも上がっていくため、 先程も紹介したgratanというツールを使ってIaC化して管理をしていました。
ただし、ユーザー作成には強い権限が必要な関係から、CI上での実行などが実現できておらず、トイルとなっていました。
また、gratan自体にもいくつか課題がありました。

gratanの課題

  1. ユーザー作成(権限付与)時の問題点
    • 毎回ユーザー毎にFLUSH PRIVILEGESを実行していた
      • ユーザー数が多いとDBへの負荷が上昇してしまう
      • 本来はGrant文でのユーザー作成、権限付与の場合にはFLUSH PRIVILEGESは不要
    • 回避策として、dry-runで生成されたSQLからFLUSH PRIVILEGESを除いて実行する運用になっていた
  2. MySQL8.0以降への対応
    • MySQL8.0以降ではCreate Userでのユーザー作成が必須
    • gratanはアーカイブ化されており更新されていない
      • Aurora MySQL V3(MySQL8.0互換)への移行時に利用不可

これらの理由から、gratanをやめて別のツールや仕組みに移行することを決断しました。

続きを読む

kubellはPHP Conference Japan 2025にプラチナスポンサー&ブース出展&セッション登壇します!

みなさん、こんにちは! 2020年からkubellでPHPエンジニアをしているやまごし(@ymgn_ll)です。
気がついたら6月、2025年も折り返しですね。あまりに早すぎる。

「Chatwork」のいち開発者のニュースとしましては、私がサーバーサイド側を担当した予約送信機能が最近ついにモバイルアプリにも対応し、皆さんに喜んでいただけて非常に嬉しく思ってます!

まだ使ったことのない皆さんも「退勤直前でチャット送りにくいなぁ」みたいな時に、ぜひ「Chatwork」で予約送信を使って見てください!

話変わりまして、

そんな来週末には、日本のPHPエンジニアの一大イベント「PHP Conference Japan 2025」が開催されます🎉🎉

kubellは プラチナスポンサー として参加させていただいており、ブース出展&セッション登壇予定です。

PHP Conference Japan 2025 詳細

続きを読む

『関数型まつり2025』にGoldスポンサーとしてブース出展します!

こんにちは! 株式会社kubell(旧Chatwork株式会社)の小林です。
普段はバックエンドエンジニアとして、ビジネスチャット『Chatwork』の裏側を支えるお仕事をしています。

kubellは、来たる6月14日・15日に開催される関数型プログラミングのカンファレンス『関数型まつり2025』にGoldスポンサーとしてブースを出展します🎉

『関数型まつり2025』概要

日程: [Day1] 6月14日(土)11:00〜19:00、[Day2] 6月15日(日)10:00〜19:00
会場: 中野セントラルパーク カンファレンス
公式HP: https://2025.fp-matsuri.org
公式X: https://x.com/fp_matsuri

続きを読む

認証領域は、サービスを使っていただくという根本のCVRに直接影響を与える(「#Offers_DeepDive」にオンライン登壇、「Chatwork」の認証基盤についてお話ししました)

認証グループのエンジニアをやっている田中浩一(@Tanaka9230)と申します。

去る4月23日に、株式会社overflow様主催の、Offers_DeepDiveLayerX/kubellの実例から学ぶ プロダクトが大きくなっても壊れない認証設計とは」に、オンライン登壇させていただきました。

offers-jp.connpass.com

認証グループは、「Chatwork」の認証系+一部セキュリティ系、およびアカウント管理系を担当領域としたフィーチャー・チームです。認証系の中核には「Auth0」というIDaaSを導入していて、その運用も担っています。

登壇では、認証グループが行なってきたこれまでの成果を振り返りつつ、下記のようなお話をさせていただきました。

  • IDaaSを導入することとなった経緯
  • 元々モノリスだった「Chatwork」から、認証機能部位のIDaaSへの移行をどのように進めたか
  • 認証基盤側の責務と、「Chatwork」側の責務とを、どういう考え方で切り分けたか

イベントにはもうひと方、「バクラク」を展開する、株式会社LayerX様のバクラク事業部Platform Engineering部IDチームより、convto氏(@convto)が登壇されました。コンパウンド戦略のもと、当初から複数プロダクト展開してきたLayerXさんのケースと、「Chatwork」からモノリス解体して認証基盤を確立して、複数プロダクト展開に至った弊社のケースとで、同じ様な要求に晒されつつ、異なる解決アプローチを取るに至っている対比が面白い内容となりました。

こちらから、Offersに会員登録いただければ、アーカイブ動画が視聴出来るとのことですので、よろしければ見てみてください。

  ◇

本記事では、当日お話ししきれなかったかなー、という点をいくつか補足いたします。技術的に細かいことも言及します。

続きを読む

プロダクト組織の生産性向上に向けた取り組み『Product Unit Day』を実施しました

こんにちは!!コミュニケーションプラットフォームディビジョンでiOSエンジニアをしている中山 龍(@ryu_develop)です!
僕は4月から社会人3年目になりました🎉 この2年を振り返ると運動習慣はないまま食べる量だけは維持し続けた2年間でした。今年こそは運動習慣をつけられるよう、フィットネスジムに入会して日々運動をしています💪

 

さて、コミュニケーションプラットフォームディビジョン プロダクトユニットでは、組織全体の生産性向上を目的として、月次開催のオフラインイベント『Product Unit Day』を立ち上げ、4月に第1回目を開催しました!
この記事では、『Product Unit Day』の取り組みで解決したい課題・目指したい姿や実際に開催するまでの流れ、開催してみて感じたことなどをお伝えできればと思います!

続きを読む

PHPエンジニア実態調査を行いました!

こんにちは!料金プラングループでPHPエンジニアをしているヤシロです。

弊社は先日開催されたPHPerKaigi 2025にブース出展してきました。 この記事ではブース出展時に実施したエンジニア実態調査アンケートの集計結果を大公開します。

当日、アンケートにご回答いただいた皆様、ご協力いただき本当にありがとうございました!!

ブース出展の様子は以下の記事でご紹介しているので、こちらも合わせてご覧くださいー

creators-note.chatwork.com

続きを読む