Service 从服务结构访问Azure Key Vault上的机密

Service 从服务结构访问Azure Key Vault上的机密,service,azure-service-fabric,azure-keyvault,Service,Azure Service Fabric,Azure Keyvault,我构建了service fabric应用程序,并希望在Azure Key vault中保护机密,我实现了与应用程序服务相同的步骤,但不起作用,非常感谢您的重播 应用程序服务: 1.在主方法上配置密钥库 2.在应用程序服务上启用分配的托管标识,应用于SF的比例设置。 3.在密钥库上添加访问策略 1)Azure配置(虚拟机规模集+密钥库): 2) 使用C#时获取密钥库机密: //https://www.nuget.org/packages/Microsoft.Azure.KeyVault/ 使用Mi

我构建了service fabric应用程序,并希望在Azure Key vault中保护机密,我实现了与应用程序服务相同的步骤,但不起作用,非常感谢您的重播

应用程序服务: 1.在主方法上配置密钥库 2.在应用程序服务上启用分配的托管标识,应用于SF的比例设置。 3.在密钥库上添加访问策略

1)Azure配置(虚拟机规模集+密钥库):

2) 使用C#时获取密钥库机密:

//https://www.nuget.org/packages/Microsoft.Azure.KeyVault/
使用Microsoft.Azure.KeyVault;
// https://www.nuget.org/packages/Microsoft.Azure.Services.AppAuthentication
使用Microsoft.Azure.Services.AppAuthentication;
公共异步任务GetSecretById(字符串id)
{
//目标密钥库的URL
var keyVaultUrl=”https://az-ure-two20190115153549.vault.azure.net";
var azureServiceTokenProvider=新azureServiceTokenProvider();
var keyVaultClient=新的keyVaultClient(
新建KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret=await keyVaultClient.GetSecretAsync($“{keyVaultUrl}/secrets/{id}”);
返回秘密值;
}

什么步骤?“不起作用”也不能给我们任何帮助你的线索。你能发一些代码吗?如果你希望我们能够帮助你,你需要提供更多的信息。嗨@Peter我刚刚更新了查询,你有什么错误?谢谢@Nicklaus。很高兴看到这个清晰的解释。@ABDULAZIZBIRHANU如果答案解决了您的问题,请将问题标记为已解决
Login-AzureRmAccount # Login into Azure account

$targetRg = "testfabric-rg" # Target resource group name
$targetVmss = "jxewcyinq" # Target virtual machine scale set name
$targetKeyVault = "az-ure-two20190115153549" # Target Key Vault name

# 1. Enable Managed Identity for target Virtual Machine Scale Set
Update-AzureRmVmss `
    -ResourceGroupName $targetRg `
    -VMScaleSetName $targetVmss `
    -IdentityType SystemAssigned
# 2. Retrieve virtual machine scale set
$vmss = Get-AzureRmVmss `
    -ResourceGroupName $targetRg `
    -Name $targetVmss
# 3. Create new Key vault access policy allowing Virtual Machine Scale Set to read secrets by their IDs
Set-AzureRmKeyVaultAccessPolicy `
    -VaultName $targetKeyVault `
    -ObjectId $vmss.Identity.PrincipalId `
    -PermissionsToSecrets Get # set only necessary permissions!
// https://www.nuget.org/packages/Microsoft.Azure.KeyVault/
using Microsoft.Azure.KeyVault;
// https://www.nuget.org/packages/Microsoft.Azure.Services.AppAuthentication
using Microsoft.Azure.Services.AppAuthentication;

public async Task<string> GetSecretById(string id)
{
    // URL of the target Key Vault
    var keyVaultUrl = "https://az-ure-two20190115153549.vault.azure.net";

    var azureServiceTokenProvider = new AzureServiceTokenProvider();

    var keyVaultClient = new KeyVaultClient(
        new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));

    var secret = await keyVaultClient.GetSecretAsync($"{keyVaultUrl}/secrets/{id}");

    return secret.Value;
}