CSVテンプレートの使用

PAM Projectコマンド向けにCSVテンプレートをJSONファイルへ変換するスクリプトの利用

変換手順

CSVからJSONへの変換には、主に以下の2とおりの方法があります。

  1. CSVファイルのみで進める

    CSVに pamDirectorypamMachinepamUser の各オブジェクトをすべて記述します。

  2. 列を最小限にしたCSVと、デフォルト属性を補うJSONテンプレートを併用する

    CSVには pamMachine および pamUser に固有の情報だけを記載し、その他のデータはJSONテンプレートから取り込みます。

1 – CSVのみを利用する

必須項目

CSVに最低限必要な列は以下のとおりです。

hostname
username
user_path

DESKTOP-001.local

Administrator

DESKTOP-001.local

user_path 列は、ユーザーを紐づけるリソースを示します。この例では、以下のようなJSONオブジェクトが生成されます。

{
        "title": "DESKTOP-001.local",
        "type": "pamMachine",
        "host": "DESKTOP-001.local",
        "pam_settings": {
          "options": {
            "rotation": "off",
            "connections": "on",
            "tunneling": "off",
            "graphical_session_recording": "on"
          },
          "connection": {}
        },
        "users": [
          {
            "title": "DESKTOP-001.local - Administrator",
            "login": "Administrator",
            "password": "",
            "type": "pamUser",
            "rotation_settings": {}
          }
        ]
      }

名前付きフィールド

上記の必須項目に加え、以下の名前付きフィールドが使えます。

folder_path
title
hostname
type
username
password
user_path

SF/AD

AD

dc.com

pamDirectory

SF/Users

Admin

admin

pwd123

AD

列には、すべてのオブジェクトに共通するもの (例: title) と、オブジェクトの種類に応じて自動適用されるもの (例: passwordpamUser にのみ適用) があります。

  • type 列は、hostname を含む行ではデフォルトで pamMachine になり、usernameuser_path を含む行では pamUser になります。

  • folder_path 列は pam project extend コマンドにのみ適用され、pam project import では無視されます。詳細は 既存のモデルへのPAMリソースの追加をご参照ください。

高度なフィールド

リソースオブジェクトまたはユーザーオブジェクトに関するフィールドは、接頭辞 rs および usr を付けて指定できます。

リソースの例は次のとおりです。

rs.portrs.operating_systemrs.pam_settings.connection.protocolrs.pam_settings.connection.administrative_credentials

ユーザーの例は次のとおりです。

usr.distinguished_nameusr.rotation_settings.enabled

2 - JSONテンプレートとCSVファイルを併用する

この方法では、追加のJSONファイルでプロジェクト設定、pamDirectory レコード、pamMachine レコードのデフォルト項目を定義します。CSVの各行について、JSON内の pamMachine テンプレートに沿ってリソースを、pamUser テンプレートに沿ってユーザーを生成します。

例として、import_template.json を作成し、次の内容を記述します。

上記のテンプレートでは、XXX の付いた項目を、実際に使う固定の値に置き換えます。xxx の付いた項目は、スクリプトがCSVの値で置き換えます。

CSVに pamDirectory のリソースとユーザーは含めません。その他のリソースとユーザーの行だけを記載します。テンプレートのデフォルト値は、CSVの列で上書きできます。

hostname
username
user_path
password

DESKTOP-001

Domain Admin

Example AD

pwd123

Local Admin

DESKTOP-001

pwd123

変換の実行

スクリプトは こちらからダウンロードし、作業用のローカルフォルダに保存してください。

コマンド実行を簡単にするため、同じフォルダに次のファイルを置きます。

  • servers_to_import.csv

  • import_template.json (CSVとJSONの両方を使って変換する場合のみ必要)

CSVファイルのみで変換するときは、次のコマンドを実行します。

CSVとJSONテンプレートの両方を使うときは、次のコマンドを実行します。

ファイルパスや出力先を変えるときは、次の引数を使います。

  • --input-file … CSVファイルのパス

  • --template-file … JSONテンプレートファイルのパス

  • --output-file … 出力するJSONのパス

指定しない場合は、同じフォルダに pam_import.json が出力され、Keeperへインポートする対象のすべてのリソース定義が書き込まれます。

最終更新