Ansible Tower
Keeperアカウントを操作し、Ansible Towerによる自動化で使用できるAnsibleプラグインのコレクション
最終更新
Keeperアカウントを操作し、Ansible Towerによる自動化で使用できるAnsibleプラグインのコレクション
最終更新
Secrets Managerの設定をAnsible Towerで安全に保存します
Ansible Towerで以下の機能を搭載したSecrets Manager Ansibleプラグインを使用して、Ansibleプロジェクトを管理および実行します。
Ansibleプレイブックで使用するシークレットをKeeperボルトから取得
AnsibleからKeeperボルトのシークレットの値を更新
Keeperボルトからファイルをコピー
Keeper Secrets Manager機能の完全なリストについては、概要をご参照ください。
Keeper Secrets ManagerでAnsible Towerを使用するには、最初にBase64設定を取得して初期化します。Secrets Managerの設定ドキュメントでは、Keeper Secrets Manager CLIまたはCommander CLIを使用して設定を取得する方法について説明します。
Commander CLIを使用して、新しいデバイスを追加すると、ワンタイムアクセストークンを使用せずにBase64設定を生成できます。
Keeper Secrets Manager CLIの場合、ワンタイムアクセストークンが必要です。これは、アプリケーションに新しいデバイスを追加することによって、Webボルトから取得できます。
または、Keeper Secrets Managerコレクションに含まれるkeeper_init_token
ロールを使用します。この方法は、Ansible Towerの設定後に使用できます。このドキュメントの最後に例を示します。
Base64設定は、インベントリ、ホスト、またはテンプレートの変数セクションに追加できます。また、Ansibleシークレットとしてプレイブックのリポジトリに追加することもできます。変数名はkeeper_config
です。
Base64 KSM設定では、ボルトのクレデンシャルを作成する必要があります。Resources (リソース) メニューのCredentials (クレデンシャル) を選択し、Add (追加) をクリックします。
ボルトのクレデンシャルに名前を付け、Credential Type (クレデンシャルのタイプ) のドロップダウンからVault (ボルト) を選択し、secrets.yml
ファイルの暗号化に使用したパスワードをVault Password (ボルトのパスワード) フィールドに入力して、Save (保存) をクリックします。
クレデンシャルは、テンプレートの設定時に使用されます。
Ansible TowerでKeeper Secrets Managerプラグインを使用するには、Keeper Secrets Manager SDKを利用できる実行環境が必要です。このSDKは、Dockerイメージkeeper/keeper-secrets-manager-tower-ee
に含まれています。Ansible Towerのインスタンスで、Administration (管理) メニューのExecution Environment (実行環境) を選択し、Add (追加) をクリックします。
Imageの値は、docker.io/keeper/keeper-secrets-manager-tower-ee:latest
またはdocker.io/keeper/keeper-secrets-manager-tower-ee:<tag>
(特定のタグバージョンがある場合) です。
最新のタグを使用している場合は、Pullの値を「Always pull container before running」 (実行前に常にコンテナをプルする) に設定する必要があります。keeper/keeper-secrets-manager-tower-ee
の特定のタグバージョンにタグを固定する場合は、値を「Only pull the image if not present before running」 (実行前にイメージが存在しない場合のみプルする) に設定します。
プロジェクトでKeeper Secrets Managerプラグインを使用するには、ソースリポジトリにcollections
ディレクトリを作成します(存在しない場合)。次に、requirements.yml
ファイルに以下の値を作成または追加します。
Base64 KSM設定は、インベントリ、ホスト、テンプレートなど、Ansible Tower内の様々な場所に保存できます。設定は、これらの場所に保存されるときに暗号化されます。
このプロジェクトでは、KSM設定は暗号化されたシークレットとしてソースリポジトリに保存されます。リポジトリのルートディレクトリにあるdefaults
というディレクトリにsecrets.yml
というYAMLファイルを追加します。
このファイルにBase64設定を値に持つkeeper_config
というキーを追加します。
次に、ansible-vault
を使用して、secrets.yml
ファイルを暗号化します。
パスワードを記録してください。ボルトのクレデンシャルにTowerで必要になります。
この時点で、secrets.ymlファイルを確認すると、暗号化されているはずです。
ディレクトリ構造は以下のようになるはずです。
Keeperのプレイブックの場合、Keeper Secrets Managerコレクションがプレイブックコレクションに追加されています。最初のタスクは、組み込みアクションinclude_vars
を使用してsecrets.yml
を追加することです。このタスクには、KSM設定がログに記録されないようにする no_log: True
も含まれます。このタスクは、Keeper Secrets Managerコレクションのいずれかのプラグインの前に実行する必要があります。
Ansible Towerは、独自の標準出力コールバックプラグインを使用します。そのため、keeper_redactを使用しても機能しません。ログにシークレットを表示する可能性のあるタスクには、no_log: True
を追加することが重要です。
ソースリポジトリにコレクションを追加すると、新しいプロジェクトを作成できます。
keeper/keeper-secrets-manager-tower-ee
イメージを使用して作成する実行環境を選択してください。
上記の例のソースリポジトリは、適切な詳細情報を含むGitでした。会社によっては、別のソース管理を使用する場合もあります。
保存したら、Ansible Towerインスタンスにプレイブックを同期します。
Ansible Towerのインスタンスで、Resources (リソース) メニューのTemplates (テンプレート) を選択し、Add (追加) をクリックします。
Projects (プロジェクト) で、プレイブックを含む作成したばかりのプロジェクトを選択します。Execution Environment (実行環境) で、Keeper Secrets Manager Tower EE_dockerイメージを含む Execution Environment (実行環境) を選択します。Playbook (プレイブック) で、ソースリポジトリからプレイブックを選択します。
Credentials (クレデンシャル) で、プロジェクトのソースリポジトリにあるsecrets.yml
ファイルの復号化に使用するボルトのクレデンシャルを選択します。インベントリサーバーへの接続に使用するクレデンシャルを選択することもできます。
ページ下部のSave (保存) ボタンをクリックして終了します。
最後にテンプレートを起動してジョブを作成します。
include_vars
タスクは、KSM Base64設定をインポートして復号化します。no_log: True
を指定すると、設定がログに表示されなくなります。指定しない場合は、設定がログに記録され、Ansible Towerにアクセスできるすべてのユーザーが表示できます。
設定が現在、使用可能な変数に入っているため、keeper_copy
アクションによって、Keeperボルトから公開鍵と秘密のSSH鍵を取得して、リモートマシン上の場所にコピーできます。
Ansibleで使用できるすべてのSecrets Manager機能については、Ansibleプラグインのドキュメントをご参照ください。