我正在寻找一种安全的方法,让脚本在本地计算机上运行,并在Azure中使用这些命令进行身份验证:
$Password = ConvertTo-SecureString -AsPlainText "my_secret" -Force
$Credential = New-Object System.Management.Automation.PSCredential ("my_client_id", $Password)
$TenantId = "my_tenant_id"
Connect-AzAccount -ServicePrincipal -Credential $Credential -Tenant $TenantId
问题是我不想将密钥保存为脚本中的纯文本。 我找到的唯一解决方案是加密SecureString密码并将其保存在可以使用密钥解密的文件中。 这样,机密永远不会是纯文本。
还有其他"干净"的方法吗?
谢谢!
创建一次凭据对象,并使用 Export-Clixml 为当前用户/计算机存储它。
然后,您可以使用 Import-Clixml 将它们读回脚本中。
样本
# Set credentials
$Credentials = Get-Credential # Set your id and secret
$Credentials | Export-Clixml -Path $PSScriptRootAccess.xml -Confirm:$false
# Read the credentials
$Credentials = Import-Clixml -Path $PSScriptRootAccess.xml