スクリプトから使う資格情報を、安全に管理する機能です。スクリプトの中にパスワードを直接書かずに済みます。
Credential Exchangeの目的
スクリプトで管理者権限が必要な処理を行う場合、資格情報が必要になります。これをスクリプトに直接書くと、深刻な問題が生じます。
| 直書きした場合の問題 | 影響 |
|---|---|
| スクリプトを閲覧できる人に見える | 権限の分離が崩れる |
| パスワード変更時に全スクリプトを修正 | 修正漏れで処理が止まる |
| 履歴に残る | 変更しても過去の記録から読める |
| 監査で指摘される | 情報管理の不備として扱われる |
Credential Exchangeを使うと、資格情報を別に管理し、スクリプトからは参照するだけになります。
【注意】 既にスクリプトにパスワードを直書きしている場合、Credential Exchangeへ移行するだけでは不十分です。過去の記録に残っている可能性があるため、該当するパスワード自体を変更してください。
資格情報の登録
資格情報はOrganizationの設定画面にあるCredentialsで管理します。

ListとDefaultsの2タブ。Add Credentialから追加する一覧にはName、Type、Last Updated、Defaultsが表示されます。
Typeで用途が分かります。SNMPの認証情報やドメインの資格情報など、種類ごとに登録します。ネットワーク機器の監視で使うSNMPの情報も、ここで管理します。
Last Updated列を定期的に確認してください。長期間更新されていない資格情報は、パスワードの変更が反映されていない可能性があります。
Defaultsタブでは、種類ごとの既定値を指定できます。同じ資格情報を繰り返し選ぶ手間が省けます。
登録する際は、用途が分かる名前を付けてください。「管理者アカウント」ではなく「ファイルサーバー保守用」のように、どこで使うものかを明記します。
【運用のポイント】 資格情報がOrganization単位で管理される点はMSPで重要です。顧客ごとに資格情報が分離されるため、他の顧客の情報が混在しません。ただし共通で使う資格情報がある場合は、Organizationごとに登録する手間が発生します。
スクリプトからの利用
スクリプトの中では、資格情報そのものではなく参照する形で記述します。実行時にAgentが値を取得して使います。
これにより、スクリプトを閲覧できる人が資格情報を見ることはできません。スクリプトの作成者と、資格情報を管理する人を分けられます。
アクセス権限の設計
誰がどの資格情報を使えるかを設計します。考え方は最小権限の原則と同じです。
| 資格情報 | 使わせる範囲 |
|---|---|
| ドメイン管理者相当 | ごく限られた担当者のみ |
| サーバー保守用 | インフラ運用担当 |
| 特定アプリの管理用 | そのアプリの担当者 |
| 読み取り専用のアカウント | 幅広く許可していい |
権限の高い資格情報ほど、使える範囲を狭くしてください。設計の考え方は権限設計の考え方を参照してください。
運用上の注意
パスワードの変更に追随する
登録した資格情報のパスワードが変更されたら、Credential Exchange側も更新してください。更新を忘れると、それを使うスクリプトが一斉に失敗します。
パスワードを定期変更する運用の場合、変更手順にCredential Exchangeの更新を組み込んでください。
使われなくなった資格情報を削除する
不要になった資格情報を残さないでください。使われていない資格情報は、管理の対象から外れて放置されます。
四半期ごとの棚卸しで、次を確認してください。
| 確認項目 | 対応 |
|---|---|
| 使われていない資格情報 | 削除する |
| 退職者に紐づくアカウント | 削除または付け替える |
| 用途が不明なもの | 調査して記録するか削除する |
| パスワードが長期間変更されていないもの | 変更を検討する |
監査への対応
資格情報の管理は、監査で確認される項目です。次を説明できる状態にしておいてください。
- どの資格情報が登録されているか
- それぞれ誰がアクセスできるか
- どのスクリプトで使われているか
- 最後にパスワードを変更したのはいつか
【運用のポイント】 資格情報の一覧と用途を、別途の管理表にも残してください。NinjaOne上では「誰がアクセスできるか」は分かりますが、「なぜその権限が必要か」は記録されません。監査ではこの理由が問われます。
代替手段の検討
資格情報を使わずに済むなら、その方が安全です。実装前に次を検討してください。
| 状況 | 代替手段 |
|---|---|
| ローカルの処理を実行したい | システム権限での実行で足りないか |
| ファイル共有にアクセスしたい | 別の方法で配布できないか |
| APIを呼び出したい | トークン方式に変更できないか |
システム権限で実行できる処理に、わざわざ資格情報を使う必要はありません。まずRun asの設定で解決できないかを確認してください。