「Dell Command PowerShell Providerセキュア パスワード機能」
Summary: Dell Command | PowerShell Provider (DCPP)のセキュア パスワード機能, Dell Command | PowerShell Provider (DCPP) Secure Password feature, ConvertTo-SecureString, ConvertFrom-SecureString
Instructions
対象製品:
- Dell Command | PowerShell Provider
安全なパスワードの背後にある概念は、運用スクリプトでは、重要なパスワードをプレーンビューとして渡さないことです。これは深刻なセキュリティの欠如です。そのため、PowerShell を使用すると、パスワードを保護するか、少なくともパスワードの可視性を低下させることができます。まず、安全な文字列の一般的な側面について説明し、次にDCPPがPowerShellの本質的な機能を活用してパスワードを保護する方法について説明します。
コンソールでユーザーからユーザー名とパスワードを読み取るとします。ユーザー名は通常、セキュリティを必要とせず、すべての人に表示される可能性があることが知られています。ただし、パスワードについては、見知らぬ人にユーザーのパスワードを知られたくありません。この要件は、次のコマンドを使用して簡単に行うことができます。
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
上記は、パスワードなどの重要な情報の安全性を高めるために、セキュリティを強化する方法の概要です。前例では、変数「$pass」は次の型となります。 System.Security.SecureStringの詳細を確認してください。次に、DCPP の側面に触れる前に、セキュリティで保護されたフィールドを容易にするために PowerShell に用意されている他の 2 つの広く使用されているコマンドレットを紹介します。
その2つのコマンドは、 ConvertTo-SecureString と ConvertFrom-SecureStringの詳細を確認してください。 ConvertTo-SecureString は、プレーン テキストを次に変換します。 System.Security.SecureStringの詳細を確認してください。以下に例を示します。
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
前例では、プレーン テキスト P@assword1 が次の型に変換されます。 System.Security.SecureStringの詳細を確認してください。これはどちらかというと情報として提供されており、広く使用されていない可能性があります。
次のコマンドレット ConvertFrom-SecureString は、より広く使用されているコマンドレットで、セキュリティで保護された文字列を暗号化された標準文字列に変換するために使用されます。この ConvertTo-SecureString の主な制限事項は、その出力を後で使用するためにファイルに直接書き込むことができないということです。以下を使用する必要があります。 ConvertFrom-SecureString を使用して System.Security.SecureString を便利にファイルに保存できる暗号化された標準文字列に変換する必要があります。
プレーンテキストを変換しています P@ssword1 をセキュリティで保護された文字列に変換し、その出力を ConvertFrom-SecureString にパイピングして、安全かつ便利にファイルに保存できる暗号化された文字列を取得します。
例として、管理者パスワードが設定されていて、ファイルに保存する必要があるかどうかをコンピューターで見てみましょう。これは次を使用して行います。
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
このコマンドは、この管理者パスワードを取得して、次のようなセキュア オブジェクトとして変数に戻すことができます。
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
次に、DCPPでセキュア パスワードを活用する方法について考えてみましょう。DCPPでは、ユーザーのコンピューターにシステム パスワードまたは管理者パスワードが設定されている場合、すべての set コマンドには、それぞれのパスワードを渡す必要があります。したがって、このパスワードをプレーン テキストとして提供すると、セキュリティに違反します。パスワードは System.Security.SecureStringの詳細を確認してください。また、 SecureString パスワードには、 -PasswordSecure スイッチを使用して渡す必要があります。通常の –Password スイッチは使用できません。以下に、ユーザーが AdvancedBatteryChargeCfg の出力を Disabled に設定して SecureString パスワードを渡す例を示します。
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
ここで、「$pass」はシステム パスワードと管理者パスワードを保持し、次の型である必要があります。 System.Security.SecureStringの詳細を確認してください。上記の議論と同様に、あなたは読むことができます $pass を次のように読み取れます。
$pass = Read-Host "Enter system/admin password" –AsSecureString
保存できます $pass をファイルに保存できます。
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Additional Information
関連記事: