Ansibleプラグイン
Keeperアカウントを操作し、自動化で使用できるAnsibleプラグインのコレクション。
最終更新
Keeperアカウントを操作し、自動化で使用できるAnsibleプラグインのコレクション。
最終更新
Ansibleプレイブックで使用するシークレットをKeeperボルトから取得します
AnsibleからKeeperボルトのシークレットの値を更新します
Ansibleからレコードを作成します
Keeperボルトからファイルをコピーします
Keeperシークレットマネージャー機能の完全なリストについては、概要をご参照ください。
このページでは、シークレットマネージャーとAnsibleとの連携について説明します。 この連携を利用するための必要条件は以下のとおりです。
Keeperシークレットマネージャーへのアクセス (詳細については、クイックスタートガイドをご参照ください)
Keeperアカウントのシークレットマネージャーアドオンの有効化
シークレットマネージャー強制ポリシーが有効化されたロールを割り当てられたメンバーシップ
シークレットを共有するKeeperシークレットマネージャー
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
Keeperシークレットマネージャー設定の初期化
Ansible連携では、JSON形式の設定を利用できます。
Ansibleの柔軟性により、プラグインをインストールする場所は、Ansibleのインストールプログラムとプレイブックの場所によって異なります。
このコレクションはAnsible Galaxyのサイトで入手できます。次のコマンドラインを使用してこのコレクションをインストールできます。
Ansible Galaxyのコレクションでは、長いプラグイン名が使用されています。名前は、コレクション名とプラグイン名の組み合わせです。たとえば、Ansible Galaxyを使用する場合のkeeper_copy
プラグイン名は、keeper_security.keeper_secrets_manager.keeper_copy
_です。_短いプラグイン名を使用したい場合は、プレイブックのコレクション
ブロックにkeepersecurity.keeper_secrets_manager
を追加します。
Ansible Galaxyからのインストールでは、Ansibleがすでにインストール済みであることを前提としています。Ansible Galaxyでは依存関係をインストールできません。以下の依存関係は、Ansibleで使用するpythonライブラリまたはvirtualenvにpipを使用して手動でインストールする必要があります。
importlib_metadata
keeper-secrets-manager-core>=16.2.2
keeper-secrets-manager-helper>=1.0.4
Keeper用のAnsibleモジュールは、以下のコマンドでインストールします。Ansibleプレイブックの設定で必要になるため、モジュールのインストール場所をメモしておきます。
GitHubリポジトリでKeeperシークレットマネージャーのAnsibleプラグインのソースコードを検索します。
Keeper Ansibleプラグインは、ご利用のPythonのバージョンのsite-packagesディレクトリまたは現在の仮想環境にインストールされます。以下のコマンドを使用して、プラグインの場所を見つけられます。
これらのパスは、_ansible.cfg_で使用できます。
先へ進む前に、前述の要件と以下が満たされていることを確かにします。
KSMアプリケーションとワンタイムアクセストークン
Keeper Ansibleモジュールがインストールされていること
KeeperシークレットマネージャーのAnsibleプラグインを使用するには、Keeper設定ファイルが必要となります。設定ファイルを作成後、設定値をAnsible変数ファイルに配置します。これらの変数ファイルは、Ansible vaultで暗号化できます。
Keeper Ansibleモジュールとワンタイムアクセストークンを使用して設定ファイルを生成します。
これにより、現在のディレクトリにKeeper JSON設定ファイルが生成されます。
PythonモジュールのbinパスがPATH環境変数に追加されていない場合は、以下のコマンドを使用して設定を作成できます。
JSON設定ファイルのデフォルトの名前はclient-config.jsonとなります。ファイルの内容は以下のようになります。
この設定ファイルを使用すると、Ansibleプレイブックで認証を行い、ボルトから指定したシークレットを取得できます。
Keeperシークレットマネージャープラグインは、複数の設定形式を使用できます。たとえば、Base64でエンコードされた設定を使用できます。
Ansibleは、client-config.json設定ファイルをそのまま使用できます。keeper_config_file変数キーを使用して、Ansible変数で指定できます。
もう1つの解決策は、client-config.jsonファイルの値をAnsible変数ファイルに格納することです。たとえば、値は_group_vars、host_vars、またはタスクファイル_に格納できます。
セキュリティのため、_group_vars_ファイルまたは_host_vars_ファイルは、ansible-vaultを使用して暗号化できます。
Keeperプラグインの有効なAnsible変数のリストを以下に示します。
Ansible変数 | JSONキー | 説明 |
---|---|---|
keeper_config | -- | Base64でエンコードされた設定文字列。 |
keeper_config_file | -- | JSON設定ファイルの代替パスと名前(カレントディレクトリではない場合、または_client-config.json_とは異なる名前の場合)。 |
keeper_token | clientKey | クライアントキーとも呼ばれるワンタイムアクセストークン。設定の初期化にのみ使用されます。 |
keeper_client_id | clientId | ワンタイムアクセストークンが使用された後に、Secrets Managerが発行するクライアントID。必須。 |
keeper_app_key | appKey | ワンタイムアクセストークンが使用された後に、シークレット管理サービスが発行するアプリキー。必須。 |
keeper_private_key | privateKey | ワンタイムアクセストークンが使用された後に、シークレット管理サービスが発行する公開鍵。必須。 |
keeper_app_owner_public_key | appOwnerPublicKey | レコードの作成に使用される公開鍵。 |
keeper_server_public_key_id | serverPublicKeyId | サーバーに接続するときに使用する公開鍵を選択します。サーバーが別の公開鍵を必要とする場合、SDKは切替処理を行います。必須ではありませんが、ウェブサービスの呼び出し回数が減少します。 |
keeper_hostname | hostname | シークレットマネージャーバックエンドのホスト名。デフォルトはUSです。 ご利用のKeeperデータセンターの場所に応じて、「US」、「EU」、「AU」、「US_GOV」の値をサポートします。必須。 |
keeper_log_level | -- | SDKのログレベルを設定します。指定できるレベルは、DEBUG、INFO、WARNING、ERROR、CRITICALです。デフォルトはERRORです。 |
keeper_use_cache | -- | ボルトのキャッシュを使用します。デフォルトはFalseです。キャッシュファイルは、ネットワークに問題が発生したときのバックアップとして使用されます。 |
keeper_cache_dir | -- | キャッシュファイルの書込みおよび読取りを行うディレクトリ。 |
keeper_record_types | -- | Keeperコマンダー のレコードタイプの定義一覧。 |
プラグインには異なる2つのキャッシュ方法があります。
keeper_record_cache_secret
は、Playbookの実行のためにレコードをキャッシュするために使用されます。Playbookの実行後、キャッシュは削除されます。キャッシュは暗号化されてメモリに保存されます。このキャッシュを使用すると、Keeperシークレットマネージャーへ呼び出されるAPIの数を減らすことができます。このキャッシュはメモリに保存されるため、取得するレコードが増えるほど、より多くのメモリが使用されます。
keeper_use_cacheとkeeper_cache_dir
は、Keeperボルトのディザスタリカバリ キャッシュに使用され、Keeperシークレットマネージャーに接続できない場合に使用されます。このキャッシュは暗号化されてディスクに保存されます。
オプションの方法として、ansible-playbook
コマンドを使用して値を指定することができます。
例:
Keeperの3つのactionプラグインと1つのlookupプラグインがあります。
すべてのプラグインで、以下の引数が使用されます。
uid
- 目的の記録のUIDレコード(必須)。
field
- 指定したラベルの値をレコードから取得します。
custom_field
- 特定のカスタムフィールド名の値を取得します。
file
- 指定した名前のファイルをレコードから取得します。
uid
値は必須で、field
またはfile
のいずれかを指定する必要があります。
特定のボルトのシークレットで使用できるフィールドおよびカスタムフィールドを確認するには、KeeperシークレットマネージャーCLIの「ksm secret get -u XXXX
」コマンドを使用します。 詳細についてはこちらをご覧ください。
プラグインの例は、短いプラグイン名で示しています。Ansible Galaxyからコレクションをインストールした場合は、長いプラグイン名を使用するか、プレイブックで使用されるコレクションのリストにコレクション名を追加する必要があります。
アクションでは、Keeper表記法、レコードのUID、レコードのタイトルのいずれかを使用し、タスク属性の array_index
およびvalue_key
と組み合わせて特定の値を取得できます。
たとえば、電話番号のような複合値はオブジェクトの配列となります。
以下の例では、Keeper表記法、array_index
、value_key
を使用して同じ結果を得ます。
keeper_cache_records
keeper_cache_records
は、キャッシュに保存されるレコードを特定の量を取得するために使用されます。その後、キャッシュは他のアクションで使用できるようになります。必要なレコードをすべて事前に取得することでAPI 呼び出し回数を減らすために使用されます。
レコードは、レコードUIDまたはレコードタイトルによって取得できます。アクションの結果、レコードが暗号化されてシリアライズされます。結果はregister変数を使用してAnsibleに保存し、他のアクションで使用できるようする必要があります。レコードの暗号化を伴うシリアルライズは非常に長くなる場合があります。 セキュリティとログノイズを軽減するために、no_log
をTrueに設定することを推奨します。
keeper_cache_records
はレコードのみをキャッシュし、添付ファイルはキャッシュされません。アクションでキャッシュに含まれているレコードから添付ファイルを取得しようとすると、ファイルをダウンロードするためのAPI呼び出しが行われます。
「cache: "{{ my_records.cache }}
」のように、テンプレートを使用して他のアクションで属性を設定します。
keeper_cache_records
では、keeper_record_cache_secret
が設定されている必要があります。これは、ホスト、グループ、タスク変数で行うことも、タスク内で生成してファクト (変数) として設定することもできます。上の例では、keeper_password
アクションを使用してパスワードを生成し、それがkeeper_record_cache_secret
として保存されます。no_log
属性はTrueに設定され、シークレットがログされないようにします。
キャッシュは更新されません。キャッシュには、生成後に作成または更新されたレコードは含まれません。キャッシュ内の新しいレコードまたは変更を取得するには、keeper_cache_records
を再度呼び出す必要があります。
uids
- KeeperボルトのレコードのUIDのリスト
titles
- Keeperボルトのレコードのタイトルのリスト
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
keeper_copy
keeper_copy
は内蔵のコピープラグインの拡張機能です。
例:
上記の最初のタスクの例では、「パスワード」がKeeperボルトのレコードからコピーされ、リモートシステム上のファイル「/tmp/my_password
」に保存されます。組み込みのコピープラグインのmodeキー/値を使用して、ファイルのアクセス権限を変更します。
上の2番目のタスクの例では、ファイル「my_cert_file.crt」がKeeperボルトのレコードからコピーされ、「/tmp/special.crt」に保存されます。組み込みのコピープラグイン関数のいくつかが、このファイルに適用されます。
uid
- KeeperボルトのレコードUID
title
- Keeperボルトのレコードのタイトル
notation
- Keeper表記法を使用してレコードからフィールドを取得
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
cache
- keeper_cache_records
操作からのレコードキャッシュ
field
- 標準Keeperボルトレコードから内容を取得
custom_field
- カスタムKeeperボルトレコードから内容を取得
file
- ファイルタイトルを使用してKeeperボルトレコードの添付ファイルの内容を取得
array_index
- デフォルトは0。フィールドの値に複数の値が含まれている場合、どの項目を返すか選択できます。最初の項目はarray_index
が0であり、次の項目は1となります。
value_key
- フィールドの値が複合オブジェクトの場合、キーと値の対のキーを返すよう選択できます。
その他の任意の属性は、内蔵のコピー プラグイン属性と同じとなります。src、remote_src、content は使用できず、無視されます。
keeper_get
keeper_get
プラグインは、Keeperボルトのレコードからフィールドまたはファイルを取得します。
例:
keeper_getプラグインは連想配列を返します。連想配列内のキーの「値」には、目的のフィールドまたはファイルの内容が含まれます。このプラグインは通常、Ansible命令レジスタとペアになっており、戻り値は他のタスクからアクセスできるようにメモリに格納されます。
上記の例では、最初のタスクは、指定したボルトのUIDレコードからログインフィールドを取得します。続いて、my_loginという名前で格納されます。2番目のタスクでは、デバッグのためにログイン名をコンソールに出力します。3番目のタスクでは、すべてのアプリケーションを実行できるログイン名のsudoerファイルが追加されます。
uid
- KeeperボルトのレコードUID
title
- Keeperボルトのレコードのタイトル
notation
- Keeper表記法を使用してレコードからフィールドを取得
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
cache
- keeper_cache_records
操作からのレコードキャッシュ
field
- 標準Keeperボルトレコードから内容を取得
custom_field
- カスタムKeeperボルトレコードから内容を取得
file
- ファイルタイトルを使用してKeeperボルトレコードの添付ファイルの内容を取得
allow_array
- デフォルトはFalse。Trueに設定されている場合、値の配列が返されます。フィールドに電話番号など複数の値が含まれている際に使用します。Trueの場合、array_index
とvalue_key
は無視されます。
array_index
- デフォルトは0。フィールドの値に複数の値が含まれている場合、どの項目を返すか選択できます。最初の項目はarray_index
が0であり、次の項目は1のようになります。
value_key
- フィールドの値が複合オブジェクトの場合、キーと値の対のキーを返すよう選択できます。
keeper_get_record
keeper_get_record
は、レコード内の全フィールドを取得し、ディクショナリ形式で返します。
例:
keeper_get_record
はディクショナリ形式で返します。ディクショナリのキーは、正規化されたフィールドラベル、つまりタイプとなります。キーは英数字とアンダースコアになります。重複したキーがある場合は、キーの末尾に番号が追加されます。
上の例では、UIDを使用してレコードを取得します。フィールドは、 register
命令を使用してメモリ内のディクショナリに保存されます。 allow
属性が使用されているため、ディクショナリにはログインとパスワードのみが含まれます。フィールド値には、Ansibleの通常のテンプレートを使用してアクセスできます。 値は配列として保存されますが、これは電話などの値の配列を返す一部フィールドに起因します。
uid
- KeeperボルトのレコードUID
title
- Keeperボルトのレコードのタイトル
uids
かtitles
のどちらかが必要となります。
cache
- keeper_cache_records
操作からのレコードキャッシュ
allow
- 許可するキーのリスト。設定してキーがリストにない場合、ディクショナリには含まれません。
keeper_set
keeper_setプラグインを使用して、既存のKeeperボルトのレコードに値を書き込むことができます。
例:
この例では、新しいユーザーのログイン名を取得します。レコードのログイン名を使用して新しいユーザーがリモートシステム上に作成されます。その後、リモートマシンのホームディレクトリがレコード内で更新されます。
keeper_set
に配列の個々の値や複合値を設定する機能はなく、既存の値を新しい値に置き換えるだけです。たとえば、Hostname and Portのフィールドタイプの場合、Portのみを更新する方法はありません。HostNameを含む値全体がオブジェクト値に含まれる必要があります。
keeper_set
は、ボルト内のレコードの更新を設定します。使用してもキャッシュは更新されません。キャッシュを更新するには、更新されたレコードのUIDまたはタイトルを使用して、keeper_cache_records
を再度実行する必要があります。
uid
- Keeperボルトのレコードのタイトル
title
- Keeperボルトのレコードのタイトル
notation
- Keeper表記法を使用してレコードからフィールドを取得
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
cache
- レコードのキャッシュ。レコードの取得に使用し、キャッシュは更新されません。
field
- 既存の標準Keeperボルトレコードフィールドを更新
custom_field
- 既存のカスタムKeeperボルトレコードフィールドを更新
keeper_create
keeper_create
プラグインは、Keeperボルトにレコードを作成します。使用可能なレコードタイプ、およびレコードの作成に使用されるフィールドタイプについては、フィールド/レコードタイプのドキュメントをご参照ください。actionプラグインは、作成に成功するとrecord_uid
を返します。
レコードを作成するには、Ansible変数keeper_app_owner_public_key
が必要です。client-config.jsonでは、JSONキーはappOwnerPublicKey
です。設定にこのキーが含まれていない場合は、新しいワンタイムアクセストークンを作成して初期化します。
例:
以下のフィールドは必須です。
shared_folder_uid
- ボルトの共有フォルダUID。レコードはこのフォルダ内に作成されます。
record_type
- レコードのタイプ。これには、既定のレコードタイプがすべて含まれます。keeper_record_types
が設定されている場合は、それらのレコードタイプを使用できます。
title
- レコードのタイトル
以下のフィールドはオプションです。
generate_password
- trueに設定すると、パスワードが設定されていないパスワードフィールドにランダムに生成されたパスワードが設定されます。
password_complexity
- パスワードの複雑さを設定します。 password_complexityのパラメータはすべてオプションです。
length
- パスワードの長さ。デフォルトは64です。
allow_lowercase
- デフォルトはTrueです。Falseに設定すると、小文字は使用されません。
allow_uppercase
- デフォルトはTrueです。Falseに設定すると、大文字は使用されません。
allow_digits
- デフォルトはTrueです。Falseに設定すると、数字は使用されません。
allow_symbols
- デフォルトはTrueです。Falseに設定すると、記号は使用されません。
filter_characters
- パスワードから除外する文字のリスト。これにより、サービスが拒否する文字を削除できます。たとえば、SQLの「%」などです。設定しない場合、パスワードはフィルタリングされません。
notes
- レコードにメモを添付します。
パスワードの生成では、次の記号が使用されます。"!@#$%()+;<>=?[]{}^.,
レコードタイプに応じて、特定のフィールドが必要になる場合があります。カスタムフィールドはオプションです。fields
とcustom_fields
はどちらも値の配列です。
fields/custom_fields
type
- フィールドタイプ
label
- 値と一緒に表示するラベル。
value
- フィールド値。フィールドタイプに合わせて、文字列または連想配列を指定できます。
特定のカスタムのレコードタイプを持つレコードを作成するには、まずKeeperコマンダーとrecord-type-info
コマンドを使用して、カスタムのレコードタイプをエクスポートします。KSMはカスタムタイプの定義を同期しないため、これを変数としてプレイブックに直接追加する必要があります。
KeeperコマンダーはJSON配列("content")を出力します。必要なのは、JSONオブジェクトのみです。
例:
Ansible YAMLファイルで、keeper_record_types
という変数キーに"content"オブジェクトの値を追加します。変数は配列で、JSONは文字列値として扱う必要があります。配列項目の後のパイプは、以降のJSONを文字列として扱います。この変数は複数のレコードタイプを指定できます。
例:
これが動作したかどうかを確認するために、keeper_info
プラグインを使用して、どのレコードタイプが使用可能かを表示できます。
特定のカスタムタイプのレコードを作成する場合、Ansibleタスクは、以下に示すようにrecord_type
パラメータのレコードタイプ名を参照します。
keeper_remove
v1.2.1 2023/10/27にリリース
keeper_removeでKeeperボルトからレコードを削除します。
uid
- Keeperボルトのレコードのタイトル
title
- Keeperボルトのレコードのタイトル
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
cache
- keeper_cache_records
操作からのレコードキャッシュ。レコードはキャッシュから削除され図、レコードタイトルを探すのに用いられます。
keeper_password
keeper_password
プラグインはランダムなパスワードを生成します。actionプラグインはpassword
を返します。
例:
パラメータはすべてオプションです。パラメータが設定されていない場合は、デフォルト値が使用されます。
length
- パスワードの長さ。デフォルトは64です。
allow_lowercase
- デフォルトはTrueです。Falseに設定すると、小文字は使用されません。
allow_uppercase
- デフォルトはTrueです。Falseに設定すると、大文字は使用されません。
allow_digits
- デフォルトはTrueです。Falseに設定すると、数字は使用されません。
allow_symbols
- デフォルトはTrueです。Falseに設定すると、記号は使用されません。
filter_characters
- パスワードから除外する文字のリスト。これにより、サービスが拒否する文字を削除できます。たとえば、SQLの「%」などです。設定しない場合、パスワードはフィルタリングされません。
パスワードの生成で使用される記号は「"!@#$%()+;<>=?[]{}^.,」です。
レコードタイプに応じて、特定のフィールドが必要になる場合があります。カスタムフィールドはオプションです。fieldsとcustom_fieldsはどちらも値の配列です。
keeper_lookup
keeper_lookup
プラグインは、Keeperボルトのレコードからフィールドを取得し、その値をテキスト文字列に挿入します。
例:
上の例では、最初のタスクでKeeperのレコードからユーザーのログイン名をテンプレート化することによってファイルの内容が作成されます。
2つ目のタスクでは、array_index
およびvalue_key
のタスク属性を使用して、複合値を持つフィールドの2つ目の電話番号がデバッグとして表示されます。array_index
は0から始まり、配列内の次の項目は 1、その次は 2、というようになります。value_key
は、キー/ペアのディクショナリ内のキーの名前となります。
uid
- Keeperボルトのレコードのタイトル
title
- Keeperボルトのレコードのタイトル
notation
- Keeper表記法を使用してレコードからフィールドを取得
uids
とtitles
は同時に使用できます。少なくともどちらか一方が設定されている必要があります。
cache
- レコードのキャッシュ。レコードの取得に使用し、キャッシュは更新されません。
field
- 既存の標準Keeperボルトレコードフィールドを更新
custom_field
- 既存のカスタムKeeperボルトレコードフィールドを更新
file
- ファイルタイトルを使用してKeeperボルトレコードの添付ファイルの内容を取得
allow_array
- デフォルトはFalse。Trueに設定されている場合、値の配列が返されます。フィールドに電話番号など複数の値が含まれている際に使用します。Trueの場合、array_index
とvalue_key
は無視されます。
array_index
- デフォルトは0。フィールドの値に複数の値が含まれている場合、どの項目を返すか選択できます。最初の項目はarray_index
が0であり、次の項目は1のようになります。
value_key
- フィールドの値が複合オブジェクトの場合、キーと値の対のキーを返すよう選択できます。
lookupプラグインを使用するときにシークレット値の漏洩を防ぐには、「no_log:True」をタスクに追加します。値がTrueの場合、標準出力情報はログに記録されません。
プラグインをAnsible Galaxyからインストールした場合は、lookupプラグインに長い名前(keepersecurity.keeper_secrets_manager.keeper)が必要です。コレクションの一覧表示は、lookupプラグインでは動作しないようです。
特定のボルトのシークレットで使用できるフィールドおよびカスタムフィールドを確認するには、KeeperシークレットマネージャーCLIの「ksm secret get -u XXXX
」コマンドを使用します。 詳細はこちらです。
keeper_init
keeper_init
プラグインは、ワンタイムアクセストークンで設定を初期化します。これはkeeper_ansible --keeper_token
コマンドに似ています。このプラグインは、以下のオプションを指定できます。
token
- ワンタイムアクセストークン。この値はテンプレート化して、値で渡すことをお勧めします。
filename
- 設定値で生成する設定ファイルの名前。指定されていない場合、設定は作成されません。
show_config
- 設定値をタスクのログに返すべきか否かを示すフラグ。デフォルトはFalse
です。他の方法で設定を生成できない場合、または生成された設定ファイルにアクセスできない場合にのみ、Trueに設定します。Trueの場合、設定はログにレコードされます。コマンドラインを使用してプレイブックを実行する場合は問題ないかもしれませんが、Ansible Towerを使用して実行する場合は、ログファイルが生成されて保持されます。
有効なのは1回だけなので、トークンをプレイブックにハードコードしないことをお勧めします。トークンと設定ファイル名は、extra vars
を使用してプレイブックに渡すことができます。
上記を実行すると、以下のようなファイルが生成されます。ファイルの内容は、ansibleで使用される設定ファイルにコピーでき、必要に応じて、ansible-vault
で暗号化できます。
KeeperシークレットマネージャープラグインをAnsible Galaxyからインストールした場合、keeper_init_token
というロールがインストールされ、ワンタイムアクセストークンが初期化されます。このロールはプレイブックで使用できます。
このロールは、追加の変数を使用して設定された以下のオプションを使用します。
keeper_token
- 必要なワンタイムアクセストークン。
keeper_config_file
- 設定を含むファイルを生成します。設定しない場合、ファイルは作成されません。
keeper_show_config
= デフォルトはFalseです。Trueに設定すると、詳細出力が有効になっている場合、ログに設定が表示されます。
keeper_config_file
またはkeeper_show_config
を使用する必要があります。そうしないと、トークンが初期化され、結果として生成された設定を表示できなくなります。
keeper_info
keeper_infoアクションは、Keeper ansibleプラグインに関する情報を表示します。結果には、レコードタイプ、フィールドタイプ、Pythonモジュールのバージョンのリストが含まれます。結果を表示するには、詳細レベルを1以上に設定する必要があります。
これを使用して、カスタムのレコードタイプがプラグインによって検出されていることを確認できます。
keeper_cleanup
keeper_cleanup
プラグインは、keeperプラグインによって作成されたファイルを消去するために使用されます。主として、キャッシュファイルを使用している場合に、キャッシュファイルを削除するために使用されます。キャッシュファイルは、ネットワークに問題がある場合、レコードを取得するために代わりに使用されます。Ansibleシークレット環境を実行している場合は、キャッシュを削除する必要はありません。ただし、このプラグインを使用すると、キャッシュを削除できます。
keeper_redact
keeper_redact
標準出力コールバックプラグインは、標準出力ログのシークレットを編集して難読化するために使用されます。これは、keeper_redact
標準出力コールバックプラグインを使用して標準出力ログからシークレットを編集して難読化するのに有効です。これは、keeper_copy
とkeeper_get
に対応します。keeper_lookup
のシークレット値は編集されません。keeper_lookup
には、no_log:True
ディレクティブを使用します。
プレイブックでシークレットデータを保存する方法をご参照ください。no_log
を使用すると、タスクのすべてのログを非表示にできます。このプラグインは、Keeperシークレットマネージャープラグインによって返されたシークレットを非表示または編集したい場合に使用します。
keeper_redact
プラグインは、ジョブの実行時にログをストリーミングするための独自の標準出力コールバックプラグインを利用したため、Ansible Towerでは使用できません。ログに情報を表示したくない場合は、no_log
オプションのご使用を強くお勧めします。
keeper_redact
プラグインを使用するには、_ansible.cfg_で有効にします。
たとえば、以下のタスクでは、カスタムフィールド_MyPhoneNumbers_の電話番号をすべて返し、それらを変数_phone_numbers_に格納します。
プレイブックを詳細出力で実行すれば、変数に格納されている値が表示されるはずです。これにより、シークレットがログに漏洩します。keeper_redact
標準出力コールバックプラグインを有効にすると、ログ内の値は編集されて難読化されます。
Keeper Secrets Manager CLI(「ksm」)を使用して、Ansibleボルトの復号化パスワードを設定できます。そのためには、ANSIBLE_VAULT_PASSWORD_FILE環境変数またはansible.cfgフィールドのvault_password_fileを使用して、パスワードを返す実行可能ファイルを指定します。
「ksm」のシークレットの表記法を使用してパスワードを返す実行可能シェルスクリプトを作成できます(ksmのシークレットの表記法の詳細)。 たとえば、以下のスクリプトは、指定したUIDレコードの特定のシークレットのパスワードを出力します。
XXXXをボルトのUIDレコードに置き換えます。このスクリプトを実行するだけで、シークレットのパスワードが出力されます。
環境変数「ANSIBLE_VAULT_PASSWORD_FILE」をオーバーライドするには、以下を実行し、/path/to/scriptを上記のスクリプトの場所に置き換えます。
これで、playbook_with_vault.yml
で使用されているボルトを復号化する必要がある場合は、Ansibleはそのシェルスクリプトを実行します。このシェルスクリプトはKeeperボルトからパスワードを取得します。
デフォルトでは、Ansibleプラグインはエラーのみを表示します。Ansibleの詳細出力レベルを使用すると、SDKの様々なログが表示されます。Ansibleの詳細出力レベルを-v
にすると、INFOレベル以上のSDKメッセージが表示されるのに対し、詳細出力レベルを-vvv
にするとDEBUGレベル以上のSDKメッセージが表示されます。
これはMacOS上で動作するAnsibleに特有のものと思われます。プレイブックの実行中に、以下のエラーが発生する場合があります。
これはAnsibleの既知の問題です。これは、次の環境変数を使用して解決できます。