Ansible 用のPassword Manager Proプラグイン
Ansible は、Red Hat が提供する人気のオープンソース オーケストレーション ツールで、組織が構成管理や同様の反復的なプロセスを自動化するのに役立ちます。Ansible ユーザーは、基本的に自動化スケジュールである[プレイブック]の形式で日常的なタスクの指示を作成できます。これらのプレイブックを実行するには、多くの場合、環境内の他のシステム、アプリケーション、サービスと連携するためのユーザー認証情報や、特権パスワード、API キー、アクセス トークンなどの同様の機密情報が必要になります。ほとんどの DevOps 環境では、サービスの遅延なくスムーズなタスクの実行を可能にするために、このような認証情報はプレイブック内に平文で保存されますが、これにより多くのセキュリティや管理の問題が発生する可能性があります。
Ansible でのシークレット管理用に開発された Password Manager Pro ルックアップ プラグインは、組織の DevOps パイプラインのセキュリティの向上に役立ちます。プラグインがAnsibleで有効になると、必要な認証情報が、書かれたテンプレート内にプレーンテキストで埋め込まれるのではなく、再生が実行されるたびにPassword Manager ProのVaultから取得されるようになります。安全に取得された認証情報は、リモート サーバーへの接続などのアクションに使用できます。また、このプラグインにより、ユーザーは、更新があるたびにプレイブックのパスワード/SSH キーを手動で更新するという面倒な作業から解放されます。多くの場合、テンプレート内の認証情報が古いためにプレイが失敗する場合があります。現在、Password Manager Pro に保存されている認証情報はVault内で定期的にローテーションされ、それぞれのリモート デバイスでも更新されるため、プレイの実行中に最新のパスワードまたはキーのみがVaultから取得されるようになります。
1.Ansible 用の Password Manager Pro プラグインを構成する手順
以下は、Password Manager Pro を使用して Ansible でシークレットをセットアップし、管理を開始するために必要な主な 2 つの手順です。
ステップ1:Password Manager Pro での Ansible 連携の有効化
ステップ2:Ansibleプレイブックでのプラグインの有効化
1.1 Password Manager Pro での Ansible 連携の有効化
- Password Manager Proにログインし、[管理]>>[連携]>>[CI/CDプラットフォーム連携]に移動します。
- [Ansible]オプションをクリックします。
- 認証トークン: [生成]をクリックして、AUTH トークンを自動的に入力します。これは、後で Ansibleプレイブックでプラグインを構成するときに必要になります。セットアップが完了すると、Ansible からのすべての受信接続は、この AUTH トークンを使用して Password Manager Pro によって検証されます。
- ユーザー名: ここで、アクティブな Password Manager Pro ユーザーのユーザー名を入力します。このユーザーのアカウントは、Password Manager Pro のVaultから必要なパスワードを安全に取得するために Ansible によって自動的に使用されます。
重要な注記:指定する Password Manager Pro ユーザー アカウントに、このワークフローに必要な最小限の権限 (つまり、Ansible が接続する必要があるリソースのパスワードを表示/取得する権限) があることを確認してください。このユーザーが所有し共有しているリソースのパスワードは、Ansible が Password Manager Pro でアクセスできる唯一の認証情報です。 - [有効化]をクリックします。
1.2 Ansibleプレイブックでのプラグインのアクティブ化
基本的に、Password Manager Pro プラグインは、Ansible の用語ではルックアップ プラグインと呼ばれます。Ansible ユーザーは、Ansible のインストール ディレクトリ内のルックアップ フォルダにこのカスタム ルックアップ プラグインを追加することで、このカスタム ルックアップ プラグインをアクティブ化できます。追加すると、プレイの実行に一連の認証情報が必要な場合にプラグインをトリガーするようにプレイブックを設定でき、プラグインは Password Manager Pro に接続して必要なパスワードまたはキーを取得します。
注:Password Manager Pro の Ansible Lookup プラグインは、Ansible Python バージョン 3 以降でのみ動作します。
以下に、Password Manager Pro のルックアップ プラグインを使用して Ansible で認証情報管理ワークフローを実現する詳細な手順を示します。
- まず、ここから検索プラグインをダウンロードします。Zip からプラグイン Python スクリプト (.py) を抽出します。
- 次に、Ansible のインストール ディレクトリに移動し、[ansible/lib/ansible/plugins/lookup]のパスをトレースします。
- ルックアップフォルダにプラグインファイルをドロップします。
- Ansible サービスを再起動します。
- サービスが再び起動したら、認証情報が埋め込まれているプレイブックを開き、プレーン テキストの認証情報を削除します。その代わりに、Password Manager Pro 検索プラグインを起動して Password Manager Pro に接続し、資格情報をVaultから安全に取得するコマンドを追加します。
- このコマンドでは、プラグインが Password Manager Pro からチェックアウトするリソースとアカウントの名前も指定する必要があります。
- プラグインを呼び出すコマンドは、プレイブックで次の形式で構成する必要があります。
{{ lookup('passwordmanagerpro','RESOURCENAME', 'ACCOUNTNAME')}}
- 特権認証情報を必要とするすべてのプレイブックに対して上記の手順を繰り返します。このプロセス中に、指定したすべてのリソース名とアカウント名が事前に Password Manager Pro のVaultに追加されていることを確認してください。
- 必要なプレイブックに必要な変更を加えた後、Password Manager Pro の URL と、以前に生成された AUTH トークンを Ansible の環境変数として構成します。
- PMP_URL
- PMP_AUTHTOKEN
- これでセットアップは完了し、Password Manager Pro を使用して Ansible で認証情報の管理を開始する準備が整いました。