ChefとPuppet用PAM360プラグイン

Chef

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

Puppet

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

サンプルコード

  1. PAM360プラグインを使ってリソースとアカウント詳細を取り込むサンプルコード
  2. PAM360プラグインを使ってパスワードを取り込むサンプルコード

1.Chefの導入

Chefは、Rubyベースの構成管理ツールで、手動プロセスを使用するのではなく、コードを書き込むことで、インフラストラクチャの管理を簡単にする、インフラストラクチャをコード(IAC)として定義する方法を提供します。Chefは、クライアントーサーバー—アーキテクチャを使って動作します。

Chef用に開発されたPAM360ルックアッププラグインでは、組織のDevOpsパイプラインの中でのパスワード管理のセキュリティと使いやすさを改善できます。Chefにインポートされると、PAM360プラグインがChefのCookbookランタイム中にPAM360 Vaultから直接、認証情報とアカウント情報を取り込むため、ハードコードの認証情報を使う必要がなくなります。認証情報は、安全に取り込みが完了すると、リモートホストへの接続等の操作に使用できます。PAM360に保存されている認証情報はヴォルト内で定期的にローテーションされ、それぞれのリモートデバイスでも更新されるため、Chefプラグインの呼び出し時に最新のパスワードまたはキーのみがヴォルトから取り込まれるようになります。

2.Chef用PAM360プラグインのセットアップ手順

以下は、PAM360でChefに機密の認証情報をセットアップおよび管理する手順です。

  1. PAM360でChef統合を有効化。
  2. Chef CookbookでPAM360プラグインの呼出。

2.1 PAM360でChef統合を有効化

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

注記:入力したPAM360ユーザーアカウントに、このワークフローに必要な最小限の権限(すなわち、Chefが接続する必要があるリソースのパスワードを表示/取得する権限)があることを確認してください。このユーザーが所有し共有しているリソースのパスワードは、ChefがPAM360 でアクセスできる唯一の認証情報です。

2.2 ChefでPAM360プラグインの呼出

以下を実行し、PAM360のRubyのgemをお使いのChef Cookbookにインポートします:

2.2.1 PAM360クラスオブジェクトを認証情報で開始

syntax:gemData = PAM360Gem.new("Hostname","Auth token",Path,port number)

Wherein,

  • Host name = The PAM360 hostname of the account whose username was provided in Step 2.1.
  • Auth Token = The respective auth token generated in Step 2.1.
  • Path = Path to SSL certificate of the PAM360 server.
  • Port number = The port number used for your PAM360 server. You need to specify this only if the port used is not the default PAM360 port 8282.

2.2.2 PAM360プラグインを呼び出すのにChef Cookbookに適用する方法

gemData.getAccountPassword("resource name","account name")

This method fetches the account password as a string.

gemData.getAccountDetails("resource name","account name")

This method returns the resource and account details in the array of JSON format.

1.Puppetの導入

Puppetは、Chefと同様、Rubyベースの構成管理ツールです。Puppetも、マスターとスレイブがSSLのサポートを受けセキュア暗号化チャンネルで通信する、クライアント—サーバーアーキテクチャを使って作動します。Puppetは主に、サーバーの展開、構成および管理に使用します。Chefと同様、PAM360ルックアッププラグインは、呼び出されたとき、PAM360のVaultから直接パスワードを取り込むことができます。

2.Puppet用PAM360プラグインのセットアップ手順

以下は、PAM360でPuppetに機密の認証情報をセットアップおよび管理する手順です。

  1. PAM360でPuppet統合を有効化。
  2. PuppetでPAM360プラグインの呼出。

2.1 PAM360でPuppet統合を有効化

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

注記:入力したPAM360ユーザーアカウントに、このワークフローに必要な最小限の権限(すなわち、Puppetが接続する必要があるリソースのパスワードを表示/取得する権限)があることを確認してください。このユーザーが所有し共有しているリソースのパスワードは、PuppetがPAM360 でアクセスできる唯一の認証情報です。

2.2 PuppetでPAM360プラグインの呼出

以下を実行し、PAM360のRubyのgemをお使いのPuppetにインポートします:

2.2.1 PAM360クラスオブジェクトを認証情報で開始

syntax:gemData = PAM360Gem.new("Hostname","Auth token",Path,port number)

Wherein,

  • Host name = The PAM360 hostname of the account whose username was provided in Step 2.1.
  • Auth Token = The respective auth token generated in Step 2.1.
  • Path = Path to SSL certificate of the PAM360 server.
  • Port number = The port number used for your PAM360 server. You need to specify this only if the port used is not the default PAM360 port 8282.

2.2.2 PAM360プラグインを呼び出すのにPuppetに適用する方法

getAccountPassword(resourceName,AccountName)

This method fetches the account password as a string.

getAccountDetails(resourceName,AccountName)

This method returns the resource and account details in the array of JSON format.

サンプルコード

1.PAM360プラグインを使ってリソースとアカウント詳細を取り込むサンプルコード

以下は、PAM360プラグインを使ってアカウント詳細を取り込む、サンプル入出力コードと、その対応するサンプルレスポンスです。サンプルコードは、ChefとPuppetの両方で同じです。

サンプル入力

gem 'PAM360_Gem'

require 'PAM360_Gem' gemData = PAM360Gem.new("localhost","060CCDB8-71A0-4B8B-AC57-XXXXX","/home/local/user/servercertificate")

# resourcename = Windows accountname = useraccount1

puts("resourcedetails\n")

result = 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.PAM360プラグインを使ってパスワードを取り込むサンプルコード

以下は、PAM360プラグインを使ってパスワードを取り込む、サンプル入出力コードと、その対応するサンプルレスポンスです。サンプルコードは、ChefとPuppetの両方で同じです。

サンプル入力

gem 'PAM360_Gem'

require 'PAM360_Gem'

gemData = PAM360Gem.new("localhost","060CCDB8-71A0-4B8B-AC57-XXXXX","/home/local/user/servercertificate")

# resourcename = Windows accountname = useraccount1

puts("accountpassword\n")

puts(gemData.getAccountPassword("Windows ","useraccount1"

サンプル出力

accountpassword
Test@123

ChefおよびPuppetについての詳細は、以下のリンクを参照してください:

Chef: https://www.chef.io

Puppet: https://puppet.com/