Secrets Manager

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

OpenBao上に構築されたGitLab Secrets Managerで、シークレットの乱立に終止符を。パイプラインとランタイムのシークレットを1つのストアから読み取り、コードをすでに保護している権限と監査証跡で統制します。

Play video
Watch GitLab Secrets Managerのデモ動画

デベロッパーが普段作業している場所でシークレットを管理

GitLab Secrets Managerでは、シークレットはそれを使用するコードと同じグループとプロジェクトに保存されます。そのため、シークレットのリクエストは通常のワークフローの中で完結し、プラグインやエージェント、新たに習得すべき別のツールは必要ありません。

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

コードと同じように統制

アクセスは既存のグループとプロジェクトの階層に従い、きめ細かな権限でさらに細かく制御できます。同期し続けなければならない2つ目のアクセスモデルはありません。認証情報はプロジェクトレベルで一度定義することも、グループ全体で共有することもできます。プロジェクトから外れたメンバーは、自動的にアクセス権を失います。

パイプライン設定で宣言

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

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

シークレットの参照が壊れても、修正はコードと同じマージリクエストでリリースでき、別のリポジトリや承認者は必要ありません。安全な認証情報をわずか1行で利用できるため、CI変数、ローカルの設定ファイル、リポジトリに紛れ込むシークレットが減ります。

漏洩した認証情報の影響範囲を限定

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

シークレットをリクエストするジョブ、ブランチと環境に基づくスコープの照合、ジョブへのシークレットの注入を示す図。

ジョブ単位でスコープ

パイプライン内のすべてのジョブに届くCI変数とは異なり、シークレットが届くのは、それを宣言し、かつスコープの条件(ブランチ、環境、保護ステータス)を満たすジョブだけです。

ジョブ終了時に破棄

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

読み取りからデプロイまでトレース

作成・読み取り・更新・削除のイベントは、GitLabの他のイベントと同じ監査証跡に記録されます。パイプラインからの読み取りにはパイプラインIDとジョブIDが含まれるため、インシデント対応者や監査担当者は、複数システムのログを手作業で突き合わせることなく、認証情報をアクセスからデプロイまでたどれます。

パイプライン、クラスター、インフラストラクチャを1つのストアで

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

GitLab CI/CDパイプライン、Kubernetes、Terraform、OpenTofu、その他の自動化処理が、すべて1つの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は、業界をリードするお客様との取り組みをもとに、この成熟度フレームワークを作成しました。チームのセキュリティとコンプライアンスへの取り組みについていくつかの質問に答えるだけで、成熟度スコアと次のステージに向けた推奨事項をご確認いただけます。

よくある質問