GitLab

Keeper Secrets ManagerのGitLabへの統合によるシークレットの動的な取得

機能

  • GitLabパイプライン内にKeeperボルトからシークレットを取り込みます

  • ビルドの引数または環境変数としてシークレットのクレデンシャルを設定します

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

Keeper Secrets Manager機能の完全なリストについては、概要をご参照ください。

前提条件

このページでは、Secrets ManagerとGitLabとの連携について説明します。 この連携を利用するための必要条件は以下のとおりです。

  • Keeper Secrets Managerへのアクセス (詳細については、クイックスタートガイドをご参照ください)

    • KeeperアカウントのSecrets Managerアドオンの有効化

    • Secrets Manager強制ポリシーが有効化されたロールを割り当てられたメンバーシップ

  • シークレットを共有するKeeper Secrets Managerアプリケーション

  • Keeper Secrets Manager設定の初期化

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

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

    • GitLabパイプラインジョブにインストールされたPython3

概説

このアクションによって、Keeperからシークレットを安全に取得し、環境変数やファイルなど、GitLabパイプラインの適切な場所に格納します。

設定

設定をシークレット変数として保存

GitLab連携を利用するには、Keeper Secrets Managerの設定が必要です。

1) Keeper Secrets Managerの設定を作成します。 詳細は、ドキュメントをご参照ください。GitLab連携はBase64JSON形式の設定をサポートしています。

2) GitLabに設定を保存するには、GitLab設定 (GitLab Settings) -> CI/CD -> 変数 (Variables) に移動します。

3) 新しい変数を作成します。キーには、変数の任意の名前を設定できます (KSM_CONFIGを使用して、SDKに設定を自動的に認識させます)。Base64またはJSON形式のSecrets Managerの設定として値を指定します。

KSM_CONFIGを変数名として使用して、Secrets Manager SDKが設定の変数を自動的に認識するようにします

変数を作成すると、以下に示すようにGitLab変数に表示されるはずです。

Keeper Secrets ManagerとGitLabの連携設定が完了しました

使用方法

Secrets Managerのパイプラインを準備

GitLabでKeeper Secrets Managerを使用するには、まずPyPiレジストリからインストールする必要があります。これは、before_script欄に以下の行を追加することで実現できます。

before_script:
  - python3 -m pip install keeper-secrets-manager-cli

Secrets Managerの設定で変数名をKSM_CONFIGに設定していない場合は、before_script欄で設定する必要があります

  - export KSM_CONFIG=$<SECRETS MANAGER CONFIG VARIABLE>

シークレットを取得

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

$(ksm secret notation <KEEPER NOTATION>)

これはKSM CLIツールを利用し、Keeper表記法を使用してシークレットを取得します。

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

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

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

例:

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

job1:
  stage: build
  script:
    - export MY_PWD=$(ksm secret notation keeper://XXX/field/password)
    - export MY_ISBNCODE=$(ksm secret notation keeper://XXX/custom_field/isbncode)

上記の例のXXXはUID記録に置き換えます。

Keeper Secrets Managerは、すべてのジョブステージで使用できます。この例では、buildステージを使用します。

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

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

例:

以下のジョブは、Keeperの記録に添付された「mykey.pub」という名前のファイルを取得し、その内容をローカルの「tmp」フォルダにある「mykey.pub」という名前のファイルに保存します

job1:
  stage: build
  script:
   - ksm secret download -u XXX --name "mykey.pub" --file-output "/tmp/mykey.pub"

上記の例のXXXはUID記録に置き換えます。

Keeper Secrets Managerは、すべてのジョブステージで使用できます。この例では、buildステージを使用します。

完全な例

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

image: python:latest

before_script:
  - python3 -m pip install keeper-secrets-manager-cli

job1:
  stage: build
  script:
    - export MY_PWD=$(ksm secret notation keeper://XXX/field/password)
    - export MY_ISBNCODE=$(ksm secret notation keeper://XXX/custom_field/isbncode)
    - ksm secret download -u XXX--name "mykey.pub" --file-output "/tmp/mykey.pub"
    - file /tmp/mykey.pub

上記の例のXXXは、UID記録に置き換えます。

最終更新