知識マップ: PowerShellでの資格情報の安全な扱い ── 平文パスワードをスクリプトから追放する

記事「PowerShellでの資格情報の安全な扱い ── 平文パスワードをスクリプトから追放する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

PowerShellスクリプトに平文で書かれたパスワードは、Git履歴・共有フォルダ・ログといったコピーが増える経路すべてが漏えい経路になる。対話実行はGet-CredentialでPSCredentialとして受け取れば足りるが、無人実行ではExport-ClixmlによるDPAPI暗号化(同一ユーザー・同一マシン限定)が最小構成の実用解になり、秘密が複数あればSecretManagement/SecretStoreやAzure Key Vaultでの一元管理へ進む。ただしSecretStoreはgMSAのような管理されたアカウントでは動作しない。最優先の現実解は資格情報そのものを持たない設計で、実行アカウントにgMSAを使えばパスワード管理をOSに任せられ、クラウド資源はマネージドIDへ寄せられる。加えてスクリプトブロックログには資格情報が記録されうるため、保護されたイベントログの併用も設計に含める必要がある。

PowerShellの資格情報管理の知識マップ平文パスワードのリスクを起点に、Get-Credential・PSCredential・SecureStringによる受け渡し、Export-ClixmlのDPAPI保存、SecretManagement・SecretStore・Azure Key Vaultによる一元管理、gMSAとマネージドIDによる資格情報を持たない設計、スクリプトブロックログと保護されたイベントログの関係を示す図利用する実装を担う利用する推奨される対応用いるのは非推奨利用する前提とする推奨される対応利用する利用する推奨される対応前提とする両立しない推奨される対応前提とする利用する推奨される対応前提とする原因になり得る原因になり得る軽減するで確認できる利用する推奨される対応PowerShell平文パスワードの埋め込みリスクPSCredentialGet-CredentialSecureStringタスクスケジューラの無人実行Export-Clixml(資格情報ファイル)DPAPISecretManagementモジュールSecretStoreモジュールAzure Key VaultgMSA(group Managed Service Account)Active Directory(AD DS)マネージドIDMicrosoft Entra IDログ・トランスクリプトへの資格情報の漏えいスクリプトブロックログ保護されたイベントログ(Protected Event Logging)PSScriptAnalyzer

概念間の関係(全24件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

PowerShell
オブジェクトパイプラインとエラー処理機構を持つ、Microsoftが最も堅牢で最新のWindows自動化に推奨するコマンドラインシェル兼スクリプト言語。
平文パスワードの埋め込みリスク
パスワードをスクリプトに平文で書くことで、Git履歴・共有フォルダ・ログなどコピーが生まれる経路すべてが漏えい経路になる問題。
Get-Credential
ユーザー名とパスワードの入力を促し、PSCredentialオブジェクトを返すコマンドレット。
PSCredential
ユーザー名とSecureStringのパスワードをひとまとめにした.NET/PowerShellの資格情報オブジェクト。
Export-Clixml(資格情報ファイル)
資格情報などのオブジェクトをXMLファイルへ保存するコマンドレット。Windowsでは保存内容がDPAPIで暗号化され、保存したユーザー・マシンでしか復号できない。
タスクスケジューラの無人実行
指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。
SecretManagementモジュール
秘密の保管場所(ボールト)への統一インターフェースを提供するPowerShellモジュール。実際の保存は拡張ボールトが担う。
SecretStoreモジュール
ローカルファイルに暗号化保存するMicrosoft製の拡張ボールト。SecretManagementの既定のボールト実装として使われる。
gMSA(group Managed Service Account)
パスワードの自動生成・自動更新とSPN管理の簡素化を提供するActive Directoryドメインのサービスアカウント。ドメインコントローラー側のKDSルートキーの準備を前提とする。
マネージドID
Azure上のリソースに割り当てたEntra ID上のIDを使い、資格情報を保存せずにトークンを取得して認証する仕組み。
スクリプトブロックログ
PowerShellが処理する全スクリプトブロックの内容をイベントログに記録する機能。
保護されたイベントログ(Protected Event Logging)
対象のイベントログの内容をCMS(暗号メッセージ構文)の公開鍵で暗号化して書き込み、秘密鍵を持つ場所でだけ復号できるようにする仕組み。
Azure Key Vault
秘密情報を安全に保管できるAzureのシークレット管理サービスで、Power Automateの資格情報の保管先として設定できる。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。