ChefとPuppet用のPassword Manager Proプラグイン
Chef
Puppet
サンプルコード
- Password Manager Proプラグインを使ってリソースとアカウント詳細を取り込むサンプルコード
- Password Manager Proプラグインを使ってパスワードを取り込むサンプルコード
Chef
1.Chefの導入
Chefは、Rubyベースの構成管理ツールで、手動プロセスを使用するのではなく、コードを書き込むことで、インフラストラクチャの管理を簡単にする、インフラストラクチャをコード(IAC)として定義する方法を提供します。Chefは、クライアント — サーバーアーキテクチャを使って動作します。
Chef用に開発されたPassword Manager Proルックアッププラグインでは、組織のDevOpsパイプラインの中でのパスワード管理のセキュリティと使いやすさを改善できます。Chefにインポートされると、Password Manager ProプラグインがChefのCookbookランタイム中にPassword Manager Pro ヴォルトから直接、認証情報とアカウント情報を取り込むため、ハードコードの認証情報を使う必要がなくなります。認証情報は、安全に取り込みが完了すると、リモートホストへの接続等の操作に使用できます。Password Manager Proに保存されている認証情報はヴォルト内で定期的にローテーションされ、それぞれのリモートデバイスでも更新されるため、Chefプラグインの呼び出し時に最新のパスワードまたはキーのみがヴォルトから取り込まれるようになります。
2.Chef用Password Manager Proプラグインのセットアップ手順
以下は、Password Manager ProでChefに機密の認証情報をセットアップおよび管理する手順です。
- Password Manager ProでのChef連携の有効化
- Chef CookbookでPassword Manager Proプラグインの呼出
2.1 Password Manager ProでChef連携の有効化
- Password Manager Proにログインし、[管理] >> [連携] >> [CI/CDプラットフォーム連携]の順に移動します。
- Chefオプションをクリックします。
- CI/CDプラットフォーム連携ウインドウで、[生成]をクリックし、認証トークンを自動入力します。これは、Chef Cookbookでプラグインを呼び出す際、後で必要になります。セットアップが完了すると、Chefからのすべての受信接続は、この認証トークンを使用して Password Manager Pro によって検証されます。
- アクティブなPassword Manager Proユーザーのユーザー名を入力します。Password Manager Proは、このユーザーアカウントに認証トークンをマッピングし、Password Manager Proのヴォルトから必要なパスワードを取り込むのに使用します。Password Manager Proがこのユーザーに認証トークンをマッピングしたら、このユーザーが所有/共有したリソースにこの認証トークンを使ってアクセスすることもできます。
- [有効化]をクリックします。
注記:入力したPassword Manager Proユーザーアカウントに、このワークフローに必要な最小限の権限(すなわち、Chefが接続する必要があるリソースのパスワードを表示/取得する権限)があることを確認してください。このユーザーが所有し共有しているリソースのパスワードは、Chefが Password Manager Proでアクセスできる唯一の認証情報です。
2.2 ChefでPassword Manager Proプラグインの呼出
以下を実行し、Password Manager ProのRubyのgemをお使いのChef Cookbookにインポートします:
2.2.i Password Manager Proクラスオブジェクトを認証情報で開始
syntax:gemData = PasswordManagerProGem.new("Hostname","Auth token",Path,port number)
2.2.ii Chef Cookbook で Password Manager Pro プラグインを起動する方法
gemData.getAccountPassword("resource name","account name")
このメソッドは、アカウントのパスワードを文字列として取得します。
gemData.getAccountDetails("resource name","account name")
このメソッドは、リソースとアカウントの詳細を JSON 形式の配列で返します。
Puppet
1.Puppetの導入
Puppetは、Chefと同様、Rubyベースの構成管理ツールです。Puppetも、マスターとスレイブがSSLのサポートを受けセキュア暗号化チャンネルで通信する、クライアント—サーバーアーキテクチャを使って作動します。Puppetは主に、サーバーの展開、構成および管理に使用します。Chefと同様、Password Manager Proルックアッププラグインは、呼び出されたとき、Password Manager Proのヴォルトから直接パスワードを取り込むことができます。
2.Puppet用Password Manager Proプラグインのセットアップ手順
以下は、Password Manager ProでPuppetに機密の認証情報をセットアップおよび管理する手順です。
- Password Manager ProでのPuppet連携の有効化
- PuppetでPassword Manager Proプラグインの呼出
2.1 Password Manager ProでのPuppet連携の有効化
- Password Manager Proにログインし、[管理] >> [連携] >> [CI/CDプラットフォーム連携]の順に移動します。
- Puppetオプションをクリックします。
- CI/CDプラットフォーム連携ウインドウで、[生成]をクリックし、認証トークンを自動入力します。これは、Puppetでプラグインを呼び出しす際、後で必要になります。セットアップが完了すると、Puppetからのすべての受信接続は、この認証トークンを使用してPassword Manager Proによって検証されます。
- アクティブPassword Manager Proユーザーのユーザー名を入力します。Password Manager Proは、このユーザーアカウントに認証トークンをマッピングし、Password Manager Proのヴォルトから必要なパスワードを取り込むのに使用します。Password Manager Proがこのユーザーに認証トークンをマッピングしたら、このユーザーが所有/共有したリソースにこの認証トークンを使ってアクセスすることもできます。
- [有効化]をクリックします。
注記:入力したPassword Manager Proユーザーアカウントに、このワークフローに必要な最小限の権限(すなわち、Puppetが接続する必要があるリソースのパスワードを表示/取得する権限)があることを確認してください。このユーザーが所有し共有しているリソースのパスワードは、PuppetがPassword Manager Proでアクセスできる唯一の認証情報です。
2.2 PuppetでPassword Manager Proプラグインの呼出
以下を実行し、Password Manager ProのRubyのgemをお使いのPuppetにインポートします:
2.2.i Password Manager Proクラスオブジェクトを認証情報で開始
syntax:gemData = PasswordManagerProGem.new("Hostname","Auth token",Path,port number)
2.2.ii Password Manager Proプラグインを呼び出すのにPuppetに適用する方法
getAccountPassword(resourceName,AccountName)
このメソッドは、アカウントのパスワードを文字列として取得します。
getAccountDetails(resourceName,AccountName)
このメソッドは、リソースとアカウントの詳細を JSON 形式の配列で返します。
サンプルコード
1.Password Manager Proプラグインを使ってリソースとアカウント詳細を取り込むサンプルコード
以下は、Password Manager Proプラグインを使ってアカウント詳細を取り込む、サンプル入出力コードと、その対応するサンプルレスポンスです。サンプルコードは、ChefとPuppetの両方で同じです。
サンプル入力
gem 'PasswordManagerPro_Gem'
'PasswordManagerPro_Gem' gemData = PasswordManagerProGem.new("localhost","060CCDB8-71A0-4B8B-AC57-XXXXX","/home/local/user/servercertificate")が必要
# resourcename = Windows accountname = useraccount1
puts("resourcedetails\n")
結果 = gemData.getAccountDetails("Windows ","useraccount1"))
puts(result[0])puts("accountdetails\n")
puts(result[1])
resource details
{"RESOURCE_ID":1,"RESOURCE_NAME":"Windows","RESOURCE_DESCRIPTION":"","OPERATINGSYSTEM":"Windows","DNSNAME":"","DEPARTMENT":"","LOCATION":"","RESOURCE_URL":""}
account details
{"ACCOUNTNAME":"useraccount1","PASSWORD":"Test@123"}
2.Password Manager Proプラグインを使ってパスワードを取り込むサンプルコード
以下は、Password Manager Proプラグインを使ってパスワードを取り込む、サンプル入出力コードと、その対応するサンプルレスポンスです。サンプルコードは、ChefとPuppetの両方で同じです。
サンプル入力
gem 'PasswordManagerPro_Gem'
'PasswordManagerPro_Gem'が必要
gemData = PasswordManagerProGem.new("localhost","060CCDB8-71A0-4B8B-AC57-XXXXX","/home/local/user/servercertificate")
# resourcename = Windows accountname = useraccount1
puts("accountpassword\n")
puts(gemData.getAccountPassword("Windows ","useraccount1"))
サンプル出力
アカウントパスワード:Test@123
ChefおよびPuppetについての詳細は、以下のリンクを参照してください:
Chef: https://www.chef.io
Puppet: https://puppet.com/