Automation Controller
Keeperアカウントを操作し、Automation Controller (旧Ansible Tower) による自動化で使用できるAnsibleプラグインのコレクション

機能
シークレットマネージャー構成をAutomation Controllerで安全に保存します
Automation Controllerで以下の機能を搭載したシークレットマネージャーAnsibleプラグインを使用して、Ansibleプロジェクトを管理および実行します。
Ansibleプレイブックで使用するシークレットをKeeperボルトから取得
AnsibleからKeeperボルトのシークレットの値を更新
レコードのメモフィールドを更新
新規レコードを作成
Keeperボルトからファイルをコピー
Keeperシークレットマネージャー機能の完全なリストについては、概要をご参照ください。
KSMの設定
Automation ControllerとKeeperシークレットマネージャーを使用するには、最初にBase64形式の構成を取得して初期化します。シークレットマネージャー構成ドキュメントでは、KeeperシークレットマネージャーCLIまたはコマンダーCLIを使って構成を取得する方法が説明されています。
コマンダーCLIを使用して、新しいデバイスを追加すると、ワンタイムアクセストークンを使用せずにBase64設定を生成できます。
KeeperシークレットマネージャーCLIの場合、ワンタイムアクセストークンが必要です。これは、アプリケーションに新しいデバイスを追加することによって、Webボルトから取得できます。
別の方法として、Keeperシークレットマネージャーコレクションに含まれる keeper_init_token ロールを使用する方法があります。Automation Controllerのセットアップ後に利用できます。サンプルは本ページの最後に記載されています。
Base64形式の構成は、inventories、hosts、またはtemplatesの変数セクションに追加できます。また、playbookリポジトリにAnsibleシークレットとして追加することも可能です。変数名は keeper_config です。
認証情報タイプと認証情報の作成
Keeperシークレットマネージャーのカスタム認証情報タイプを作成するには、管理メニューの [Credential Types] (認証情報タイプ) に移動し、[Add] (追加) をクリックします。

認証情報タイプに名前を付け、[Input configuration] (入力構成) を以下のように設定します。
次に [Injector configuration] (インジェクター構成) を以下のように設定します。
[Save] (保存) をクリックします。
[Resources] (リソース) セクションの [Credentials] (認証情報) に移動し、[Add] (追加) をクリックします。

認証情報に [Name] (名前) を設定し、先ほど作成した [Credential Type] (認証情報タイプ) を選択し、[Keeper Config] (Keeper構成) 入力欄にBase64トークンを追加します。[Save] (保存) をクリックします。
この認証情報は、[Template] (テンプレート) をセットアップするときに使用されます。
実行環境
Automation ControllerでKeeperシークレットマネージャープラグインを使用するには、KeeperシークレットマネージャーSDKを利用できる実行環境が必要となります。このSDKは、Dockerイメージ keeper/keeper-secrets-manager-tower-ee に含まれています。Ansible Automation Controllerのインスタンスで、管理メニューの [Execution Environment] (実行環境) を選択し、[Add] (追加) をクリックします。

[Image] の値は、docker.io/keeper/keeper-secrets-manager-tower-ee:latest または docker.io/keeper/keeper-secrets-manager-tower-ee:<tag> (特定のタグバージョンがある場合) となります。
[Pull] (プル) の値は、latestタグを使用している場合、[Always pull container before running] (実行前に常にコンテナをプル) に設定する必要があります。keeper/keeper-secrets-manager-tower-ee の特定のタグバージョンを指定している場合は、[Only pull the image if not present before running] (実行前に存在しない場合のみイメージをプル) に設定してください。
詳しくは、イメージのDockerHubページをご覧ください。
バージョン1.4.0以降では、Execution Environmentイメージに、Ansible Automation Platformで必要となる以下のシステムパッケージが含まれています。
openssh-clients(コンテナ起動時にAAPで必要なssh-agentを利用できます)sshpass(パスワードベースのSSH接続に必要)rsync(ansible.builtin.synchronizeモジュールで必要)git(ansible.builtin.gitモジュールで必要)
1.4.0未満のイメージタグに固定していると、[dumb-init] ssh agent: No such file or directory が表示されることがあります。その場合は1.4.0以降のイメージタグに更新してください。
プロジェクト
プレイブックのリポジトリ
Ansible GalaxyのKeeperシークレットマネージャーコレクションを使用
プロジェクトでKeeperシークレットマネージャープラグインを使用するには、ソースリポジトリ内に collections ディレクトリを作成します (まだ存在しない場合)。その後、requirements.yml ファイルを作成するか、既存のファイルに以下の値を追加します。
プレイブック
ディレクトリ構造は以下のようになるはずです。
Automation Controllerは、独自の標準出力コールバックプラグインを使用するため、keeper_redactは動作しません。ログにシークレットが出力されうるタスクには、no_log: True を指定してください。
プロジェクト
ソースリポジトリにコレクションを追加すると、新しいProject (プロジェクト) を作成できます。

keeper/keeper-secrets-manager-tower-ee を使用して作成した実行環境を選択してください。
上記の例のソースリポジトリは、適切な詳細情報を含むGitでした。会社によっては、別のソース管理を使用している場合があります。
保存後、作成したプロジェクトが同期します。

テンプレート
Ansible Automation Controllerのインスタンスで、[Resources] (リソース) メニューの [Templates] (テンプレート) を選択し、[Add] (追加) をクリックします。

[Projects] (プロジェクト) では、先ほど作成したプレイブックを含むプロジェクトを選択します。
[Execution Environment] (実行環境) では、Keeper Secrets Manager Tower EE のDockerイメージを含む実行環境を選択します。
[Playbook] (プレイブック) では、ソースリポジトリからプレイブックを選択します。
[Credentials] (認証情報) では、作成したKeeperシークレットマネージャーの認証情報を選択します。また、インベントリサーバーへの接続に使用する認証情報を選択することもできます。
最後に、ページ下部の [Save] (保存) ボタンをクリックして完了します。
テンプレートの起動
最後にテンプレートを起動してジョブを作成します。

構成が利用可能な変数に追加されると、keeper_copy アクションはKeeperボルトから公開鍵および秘密鍵のSSHキーを取得し、リモートマシン上の指定された場所にコピーできます。
Ansibleで使用できるすべてのシークレットマネージャー機能については、Ansibleプラグインのドキュメントをご参照ください。
最終更新

