SecretManagement のセキュリティは、ホストする拡張機能コンテナーによって異なります。 これらのボールトは、シークレットの保存と取得の実際の機能を実行します。 SecretManagement は、既定ではシークレットをプレーン テキストとして返しません。 デフォルトでは、ユーザーが AsPlaintext スイッチを使用してシークレットをプレーンテキストとして明示的に要求しない限り、テキストシークレットは SecureString オブジェクトとして返されます。
既知の信頼できるソースによって公開され、有効なパッケージ署名を持つ拡張ボールトモジュールのみを使用することが重要です。
SecretStore 拡張コンテナーは、.NET 暗号化 API を使用してシークレット データを暗号化し、ローカル ファイル システムに格納します。 ストア構成情報とシークレットメタデータも暗号化された形式で保存され、不注意による開示や不注意な読み取りを防ぎます。
シークレットストレージファイルは、ファイルの破損または改ざんを検出するために、暗号化ハッシュによって検証されます。 この情報はすべて、単一の暗号化キーとオプションのパスワードによって保護されます。
SecretStore のデフォルト設定では、パスワードが必要です。 ただし、パスワードは、 SecretStore ボールトを最初に設定するときに指定し、ストアにアクセスするときに再度指定する必要があるため、管理がより困難です。
セキュリティを最大限に高めるには、ローカルマシンに保存されていないパスワードを使用して、マシンが侵害された場合に検出できないようにします。
SecretStore 構成には、セッション中にコンテナーがロック解除されたままになる時間を制限する PasswordTimeout が含まれています。
タイムアウト値が -1 の場合、ボールトはセッションの全期間にわたってロック解除されたままになります。
これは安全性が低い可能性がありますが、1 つのセッションで無人スクリプトを実行する場合に役立ちます。 ボールトは Unlock-SecretStoreを使用してロックが解除され、セッション全体でロックが解除されたままになります。 スクリプトが完了すると、セッションは閉じられます。
パスワード認証要件を完全にオフにすることもできます。 この場合、ログインしたアカウントからシークレットにアクセスするためにパスワードは必要なく、はるかに便利です。 シークレットは暗号化されたままですが、シークレットを復号化するためのキーは、現在のユーザーアカウントのファイルシステムに保存されます。 キーは、OS ファイル・システム・セキュリティーによってのみ保護されます。 キーは、そのユーザー アカウントが所有するファイルに対する読み取り権限を持つ他のアカウントによって検出される可能性があります。 したがって、パスワードなしの設定は、保存されたシークレットの強力なセキュリティ保護を必要とするシステムには推奨されません。
PowerShell