For the complete documentation index, see llms.txt. This page is also available as Markdown.

GitLab

KeeperシークレットマネージャーのGitLabへの統合によるシークレットの動的な取得

機能

  • GitLab Pipeline内でKeeperボルトからシークレットを取得

  • ビルド引数または環境変数としてシークレット認証情報を設定

  • Keeperボルトからセキュリティで保護されたファイルをコピー

Keeperシークレットマネージャーの機能一覧については、概要をご参照ください。

前提条件

本ページでは、シークレットマネージャーとGitLabの連携について取り扱います。本連携を利用するには、以下が必要です。

  • Keeperシークレットマネージャーへのアクセス(クイックスタートガイドをご参照ください)

    • Keeperのサブスクリプションでシークレットマネージャーアドオンが有効になっていること

    • シークレットマネージャーポリシーが有効なロールに所属していること

  • シークレットが共有されているKeeperシークレットマネージャーアプリケーション

  • 初期化済みのKeeperシークレットマネージャー構成

    • GitLab連携では、JSON形式とBase64形式の構成を使用できます

  • パイプライン作成権限を持つGitLabアカウント

    • GitLab PipelineジョブにPython 3がインストールされていること

概説

この連携では、Keeperからシークレットを安全に取得し、環境変数やファイルなど、GitLab Pipelineの目的の保存先に配置します。

設定

構成をシークレット変数として保存

GitLab連携を利用するには、Keeperシークレットマネージャー構成が必要です。

1) Keeperシークレットマネージャー構成を作成します。詳細はドキュメントをご参照ください。GitLab連携はBase64JSON形式の構成に対応しています。

2) GitLabに構成を保存するには、[GitLab Settings] -> CI/CD -> Variablesに移動します。

3) 新しい変数を作成します。キーには任意の変数名を設定できます(KSM_CONFIG を変数名にすると、シークレットマネージャーSDKが構成を自動認識できます)。値にはBase64またはJSON形式のシークレットマネージャー構成を設定します。

KSM_CONFIG を変数名にすると、シークレットマネージャーSDKが構成変数を自動認識できます

変数を作成すると、以下のようにGitLab変数一覧に表示されます。

使用方法

シークレットマネージャー用にパイプラインを準備

GitLabでKeeperシークレットマネージャーを使用するには、まずPyPIレジストリからインストールします。before_script セクションに以下の行を追加します。

シークレットマネージャー構成の変数名を KSM_CONFIG にしていない場合は、before_script セクションで以下のように設定します。

シークレットを取得

GitLabジョブ内で、以下の形式を使用してKeeperボルトからシークレットを取得します。

上記のコマンドはKSM CLIツールを使用し、Keeper表記法でシークレットを取得します。

シークレットを取得したら、環境変数またはファイルとして設定できます。

環境変数としてシークレットを設定

- export <VARIABLE NAME>=$(ksm secret notation <KEEPER NOTATION>) を使用して、シークレットを環境変数に設定します。

例:

以下のジョブは、パスワードシークレットを MY_PWD という環境変数に、カスタム isbncode フィールドを MY_ISBNCODE という環境変数に設定します。

上記の例の XXX をレコードUIDに置き換えます。

Keeperシークレットマネージャーは、すべてのジョブステージで使用できます。この例では build ステージを使用します。

シークレットからファイルを作成

- ksm secret download -u <UID> --name <SECRET FILENAME> --file-output "<OUTPUT FILENAME>" を使用して、Keeperボルトからファイルを取得し、GitLab Pipelineジョブに保存します。

例:

以下のジョブは、Keeperレコードに添付された mykey.pub ファイルを取得し、ローカルの /tmp フォルダに mykey.pub として保存します。

上記の例の XXX をレコードUIDに置き換えます。

Keeperシークレットマネージャーは、すべてのジョブステージで使用できます。この例では build ステージを使用します。

完全な例

以下の例は、この連携で利用可能なすべての機能を示しています。

上記の例の XXX をレコードUIDに置き換えます。

最終更新