小编MAK*_*MAK的帖子

安全地访问 Key Vault 机密

我在 Powershell 中编写了一个程序,该程序在 Azure Functions 应用程序中按计划运行。为了避免硬编码凭据,我创建了一个 Azure Key Vault 来存储机密。我在 Azure Function 中创建了一个托管标识,在 Azure Key Vault 中创建了机密,然后在 Azure Function 中创建了应用程序设置,使用 URL 指向 Azure Key Vault 中的机密。该程序引用应用程序机密 (APPSETTING) 并按预期运行:

    $uSecret = $ENV:APPSETTING_SecretUsername 
    $pSecret = $ENV:APPSETTING_SecretPassword 
    $sasSecret = $ENV:APPSETTING_SecretSAS
    $securePassword = ConvertTo-SecureString -String $pSecret -AsPlainText -Force
    $UserCredential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $uSecret, $securePassword
    
    $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Run Code Online (Sandbox Code Playgroud)

但是我注意到,如果我通过 Windows Powershell(以管理员身份运行)在我的本地计算机上运行相同的程序,并按如下方式修改上述行,程序运行良好 - 这意味着它可以访问 Office 365 和数据湖存储:

    $uSecret = (Get-AzKeyVaultSecret -VaultName 'auditkeyvault' -Name 'SecretUsername').SecretValueText 
    $pSecret …
Run Code Online (Sandbox Code Playgroud)

security powershell azure-keyvault azure-function-app

2
推荐指数
1
解决办法
480
查看次数