前回の記事では、safeguard-ps モジュールのコマンドレットを使用して、SPP に管理対象システム(=資産) とそのアカウントを登録する方法を紹介しました。
今回は、SPP に複数の管理対象システム(=資産) とそのアカウントを CSV ファイルから一括インポートする方法を紹介します。CSV ファイルからの一括インポートは safeguard-ps モジュールのコマンドレットを介して行います。
safeguard-ps モジュールは、One Identity のオープンソースプロジェクトでサポートされます。
※参照:OneIdentity/safeguard-ps(https://github.com/OneIdentity/safeguard-ps)
はじめに(事前作業)
CSV ファイルからの一括インポートを行う前に、次を行います。
safeguard-ps 最新モジュールのインストール
はじめに、次のいずれかの手順で、お使いのコンピューターに safeguard-ps 7.1 以降をインストールしてください。
CSV ファイルからの一括インポート機能は safeguard-ps release-7.1 で追加されました。
この記事で紹介する CSV インポート機能をご使用いただくためには、release-7.1 以降が必要です。
PowerShell Gallery からインストールする
ここでは、Windows マシンに PowerShell Gallery から safeguard-ps モジュールをインストールする手順を紹介します。
Windows PowerShell を 管理者として実行 します。
次のコマンドを実行します。
Install-Module safeguard-ps -Force
今回は、安定版の最新バージョンを(上書き)インストールするため、-Force パラメーターを使用します。
管理者として PowerShell を実行することができない場合は、通常の PowerShell プロンプトを開き、次のように入力してください。現在のユーザーに対してのみ safeguard-ps モジュールをインストールすることができます。
Install-Module safeguard-ps -Force -Scope CurrentUser
次のコマンドを実行し、safeguard-ps モジュールがインストールされたことを確認します。
Get-Module safeguard-ps -ListAvailable
この例の場合は、version 7.4 のモジュールがインストールされました。
実際のバージョンは、インストールした時期により異なります。ここでは、7.1 以降のバージョンがインストールされていることを確認してください。
GitHub から zip ファイルをダウンロードしてインストールする
Install-Module を使用して safeguard-ps モジュールをインストールできない場合は、GitHub から zip ファイルをダウンロードして手動でインストールしてください。
Web ブラウザーを開き、github.com/oneidentity/safeguard-ps にアクセスします。master ボタンをクリックし、Branches から release-7.1 以降を選択します。ここでは、release-7.4 を選択しています。
Code ボタンをクリックし、Download ZIP をクリックします。
zip ファイルを保存し、任意の場所に展開します。
Windows PowerShell を 管理者として実行 します。
cd コマンドで展開したフォルダの場所(この例の場合は、safeguard-ps-release-7.4 フォルダ)に移動し、次のコマンドを実行します。
.\install-local.ps1
「このシステムではスクリプトの実行が無効になっているため、ファイル xxxxxxx\safeguard-ps-release-7.4\install-local.ps1 を読み込むことができません。」というメッセージが表示された場合は、次のコマンドを実行して実行ポリシー(ExecutionPolicy)を変更したあとで、上記のコマンドを再度実行してください。
Set-ExecutionPolicy Bypass -Scope Process
この例の場合は以下の場所にインストールされました:
C:\Users\<現在のログインユーザー>\Documents\WindowsPowerShell\Modules\safeguard-ps
(任意) safeguard-ps ソースコードの編集
safeguard-ps モジュールをインポートする前に、assets.psm1 ファイルを編集します。
ここではエラーメッセージの文字化けを回避するために UTF-8 エンコードを追加します。この作業は任意です。
インストールした safeguard-ps モジュールの保存ディレクトリ下から assets.psm1 ファイルを見つけます。
assets.psm1 ファイルを任意のエディタで開き、Export-Csv を検索して見つけます。
Export-Csv が含まれる行の末尾に -Encoding UTF8 を追加します(4か所あります)。
Export-Csv が含まれる行は 4か所あります。すべて同様に変更してください。
ファイルを保存して閉じます。
safeguard-ps モジュールのインポート
次のコマンドを実行し safeguard-ps モジュールをインポートします。
Import-Module safeguard-ps
「このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\WindowsPowerShell\Modules\safeguard-ps\xxxxxx\xxxxx.psm1 を読み込むことができません。」というメッセージが表示された場合は、次のコマンドを実行して実行ポリシー(ExecutionPolicy)を変更したあとで、上記のコマンドを再度実行してください。
Set-ExecutionPolicy Bypass -Scope Process
次のコマンドを実行し、safeguard-ps モジュールがインポートされたことを確認します。
Get-Module safeguard-ps
下のような応答があれば、safeguard-ps モジュールがインポートされています。次に進んでください。
Version が 7.1 以降であることを確認してください。
SPP API への接続
safeguard-ps モジュールのインポートが完了したら、Connect-Safeguard コマンドを実行して、SPP API へ接続します。
ここでは、アクセストークンをセッションに保持する方法で SPP API を使用していきます。
次のコマンドを実行します。
Connect-Safeguard -Insecure
アクセストークンをセッションに保持したくない場合は、-NoSessionVariable パラメータを使用してください。詳しくは こちらの記事 を参照してください。
ご利用の環境に合わせて、プロンプトに応答してください。
Username プロンプトで、(少なくとも)資産アクセス許可権限を持つユーザー名を入力してください。以降の作業で、資産を追加します。
この例では、 local プロバイダー(= SPP内蔵データベース) に存在する Admin01 という名前の SPP 管理ユーザーで SPPDEMO という名前の SPP アプライアンスに接続しています。実際のご利用環境に合わせて読み替えてください。
これで SPP API を PowerShell から利用する準備ができました。
テンプレートファイルの作成
管理対象システム(=資産) とそのアカウントを SPP に一括インポートするために、次の 3つのテンプレートファイルを作成します。
資産インポート用テンプレートの作成
資産をインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetImportTemplate 'C:\tmp\asset_template.csv' -All
上の例の場合は、C:\tmp フォルダに asset_template.csv
という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
-All パラメータを使用すると、すべてのオプションがテンプレートファイルに出力されます。テンプレートファイルに出力するオプションを指定することもできます。
アカウントインポート用テンプレートの作成
次に、アカウントをインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetAccountImportTemplate 'C:\tmp\asset_account_template.csv' -All
上の例の場合は、C:\tmp フォルダに
asset_account_template.csv という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
-All パラメータを使用すると、すべてのオプションがテンプレートファイルに出力されます。テンプレートファイルに出力するオプションを指定することもできます。
アカウントパスワードインポート用テンプレートの作成
さいごに、アカウントパスワードをインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetAccountPasswordImportTemplate 'C:\tmp\asset_account_password_template.csv'
上の例の場合は、C:\tmp フォルダに
asset_account_password_template
.csv という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
ここまでの作業で、インポートに使用するテンプレートファイルの作成が完了しました。
CSV ファイルの編集と保存
前の作業で作成したテンプレートファイルをもとに、SPP にインポートする管理対象システム、アカウント、パスワードの情報を CSV ファイルに記入します。
資産インポート用 CSV ファイルの編集と保存
資産インポート用 テンプレートファイルを開き、SPP にインポートしたい管理対象システムの情報を記入します。
プラットフォーム ID の調査
このテンプレートファイルには Platform 列があります。Platform 列には、SPP にインポートする管理対象システムのプラットフォーム ID(または プラットフォーム名)を入力する必要があります。
ここでは、プラットフォーム ID を調査する方法を説明します。
次のコマンドを実行します。
Get-SafeguardPlatform -Fields ID, PlatformType, DisplayName
PlatformType 列と DisplayName 列 を確認し、インポートしたいシステムのプラットフォーム ID を特定します。
特定のプラットフォーム名で結果をフィルタしたい場合は、-Platform パラメータのあとにプラットフォーム名を入力します。例:Get-SafeguardPlatform -Fields ID, PlatformType, DisplayName -Platform "CentOS"
テンプレートファイルに SPP にインポートしたいシステムの情報を1行ずつ記入します。
Platform ごとにサポートされるパラメータ(列)が異なります。Platform でサポートされるパラメータ(列)のみに値を入力してください。サポートされていないパラメータ(列)に値を入力すると、インポートに失敗します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
文字コードを指定できない場合は、一度メモ帳などの文字コードを変換できるテキストエディタで CSV ファイルを開き、UTF8で名前を変えて保存してください。
アカウントインポート用 CSV ファイルの編集と保存
次に、アカウントインポート用テンプレートファイルを開き、管理対象システムのアカウント情報を記入します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
アカウントパスワードインポート用 CSV ファイルの編集と保存
最後に、アカウントパスワードインポート用テンプレートファイルを開き、管理対象システムのアカウントのパスワード情報を記入します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
ここまでで、インポートするファイルの準備が整いました。
CSV ファイルのインポート
管理対象システム(=資産)、アカウント、パスワードを CSV ファイルから SPP にインポートします。
資産のインポート
次のコマンドを実行し、管理対象システムを SPP にインポートします。
Import-SafeguardAsset -Path '<CSVファイルへのパス>'
処理が完了するまでしばらく待ちます。
インポートに成功したことを確認します。
アカウントのインポート
次のコマンドを実行し、管理対象システムのアカウントを SPP に追加します。
Import-SafeguardAssetAccount -Path '<CSVファイルへのパス>'
処理が完了するまでしばらく待ちます。
インポートが成功したことを確認します。
アカウントパスワードのインポート
最後に、次のコマンドを実行し、管理対象システムのアカウントのパスワードを SPP に追加します。
Import-SafeguardAssetAccountPassword -Path '<
CSVファイルへのパス
>'
処理が完了するまでしばらく待ちます。
インポートが成功したことを確認します。
ここまでの作業で、インポート作業が完了しました。
確認
インポートしたシステム(=資産)、アカウント、パスワードが SPP に存在することを確認します。
safeguard-ps コマンドレットを使用して確認する場合
次のようなコマンドを実行して、資産およびアカウントを検索してください。
資産の検索例:Name に 「テスト」 を含む資産を検索
Invoke-SafeguardMethod core GET Assets -Parameters @{ filter = "Name contains 'テスト'"; fields = "Name,NetworkAddress,AssetPartitionName,Platform.DisplayName"}
アカウントの検索例:Description に「テスト」を含むアカウントを検索
Invoke-SafeguardMethod core GET AssetAccounts -Parameters @{ filter = "Description contains 'テスト'"; fields = "Name,Description, Asset.Name,HasPassword"}
SPP Web GUI から確認する場合
「資産」アクセス許可権限を持つユーザーで SPP Web GUI にログインします。
[資産管理] > [資産] を選択します。
資産画面に、インポートしたシステム(=資産)が表示されていることを確認します。
[資産管理] > [アカウント] を選択します。
アカウント画面に、インポートしたアカウントが表示されていることを確認します。
パスワード列に ✔ マークが表示されていることを確認します。パスワード列の ✔ マークは、パスワードが設定されていることを意味します。なお、パスワードの値は、申請/承認ワークフローを介してのみ取得することができます(※ワークフローポリシーの定義に依存します)。
CSV ファイルからインポートしたシステム(=資産)とそのアカウントが SPP に追加されていることを確認できました。
さいごに
今回は、safeguard-ps モジュールを使用して、SPP に複数の管理対象システム(=資産)とそのアカウントを CSV ファイルから一括インポートする方法を紹介しました。
ご利用環境に合わせてお試しください。
SPP 製品紹介ページ
SPP には、この記事で紹介した以外にも機能があります。
その他の特長や機能については、それぞれの製品紹介ページをご参照ください。
SPP 評価版
SPP の評価版は、仮想アプライアンス(OVAまたはVHDXファイル)で提供いたします。
SPP の評価版では、すべての機能を 90日間無料でご利用いただけます。
評価版の利用をご希望いただく場合は、下記お問い合わせフォームから評価ライセンスをお申し込みください。
お問い合わせ
購入前の SPP に関するお問い合わせは、下記お問い合わせフォームからお問い合わせください。