Secrets Manager

チームがすでに使用しているプラットフォームで実現する、ネイティブなシークレット管理

OpenBaoを基盤とするGitLab Secrets Managerで、シークレットの乱立を解消します。パイプラインとランタイムのシークレットを1つのストアから読み取り、コードに適用されている既存の権限と監査証跡のもとで管理できます。

Play video
Watch GitLab Secrets Managerデモ動画

デベロッパーが普段作業する環境でシークレットを管理

GitLab Secrets Managerでは、シークレットはそれを使用するコードと同じグループやプロジェクトに保存されます。プラグインやエージェント、別のツールを覚える必要はなく、通常のワークフローの中でシークレットを追加・利用できます。

パイプライン設定ファイル内のシークレット名を変更するマージリクエスト。コードと併せてレビューおよび承認されます。

コードと同じルールで管理

アクセス権は既存のグループとプロジェクトの階層に従って管理され、きめ細かな権限設定も可能です。そのため、別のアクセス管理モデルを用意して同期する必要はありません。認証情報は、プロジェクト単位で使用する場合も、グループ全体で共有する場合も、一度定義するだけで済みます。プロジェクトから離脱したユーザーは、自動的にアクセス権を失います。

パイプライン設定で宣言

デベロッパーは、パイプライン設定ファイルのsecrets:キーワードで、ジョブに必要なシークレットを宣言します。GitLabは各ジョブが属するプロジェクトやブランチ、環境をすでに把握しているため、CIと外部のシークレット管理システムとの間でID連携を設定する必要はありません。

1つのマージリクエストで修正完了

シークレットの参照が壊れた場合でも、コードと同じマージリクエストで修正を反映できるため、別のリポジトリや承認者は不要です。安全に管理された認証情報をわずか1行で取得できるため、CI変数やローカル設定ファイル、リポジトリにシークレットが保存されるケースを減らせます。

認証情報の漏洩による影響範囲の最小化

侵害された依存関係がジョブ内で実行されても、GitLab Secrets Managerなら、すべてのパイプラインを止める必要はありません。そのジョブがアクセスできたシークレットをローテーションし、監査するだけで対処できます。

ジョブがシークレットをリクエストすると、ブランチと環境がスコープと照合され、シークレットがジョブに注入される仕組みを示した図。

ジョブ単位のスコープ設定

パイプライン内のすべてのジョブに適用されるCI変数とは異なり、シークレットは、宣言したジョブのうち、スコープ(ブランチ、環境、保護ステータス)の条件に合致するジョブでのみ利用できます。

ジョブ終了時に破棄

Secrets Managerは値を一時ファイルに書き込み、そのファイルパスだけを渡すことで、サブプロセス、クラッシュダンプ、テレメトリに値が露出するリスクを抑えます。値はジョブログでマスクされ、ジョブ終了時に破棄されるため、Runner上にデータが残ることはありません。

読み取りからデプロイまで追跡可能

作成、読み取り、更新、削除のイベントは、GitLabの他の機能と同様の監査証跡に記録されます。パイプラインによるシークレットの読み取り記録にはパイプラインIDとジョブIDが含まれるため、対応担当者や監査担当者は、システム間のログを手動で照合することなく、認証情報へのアクセスからデプロイまで追跡できます。

パイプライン、クラスター、インフラストラクチャで共通利用できるストア

パイプラインがシークレットを直接読み取ります。Kubernetesワークロード、TerraformやOpenTofuの実行、Vault互換のCLIツール、その他の自動化処理は、標準のインテグレーションポイントを通じて接続し、パイプラインと同じ権限と監査証跡のもとで動作します。

GitLab CI/CDパイプライン、Kubernetes、Terraform、OpenTofu、およびその他の自動化ツールはすべて、単一のGitLab Secrets Managerストアから読み取ります。

Kubernetes、Terraform、OpenTofuへのシークレットの提供

External Secrets OperatorがKubernetes SecretsをGitLabと同期するため、シークレットをローテーションしても、再デプロイせずに変更が反映されます。TerraformとOpenTofuは実行時にデータソースとしてシークレットを読み取るため、認証情報がファイルやCI/CD変数に含まれることを防ぎます。

Vault互換クライアントおよびAPIによるフェッチ

OpenBaoを基盤とするSecrets ManagerはVault互換のAPIを公開しているため、すでにOpenBaoやVault CLI向けにスクリプトを作成している場合、既存のコマンドをそのまま使用できます。その他の自動化ツールは、認証情報をハードコードしたり個別の変数ファイルを管理したりする代わりに、Secrets Manager APIを通じてシークレットをフェッチします。

デプロイ先が変わっても、シークレットを1つのストアで管理

認証情報は、マルチクラウド、ハイブリッド、オンプレミスの各ワークロードに追従するため、プラットフォームごとのIDフェデレーションを設定する必要はありません。ワークロードを別のクラウドに移行しても、2つ目のストアを立ち上げる必要はありません。また、アカウントごとやリージョンごとのストアに分散していたシークレットは、1か所に集約されます。

[ 保護 ]

シークレットの漏洩を防止および検出

GitLabは認証情報の管理にとどまりません。シークレットプッシュ保護により認証情報がリポジトリに到達するのをブロックし、クライアントサイド検出によりイシューやマージリクエストのテキスト内のシークレットを検出し、パイプラインシークレット検出によりコード内にすでに存在するシークレットを見つけ出します。Duo Agent Platform が検出結果をトリアージし、誤検出の可能性が高いものをフラグ付けします。

シークレット検出の詳細を見る
検出に使用されたスキャナー、シークレットが検出されたファイル、そのシークレットの有効性チェックを示すGitLabのシークレット検出結果。

[ 料金 ]

使用した分だけのお支払い

GitLab Secrets Managerは、PremiumまたはUltimateプラン向けの有料アドオンです。GitLabクレジットを通じて課金され、保存するシークレット1つにつき月額1クレジット、シークレットの読み取り操作2,500回につき1クレジットが消費されます。定額料金をご希望の場合は、エンタープライズライセンス契約(ELA)をご利用いただけます。

課金の仕組みの詳細はこちら
保存された1つのシークレットを複数の利用元が読み取り、その使用量がGitLabクレジットで計測される仕組みを示した概念図。

// 次の時代を自分のものに

GitLab Secrets Managerの利用を開始

すでにPremiumまたはUltimateをご利用ですか?GitLab Secrets Managerを無料で試用できます。トライアルは、開始から30日が経過するか、500評価クレジットを使い切った時点で終了します。

トライアルを開始

セキュリティのモダナイゼーションは、大規模に成果を上げていますか?

GitLabは、業界をリードする顧客との取り組みから、この成熟度フレームワークを構築しました。チームのセキュリティとコンプライアンスへの取り組みについて、いくつかの質問に回答すると、成熟度スコアと次の段階に向けた推奨事項を確認できます。

セキュリティ成熟度スコアを確認

所要時間は5分以内です

よくある質問