GitLab Secrets Manager ADR 007: シークレット管理サービスとして OpenBao を使用する

コンテキスト

GitLab Secrets Manager でシークレットを安全に保存・管理するために、必要な機能を提供できる堅牢なシステムに依存したいと考えています。

決定

シークレット管理サービスとして、HashiCorp Vault のフォークである OpenBao を使用します。このコンポーネントがシークレットを安全に保存・管理するためのすべての仕組みを提供します。ユーザーが開始するシークレットの変更操作については、GitLab Rails が抽象化レイヤーとして機能し、すべてのタスクをこのコンポーネントに委譲します。

OpenBao を使用することにはいくつかの利点があります:

  1. 独自のセキュアなシークレットストレージを実装する必要がありません。
  2. ハードウェアセキュリティモジュール(HSM)をサポートします。
  3. OpenBao がオープンソース版 Vault との後方互換性を維持しているため、HashiCorp Vault 向けに既存の統合機能を活用できます。

結果

シークレットへの中断なきアクセスを提供するために、OpenBao vault が常にアンシールされた状態である必要があります。

GitLab Rails を実行しているコンテナへのアクセスが攻撃者に奪われた場合にシークレットが取得されないよう、適切なポリシーとアクセス権が設定されていることを確認する必要があります。

また、シークレットの暗号化・復号化・保存がすべて OpenBao サーバーで行われるため、セキュリティを強化し、vault インスタンスへの侵害を防ぐことを確実にしなければなりません。