簡體   English   中英

訪問 Azure Function 中的 Azure Key Vault 機密

[英]Access Azure Key Vault secret in Azure Function

我正在構建 Azure Function 中的 python 由事件網格事件觸發,應該能夠從 Kay Vault 收集秘密。

我將系統分配的托管標識添加到我的 Function 應用程序中,然后我能夠在 Key Vault 訪問策略中選擇我的應用程序。 我給了它如下權限:

函數應用的權限

(我在這一次嘗試了不同的組合)

我還參考提到的密鑰庫提供了新的應用程序設置。

密鑰庫參考

不幸的是,當我嘗試從代碼中檢查這個值時,我無法得到這個。

logging.info(os.environ)

當我添加另一個應用程序設置時,只需使用純文本就可以了。 我將不勝感激任何其他可以做的想法。

您可以使用以下助手來獲取值

namespace AccessKeyVault
{
    public static class GetKeyVaultValues
    {
        [FunctionName("GetKeyVaultValues")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            string linkKeyVaultUrl = $"https://keyVaultname.vault.azure.net/secrets/";
            string keyvaultKey = $"KeyVaultKey";
            var secretURL = linkKeyVaultUrl + keyvaultKey;

            //Get token from managed service principal
            var azureServiceTokenProvider = new AzureServiceTokenProvider();
            var kvClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
            try
            {
                var clientIdRecord = await kvClient.GetSecretAsync(secretURL).ConfigureAwait(false);

                string KeyvaultValue = clientIdRecord.Value;

                return req.CreateErrorResponse(HttpStatusCode.OK, "Key vault secret value is  :  " + KeyvaultValue);
            }
            catch (System.Exception ex)
            {

               return req.CreateResponse(HttpStatusCode.BadRequest, "Key vault value request is not successfull");
            }

        }
    }
}

我不知道你想用os.environ得到什么。 我用 function 測試它可以為我工作。

在 function 中檢索鍵值,如果你已經在 appsettings 中設置了它,你可以使用Environment.GetEnvironmentVariable("secrest name", EnvironmentVariableTarget.Process)來實現它。

在此處輸入圖像描述

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM