Teller
TellerとのKeeperシークレットマネージャーを統合して動的なシークレット取得

特徴
Teller環境内でKeeperボルトからシークレットを取得する
Teller内でシークレット資格情報を環境変数として設定する
要件
本ページでは、シークレットマネージャーとTellerの統合について取り扱います。この統合を利用するには、以下が必要となります。
Keeperシークレットマネージャーへのアクセス (詳細についてはクイックスタートガイドのページをご参照ください)
Keeperアカウントでシークレットマネージャーのアドオンが有効である
シークレットマネージャー強制適用ポリシーが有効になっているロールのメンバーシップ
シークレットが共有されたKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください。
初期化されたKeeperシークレットマネージャー構成
この統合ではBase64形式の設定を使用します
セットアップ
シークレットマネージャーの構成を取得
Keeperコマンダーを使用して、アプリケーションに新しいクライアントを追加し、構成をBase64文字列に初期化します。この文字列は、「Initialized Config:」ラベルの後に表示される長いテキストハッシュとなります。
My Vault> sm client add --app MyApp --config-init b64
Successfully generated Client Device
====================================
Initialized Config: eyJob3N0bmFtZSI6ICJr....OUk1ZTV1V2toRucXRsaWxqUT0ifQ==
IP Lock: Enabled
Token Expires On: 2021-10-19 15:31:31
App Access Expires on: Never
その値を、 KSM_CONFIGという名前の環境変数に割り当てる必要があります。
Teller構成の作成
TellerがKeeperボルトから変数を取得し、現在の作業セッションに入力することで、安全かつ生産的に作業できるようになります。
Tellerにはtellerfileと呼ばれる構成ファイルが必要となります。これは、リポジトリ内にある.teller.yml
ファイル、またはteller -c your-conf.yml
を使用する場合のファイルです。 新たに作成する場合はteller new
を実行してウィザードに従い、希望するプロバイダを選択すると.teller.yml
が生成されます。
あるいは、以下の最小限のテンプレートを使用することもできます。
project: project_name
opts:
stage: development
providers:
# 必要となる構成: KSM_CONFIG=base64_config
# またはファイルパス: KSM_CONFIG_FILE=ksm_config.json
keeper_secretsmanager:
# 1件の記録から複数のKey-valueの対を取得
# 空白でないフィールドは全てそのラベルにマッピング
# 空白の場合はフィールドタイプにマッピングされ、重複するものには数字 (1,2,...N) の接尾辞がつきます。
env_sync:
path: [recordUID]
# Keeper表記法を使用して個別のフィールド値を選択
# https://docs.keeper.io/secrets-manager/secrets-manage
env:
USER:
path: [recordUID]/field/login
PSWD:
path: [recordUID]/field/password
コマンドラインから実行
現在のディレクトリ内の.teller.yml
ファイル、またはteller -c your-conf.yml
を使用する際のファイルを使用し、以下のコマンドでプロセスを実行できます。
$ teller run node src/server.js
Service is up.
Loaded configuration: Mailgun, SMTP
Port: 5050
GitHubアクションの使用
Tellerの手順を追加します。
# set up teller step
- name: Setup Teller
uses: spectralops/setup-teller@v2
- name: Run a Teller task (show, scan, run, etc.)
run: teller run [args]
以下の例では、デフォルトの構成ファイルの.teller.yml
を使用していますが、このファイルは、run
コマンドにおいてteller -c your-conf.yml
で指定するカスタムファイルに置き換えることができます。
name: run with teller
on:
push:
branches:
- master
- main
pull_request:
jobs:
build:
name: Build your code
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@master
# Tellerをセットアップ
- name: Setup Teller
uses: spectralops/setup-teller@v2
- name: Run a Teller task (show, scan, run, etc.)
run: teller run npm run build
最終更新