Chef
Chef Infra自動化プラットフォームでKeeperシークレットマネージャーを利用するためのクックブック集

概要
Chef Infraは、インフラをコードに変換する強力な自動化プラットフォームです。クラウド、オンプレミス、またはハイブリッド環境のいずれで運用していても、Chefはネットワーク全体のインフラの構成、デプロイ、および管理を自動化します。
Keeperシークレットマネージャーのクックブックを使用することで、Chef管理ノードをKeeperシークレットマネージャーと統合でき、Chefインフラ内のシークレット管理をより簡単かつ安全に行うことができます。
機能
Chef管理ノードにKeeperシークレットマネージャー用Python SDKをインストールおよび設定
Chef実行時にKeeperボルトからKeeper表記法を使用してシークレットを取得
暗号化データバッグを利用した安全な認証
クロスプラットフォーム対応 (Linux、macOS、Windows)
要件
Keeperシークレットマネージャーへのアクセス (詳細はクイックスタートガイドを参照)
Keeperのサブスクリプションでシークレットマネージャーアドオンが有効になっていること
シークレットマネージャーポリシーが有効なロールに所属していること
シークレットが共有されているKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順はクイックスタートガイドを参照
Keeperシークレットマネージャーが初期化されていること
クックブックはBase64形式の構成をサポートしています。
セットアップ
インストール
Berkshelfを使用する場合
Berksfile に次の行を追加します。
Chef Supermarketを使用する場合
手動インストール
クックブックをダウンロード
cookbooksディレクトリに配置
Chefサーバーにアップロード
認証
このクックブックは暗号化データバッグを使用して安全な認証を行います。この方法により、Keeper構成をChefサーバー上に安全に保存し、ノードから利用できるようにすることができます。
シークレットキーファイルの作成
暗号化データバッグを作成する前に、Chefが機密データの暗号化および復号に使用する共有シークレットファイルを作成する必要があります。
次のコマンドを実行します。
暗号化データバッグの設定
Keeper構成を保存する暗号化データバッグを作成します。
暗号化データバッグはKeeperシークレットマネージャーの構成を環境変数として保存し、Chefノードから安全にアクセスできるようにします。
入力構成ファイル
input.json ファイルは必須で、Keeperボルトから取得するシークレットを定義します。このファイルはKeeper表記法を使用して取得対象のシークレットを指定します。
input.jsonの作成
次の構造を持つ input.json ファイルを作成します。
シークレット表記法の形式
このクックブックは柔軟なシークレットマッピングを可能にするKeeper表記法をサポートしています。詳細はKeeper表記法ドキュメントを参照してください。
表記法フォーマット
表記は "KEEPER_NOTATION > OUTPUT_SPECIFICATION" という形式を取ります。
左側: Keeper表記法 (例:
UID/custom_field/Label1)右側: 出力仕様 (例:
Label2、env:Label2、file:/path/to/file)
出力マッピングオプション
キーの単純マッピング
結果: 出力JSONに { "Label2": "VALUE_HERE" } が追加される
環境変数出力
結果: Chefノード上で DB_PASSWORD 環境変数が設定される
ファイル出力
結果: ファイルが指定されたパスに保存され、出力JSONには{ "ssl_cert.pem": "/opt/ssl/cert.pem" } が追加される
input.jsonの完全な例
レコードUIDの確認方法
レコードUIDは次の方法で確認できます。
Keeperコマンダー:
ls -lコマンドで確認Keeperウェブボルト: レコードをクリックし、URLまたは詳細で確認
Keeperデスクトップアプリ: レコードを右クリックし [レコードUIDをコピー] を選択
使用方法
基本インストール
シークレットの取得
完全な例
リソース
ksm_install
KeeperシークレットマネージャーのPython SDKおよびCLIツールをインストールします。
プロパティ
python_sdk
ブーリアン
true
Python SDKをインストール
cli_tool
ブーリアン
false
CLIツールをインストール
user_install
ブーリアン
false
現在のユーザーのみを対象にインストール
base_dir
文字列
プラットフォーム依存
基本インストールディレクトリ
アクション
:install- Keeperシークレットマネージャーをインストール (デフォルト)
ksm_fetch
input.json 構成ファイルを使用してKeeperボルトからシークレットを取得します。
プロパティ
input_path
文字列
/opt/keeper_secrets_manager/input.json
input.json構成ファイルのパス
timeout
整数
300
スクリプト実行のタイムアウト値
deploy_path
文字列
/opt/keeper_secrets_manager/ksm.py
スクリプトの配置パス
アクション
:run- Keeperボルトからシークレットを取得 (デフォルト)
※ input_path が指定されていない場合、/opt/keeper_secrets_manager/input.json を参照します。
対応プラットフォーム
Linux: Ubuntu 18.04+、CentOS 7+、RHEL 7+、Debian 9+
macOS: 10.14+
Windows: Server 2016+
要件
Chef
Chef Infra Client 16.0+
Chef Workstation 21.0+ (開発用)
依存関係
Python 3.6+ (存在しない場合は自動インストール)
pip (自動インストール)
Keeper SDKをダウンロードするためのインターネット接続
最終更新

