【发布时间】:2021-05-24 19:46:46
【问题描述】:
我使用 Pulumi 创建了一个 Azure KeyVault:
var currentConfig = Output.Create(GetClientConfig.InvokeAsync());
var keyvault = new KeyVault(vaultname, new KeyVaultArgs
{
Name = vaultname,
Location = _resourceGroup.Location,
ResourceGroupName = _resourceGroup.Name,
TenantId = currentConfig.Apply(q => q.TenantId),
SkuName = "standard",
AccessPolicies =
{
new Pulumi.Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs
{
TenantId=currentConfig.Apply(q=>q.TenantId),
ObjectId=currentConfig.Apply(q=>q.ObjectId),
KeyPermissions={"get", "create", "list"},
SecretPermissions={"set","get","delete","purge","recover", "list"}
}, new Pulumi.Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs
}
});
如您所见,我不仅创建了 KeyVault,还添加了当前的 ObjectId 作为访问策略。
紧接着我尝试向 KeyVault 添加一个条目:
new Secret("secret",new SecretArgs
{
Name = "secret",
Value = "value",
KeyVaultId = keyVault.Id
});
当使用用户登录 (az login) 时,这在本地可以正常工作,但是当使用服务原则 (DevOps) 时,Vault-Creation 仍然有效,但由于权限问题,添加密码失败:
azure:keyvault:Secret connectionstrings-blobstorageaccountkey 创建错误:检查现有秘密的存在 “connectionstrings-blobstorageaccountkey”(Key Vault “https://(vaultname).vault.azure.net/”): keyvault.BaseClient#GetSecret:响应请求失败: StatusCode=403 -- 原始错误:autorest/azure:服务返回一个 错误。 Status=403 Code="Forbidden" Message="用户、组或 应用 'appid=;oid=(objectId);iss=https://sts.windows.net/***/' 没有秘密获得密钥保管库的许可 ';location=westeurope'。
我在Pulumi.Azure使用“经典”(非nextgen)变体
【问题讨论】: