【发布时间】:2021-07-14 01:46:44
【问题描述】:
我能够获取在 Azure 存储帐户中创建的 FileShare 的连接字符串。我可以在 PowerShell 脚本中使用它。但是,Microsoft 提供的连接字符串包含访问密钥。我想掩盖这一点并让连接字符串使用 Azure Key Vault。我该怎么做?
$connectTestResult = Test-NetConnection -ComputerName [FileShare] -Port 445 if ($connectTestResult.TcpTestSucceeded) { # Save the password so the drive will persist on reboot cmd.exe /C "cmdkey /add:[FileShare]" /user:"[user]" /pass:"[password]"" # Mount the drive New-PSDrive -Name Z -PSProvider FileSystem -Root "[FileSharePath]" -Persist } else { Write-Error -Message "Error" }
【问题讨论】:
-
您能描述一下您尝试访问文件共享的应用程序类型吗?根据您尝试访问存储的方式,有多种方法可以完成(理想情况下)。如果这是一个持久连接字符串,最好将整个内容存储为秘密,但取决于哪种应用程序很重要。尽管服务团队建议使用 RBAC 权限,但还有 Key Vault 管理的存储密钥。
-
$connectTestResult = Test-NetConnection -ComputerName [FileShare] -Port 445 if ($connectTestResult.TcpTestSucceeded) { # 保存密码,以便驱动器在重启时持续存在 cmd.exe /C "cmdkey /add :
[FileShare]" /user:"[user]" /pass:"[password]"" # 挂载驱动器 New-PSDrive -Name Z -PSProvider FileSystem -Root "[FileSharePath]" -Persist } else { Write-Error -Message “错误”} -
我正在尝试向上述 Powershell 命令添加一个秘密。我应该能够将用户名和密码存储在 Azure Key Vault 中,然后将它们作为变量引用。然后我可以将变量添加到这个命令中。
-
如果您已经有了连接字符串,为什么不只 ACL 启动脚本,以便只有管理员和系统可以读取和执行它?任何可能显示它的事件日志也需要管理员权限。在某些时候,本地计算机将需要用于连接到 Key Vault 的用户令牌或密码(Azure VM 可以使用系统标识)。即使针对 Azure 对 SYSTEM 进行身份验证,也会将持有者令牌存储在 SYSTEM 配置文件中,因此任何管理员都可以访问它。
-
我猜你会使用这样的东西来获取秘密然后使用它docs.microsoft.com/en-us/azure/key-vault/secrets/…