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

よくある質問