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