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

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

認証情報タイプに名前を付け、[Input configuration] (入力構成) を次のように設定します。
---
fields:
- id: keeper_config
type: string
label: Keeper Config (Base64)
secret: true
- id: ksm_profile
type: string
label: KSM Profile Name
help_text: Optional. Defaults to 'default'
required:
- keeper_config次に [Injector configuration] (インジェクター構成) を次のように設定します。
---
extra_vars:
keeper_config: "{{ keeper_config }}"
keeper_profile: "{{ ksm_profile | default('default') }}"[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 Tower/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] (プル) の値は、最新のタグを使用している場合、[Always pull container before running] (実行前に常にコンテナをプル) に設定する必要があります。keeper/keeper-secrets-manager-tower-ee の特定のタグバージョンを指定している場合は、[Only pull the image if not present before running] (実行前に存在しない場合のみイメージをプル) に設定してください。
プロジェクト
プレイブックのリポジトリ
Ansible GalaxyのKeeperシークレットマネージャーコレクションを使用
プロジェクトでKeeperシークレットマネージャープラグインを使用するには、ソースリポジトリ内に collections ディレクトリを作成します (まだ存在しない場合)。その後、requirements.yml ファイルを作成するか、既存のファイルに次の値を追加します。
---
collections:
- keepersecurity.keeper_secrets_managerプレイブック
ディレクトリ構造は以下のようになるはずです。
$ tree
.
├── collections
│ └── requirements.yml
├── playbook_1.yml
└── playbook_2.yml
---
- name:Playbook One
hosts: all
collections:
- keepersecurity.keeper_secrets_manager
tasks:
- name:"Make User SSH Directory, if does not exists"
file:
path: "/home/user/.ssh"
state: directory
recurse: yes
- name:"Copy SSH Keys"
keeper_copy:
notation: "{{ your_record_uid }}/field/keyPair[{{ item.notation_key }}]"
dest: "/home/user/.ssh/{{ item.filename }}"
mode:"0600"
loop:
- { notation_key: "privateKey", filename: "id_rsa" }
- { notation_key: "publicKey", filename: "id_rsa.pub" }プロジェクト
ソースリポジトリにコレクションを追加すると、新しい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キーを取得し、リモートマシン上の指定された場所にコピーできます。
最終更新

