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