正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabシークレットマネージャー

  • プラン: Ultimate
  • 提供形態: GitLab.com
  • ステータス: 実験的機能

これは実験的機能であり、予告なく変更される場合があります。この機能は、パブリックテストまたは本番環境での使用には対応していません。

シークレットは、機能するためにCI/CDジョブが必要とする機密情報を表します。シークレットは、アクセストークン、データベース認証情報、プライベートキーなどの場合があります。

デフォルトで常にジョブで利用可能なCI/CD変数とは異なり、シークレットはジョブによって明示的にリクエストされる必要があります。

GitLabシークレットマネージャーを使用して、プロジェクトのシークレットと認証情報を安全に保存および管理します。

GitLabシークレットマネージャーを有効にする

前提要件:

  • プロジェクトのオーナーロールが必要です。

GitLabシークレットマネージャーを有効にするには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > 一般を選択します。
  3. 可視性、プロジェクトの機能、権限を展開します。
  4. シークレットマネージャー切替をオンにして、シークレットマネージャーがプロビジョニングされるまで待ちます。

シークレットを定義する

セキュアなCI/CDパイプラインとワークフローに使用できるように、シークレットマネージャーにシークレットを追加できます。

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. セキュリティ > シークレットマネージャーを選択します。
  3. シークレットを追加を選択し、詳細を入力します:
    • 名前: プロジェクト内で一意である必要があります。
    • : 制限はありません。
    • 説明: 最大200文字です。
    • 環境: 以下を指定できます:
    • ブランチ: 以下を指定できます:
      • 特定のブランチ
      • ワイルドカードブランチ(*文字を含める必要があります)
    • 有効期限: シークレットは、有効期限を過ぎると使用できなくなります。
    • ローテーションのリマインダー: オプション。設定された日数後にシークレットをローテーションするようにメールのリマインダーを送信します。最短7日間。

シークレットを作成すると、パイプラインの設定またはジョブスクリプトで使用できます。

ジョブスクリプトでシークレットを使用する

シークレットマネージャーで定義されたシークレットにアクセスするには、secretsおよびgitlab_secrets_managerキーワードを使用します:

job:
  secrets:
    TEST_SECRET:
      gitlab_secrets_manager:
        name: foo
  script:
   - cat $TEST_SECRET