将 Azure Managed Identity 用于部署到 Azure 的应用程序?
Using Azure Managed Identity for app deployed to Azure?
我有一个将部署到 azure 的 azure 函数应用程序。在此应用程序中,我有一些存储在 Key Vault 中的机密,我需要使用 Azure Managed Identity 使用这些机密。我的 类 之一有以下方法,它检索存储在 KeyVault 上的秘密。
public static string GetSecretValue(string secretkey)
{
string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var secretclient = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
return secretclient.GetSecret(secretkey).Value.Value;
}
我有一个环境变量,用于存储我的密钥保管库名称,如代码中所示。我需要的是检查我的步骤是否正确,以便使用 Azure Managed Identity 检索 production/deployment 期间存储在 KeyVault 中的 5 个秘密的值到 Azure,并确保一切正常(请注意,当 运行 在本地一切正常。
到目前为止我所做的如下:
1- 为 Azure Function App 启用托管标识
2- 授予 Azure 功能(选择它作为用户主体)访问 KeyVault 的权限
3- 根据上面显示的方法在 Visual Studio 中配置了 Azure Key Vault
我的问题是,为了使用 Azure Managed Identities,我是否在上面的代码或步骤中遗漏了什么?我应该在 Azure 的应用程序设置中添加任何其他内容还是没有必要?我可以按照显示的方式保留环境变量,还是应该将其存储在 Azure 的其他地方?
我已经在我的环境中进行了测试。
您需要为每个机密添加具有以下值的应用程序设置:
@Microsoft.KeyVault(SecretUri=https://my-key-vault.vault.azure.net/secrets/secretName/secretVersion)
您可以从secret当前版本的secret标识符中找到secret Uri:
我使用下面的代码行调用了秘密:
var secretValue = Environment.GetEnvironmentVariable("secret1", EnvironmentVariableTarget.Process);
我能够成功获取密钥保管库机密
我有一个将部署到 azure 的 azure 函数应用程序。在此应用程序中,我有一些存储在 Key Vault 中的机密,我需要使用 Azure Managed Identity 使用这些机密。我的 类 之一有以下方法,它检索存储在 KeyVault 上的秘密。
public static string GetSecretValue(string secretkey)
{
string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var secretclient = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
return secretclient.GetSecret(secretkey).Value.Value;
}
我有一个环境变量,用于存储我的密钥保管库名称,如代码中所示。我需要的是检查我的步骤是否正确,以便使用 Azure Managed Identity 检索 production/deployment 期间存储在 KeyVault 中的 5 个秘密的值到 Azure,并确保一切正常(请注意,当 运行 在本地一切正常。
到目前为止我所做的如下:
1- 为 Azure Function App 启用托管标识
2- 授予 Azure 功能(选择它作为用户主体)访问 KeyVault 的权限
3- 根据上面显示的方法在 Visual Studio 中配置了 Azure Key Vault
我的问题是,为了使用 Azure Managed Identities,我是否在上面的代码或步骤中遗漏了什么?我应该在 Azure 的应用程序设置中添加任何其他内容还是没有必要?我可以按照显示的方式保留环境变量,还是应该将其存储在 Azure 的其他地方?
我已经在我的环境中进行了测试。
您需要为每个机密添加具有以下值的应用程序设置:
@Microsoft.KeyVault(SecretUri=https://my-key-vault.vault.azure.net/secrets/secretName/secretVersion)
您可以从secret当前版本的secret标识符中找到secret Uri:
我使用下面的代码行调用了秘密:
var secretValue = Environment.GetEnvironmentVariable("secret1", EnvironmentVariableTarget.Process);
我能够成功获取密钥保管库机密