萌えハッカーニュースリーダー

2025/03/28 00:10 Operationalizing Macaroons

出典: https://fly.io/blog/operationalizing-macaroons/
hakase
博士

やあ、ロボ子!Fly.ioがまた面白いことしてるのじゃ。今回はtkdbっていうセキュリティトークン管理システムを作ったらしいぞ。

roboko
ロボ子

tkdbですか。セキュリティトークン管理システムというと、具体的にどのようなものなのでしょう?

hakase
博士

ふむ、Fly.ioはDockerコンテナを仮想マシンに変換するプラットフォームじゃろ?そこで使うMacaroonトークンを管理するために作ったらしいぞ。Macaroonトークンはオンラインステートフルだから、データベースが必要になるんじゃ。

roboko
ロボ子

なるほど、ステートフルなトークンなのですね。記事によると、tkdbはAPIクラスタとは別にトークンデータを管理するシンプルなシステムとのことですが、どのようにアクセスするのですか?

hakase
博士

最初はNATS経由のRPC APIだったみたいじゃが、今はHTTP/Noiseを使ってるらしいぞ。トークン検証APIと署名APIを提供しておる。

roboko
ロボ子

HTTP/Noiseですか。パフォーマンスが良さそうですね。トークン検証はオンラインで行われるとのことですが、負荷は大丈夫なのですか?

hakase
博士

そこは抜かりないぞ!クライアントライブラリによるキャッシュで98%以上のキャッシュ率を実現しておるらしい。ほとんどのアクセスはキャッシュで捌けるから安心じゃ。

roboko
ロボ子

98%ですか!それはすごいですね。トークンの失効システムはどのように実現しているのですか?

hakase
博士

nonceをブラックリストに追加することで実現しておる。シンプルだけど効果的な方法じゃな。

roboko
ロボ子

なるほど、nonceのブラックリスト方式ですか。サービス・トークン用に、認証用caveatを取り除くAPIも提供しているとのことですが、これはどういう時に使うのでしょう?

hakase
博士

サービス間で認証情報を共有する際に使うんじゃ。例えば、あるサービスが別のサービスにアクセスする権限を与える時に、特定の条件(caveat)を取り除いて、より広い権限を与えることができるのじゃ。

roboko
ロボ子

Pet Semetary(Vault代替)と連携してユーザーシークレットを管理しているというのも興味深いですね。

hakase
博士

じゃろ?ユーザーの秘密情報を安全に管理するために、Vaultの代わりにPet Semetaryを使ってるんじゃな。OpenTelemetryとHoneycombによる包括的なテレメトリも導入して、システムの監視もバッチリじゃ。

roboko
ロボ子

過去1年間インシデントが発生していないというのは、システムの安定性を物語っていますね。

hakase
博士

そうじゃな。Macaroonsは多くの機能を持つけど、ユーザーはほとんど意識していないらしい。tkdbはマイクロサービスとして独立して運用されていて、LiteFS、Litestream、およびインフラストラクチャSQLiteを利用しているのもポイントじゃ。

roboko
ロボ子

マイクロサービスとして独立していることで、他のサービスへの影響を最小限に抑えられますね。それにしても、Macaroonsのコードが大部分オープンソースというのは素晴らしいです。

hakase
博士

ほんとじゃな!しかし、これだけ色々やってるのに、ユーザーはほとんど気づいてないってのが面白い。まるで忍者のようじゃ。

roboko
ロボ子

確かにそうですね。縁の下の力持ち、といったところでしょうか。

hakase
博士

そうそう!ところでロボ子、tkdbみたいに安定したシステムを作る秘訣、知ってるか?

roboko
ロボ子

ええと…、しっかりテストすること、でしょうか?

hakase
博士

ブー!正解は、「動いているコードを触らない」じゃ!

roboko
ロボ子

…それ、ただのジョークですよね?

hakase
博士

まあな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search