【问题标题】:Plug Azure Key Vault Secrets into a Connection String将 Azure Key Vault 机密插入连接字符串
【发布时间】: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/…

标签: powershell azure-keyvault


【解决方案1】:

不,这是不可能的。云服务是一个虚拟机,它不是一个可以使用连接字符串的应用程序。

如果您有持续集成服务器,

在将您的应用部署到云服务之前,运行一个脚本来更改包含您想要在其中拥有的值的连接字符串的值,然后将应用部署到云中。这样,连接字符串只能在您的 CI 服务器中可见,而在您的代码中不可见。

引用自此thread

保护存储帐户的其他可能性。

  • 使用共享访问签名 (SAS) 并使用到期和 定义存储访问策略 (RBAC) 以保护您的数据可以提供帮助 .
  • 可以通过定义一个定期重新生成存储帐户密钥 托管存储帐户,以确保存储帐户的安全。
  • 角色分配的范围必须是存储帐户级别 或更高以允许用户允许或禁止共享密钥访问 用于存储帐户。
  • 只能设置对特定 IP 地址范围的访问 具体的。

请参阅this 了解如何部署托管存储帐户。

参考资料:

storage-keys-powershell

Using SAS/RBAC

security-recommendations

【讨论】:

    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2020-10-26
    • 2020-12-19
    • 2020-01-31
    • 1970-01-01
    • 2020-08-27
    相关资源
    最近更新 更多