ChefとPuppet用のPassword Manager Proプラグイン

Chef

  1. Chefの導入
  2. Chef用Password Manager Proプラグインのセットアップ手順

    2.1 Password Manager ProでChef連携の有効化

    2.2 ChefでPassword Manager Proプラグインの呼出

Puppet

  1. Puppetの導入
  2. Puppet用Password Manager Proプラグインのセットアップ手順

    2.1 Password Manager ProでのPuppet連携の有効化

    2.2 PuppetでPassword Manager Proプラグインの呼出

サンプルコード

  1. Password Manager Proプラグインを使ってリソースとアカウント詳細を取り込むサンプルコード
  2. 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に機密の認証情報をセットアップおよび管理する手順です。

  1. Password Manager ProでのChef連携の有効化
  2. Chef CookbookでPassword Manager Proプラグインの呼出

2.1 Password Manager ProでChef連携の有効化

  1. Password Manager Proにログインし、[管理] >> [連携] >> [CI/CDプラットフォーム連携]の順に移動します。
  2. Chefオプションをクリックします。
  3. CI/CDプラットフォーム連携ウインドウで、[生成]をクリックし、認証トークンを自動入力します。これは、Chef Cookbookでプラグインを呼び出す際、後で必要になります。セットアップが完了すると、Chefからのすべての受信接続は、この認証トークンを使用して Password Manager Pro によって検証されます。
  4. アクティブなPassword Manager Proユーザーのユーザー名を入力します。Password Manager Proは、このユーザーアカウントに認証トークンをマッピングし、Password Manager Proのヴォルトから必要なパスワードを取り込むのに使用します。Password Manager Proがこのユーザーに認証トークンをマッピングしたら、このユーザーが所有/共有したリソースにこの認証トークンを使ってアクセスすることもできます。  
  5. [有効化]をクリックします。
  6. 注記:入力した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.1で与えられたアカウントの Password Manager Proホスト名。
  • 認証トークン = 手順2.1で生成した各認証トークン。
  • パス = Password Manager ProサーバーのSSL証明書へのパス。
  • ポート番号 = Password Manager Proサーバーに使用するポート番号。これは、使用したポートがデフォルトPassword Manager Proポート7272ではない場合のみ、指定する必要があります。

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に機密の認証情報をセットアップおよび管理する手順です。

  1. Password Manager ProでのPuppet連携の有効化
  2. PuppetでPassword Manager Proプラグインの呼出

2.1 Password Manager ProでのPuppet連携の有効化

  1. Password Manager Proにログインし、[管理] >> [連携] >> [CI/CDプラットフォーム連携]の順に移動します。
  2. Puppetオプションをクリックします。
  3. CI/CDプラットフォーム連携ウインドウで、[生成]をクリックし、認証トークンを自動入力します。これは、Puppetでプラグインを呼び出しす際、後で必要になります。セットアップが完了すると、Puppetからのすべての受信接続は、この認証トークンを使用してPassword Manager Proによって検証されます。
  4. アクティブPassword Manager Proユーザーのユーザー名を入力します。Password Manager Proは、このユーザーアカウントに認証トークンをマッピングし、Password Manager Proのヴォルトから必要なパスワードを取り込むのに使用します。Password Manager Proがこのユーザーに認証トークンをマッピングしたら、このユーザーが所有/共有したリソースにこの認証トークンを使ってアクセスすることもできます。 
  5. [有効化]をクリックします。

注記:入力した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.1で与えられたアカウントの Password Manager Proホスト名。
  • 認証トークン = 手順2.1で生成した各認証トークン。
  • パス = Password Manager ProサーバーのSSL証明書へのパス。
  • ポート番号 = Password Manager Proサーバーに使用するポート番号。これは、使用したポートがデフォルトPassword Manager Proポート7272ではない場合のみ、指定する必要があります。

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/

       概要