GitLab Secrets Manager ADR 005: OpenBao におけるシークレットの非階層的キー構造
コンテキスト
GitLab では、プロジェクトとその親ネームスペースに対して階層的な構造があり、パスの特定の部分で同じ名前が使用される場合があります。OpenBao にシークレットを保存する際、階層全体および全顧客間でシークレットパスの衝突が発生しないようにする必要があります。
決定
シークレットは GitLab UI 上では階層的な形式で定義されますが、シークレットキーのパスはフラットな形式で構造化されます。
以下に、ネストされたネームスペースを持つプロジェクトのパス例を示します:
gitlab-org/ci-cd/verify/test-project- トップレベルグループ
gitlab-orgのシークレットはkv-v2/data/namespaces/ci/<gitlab-org の ID>に保存されます - サブグループ
verifyのシークレットはkv-v2/data/namespaces/ci/<verify の ID>に保存されます - プロジェクト
test-projectのシークレットはkv-v2/data/projects/ci/<test-project の ID>に保存されます - 異なる種類のシークレットをグループ化するために
ci/プレフィックスを使用していることに注意してください。
- トップレベルグループ
