我正在编写一个PowerShell脚本,每隔几个月,第三方应用就会自动调用以执行以下操作:
[System.Web.Security.Membership]::GeneratePassword()
随机生成一个密码,然后将该密码与Export-PfxCertificate
和OpenSSL的passin
一起使用。安全地执行此操作的最佳方法是什么?
据我所知,#1没有任何问题,但我在网上阅读的有关#2的所有内容都建议:
答案 0 :(得分:0)
您是否已签出Azure Key Vault或类似内容?
如果您走这条路线,请查看Az模块(Windows PowerShell 5.1或PowerShell Core)。 Az.KeyVault子模块具有许多用于库的功能。
编辑:为了解决安全问题,我们对系统了解不多。但是,这些是我要研究的东西:
如果这些措施到位,则您可能会发现实际系统已受到威胁,攻击者可能会在允许的窗口内的允许范围内进行意外更改。那时的风险相当低,比不实施此类控制要好得多。
这些可以潜在地在应用程序内实现,或者如果可以与应用程序集成,则可以通过第三方信任的身份验证源实现。
答案 1 :(得分:0)
对于#2,有很多资源/文章涉及使用PowerShell时如何保护凭据。
从Windows凭据管理器开始...
Install-Module -Name "CredentialManager"
Get-Command -Module "CredentialManager"
$Target = "YourServerName"
$UserName = "Administrator"
$Secure = Read-host -AsSecureString
New-StoredCredential -Target $Target -UserName $UserName -SecurePassword $Secure -Persist LocalMachine -Type Generic
Get-StoredCredential -Target "servername" –AsCredentialObject
Remove-StoredCredential -Target "servername"
...然后查看其他方法。有关其他方法,请参阅此问答。 Passwords in powershell logging
至于...
如果服务器受到攻击
...如果您的系统中有这么一个邪恶的人,那么您可以这样做:Ten Immutable Laws Of Security (Version 2.0)