如何在Bicep中引用加密密钥及最新版本?能否用existing获取keyUriWithVersion?
问题解答
可以的,完全能够通过existing关键字引用已存在的密钥保管库和加密密钥,进而获取keyUriWithVersion的值,无需依赖创建密钥时的模块输出。
具体实现步骤
- 首先,用
existing关键字引用目标密钥保管库:resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' existing = { name: 'your-keyvault-name' scope: resourceGroup('your-resource-group-name') // 若密钥保管库在不同资源组,需指定该参数 } - 接着,同样用
existing引用密钥保管库内的目标加密密钥:resource encryptionKey 'Microsoft.KeyVault/vaults/keys@2023-07-01' existing = { parent: keyVault name: 'your-key-name' } - 最后,直接通过
encryptionKey.properties.keyUriWithVersion获取带版本的密钥URI,示例如下:// 将获取到的密钥URI用于存储账户的加密配置 resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = { name: 'your-storage-account' location: keyVault.location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { encryption: { services: { blob: { keyType: 'Account' enabled: true } } keySource: 'Microsoft.KeyVault' keyVaultProperties: { keyUri: encryptionKey.properties.keyUriWithVersion } } } }
注意事项
- 部署Bicep文件的身份(如用户账号、服务主体)必须拥有密钥保管库的
Key Vault Reader或更高权限,否则会因权限不足无法读取密钥属性。 - 若密钥保管库与当前部署资源不在同一订阅或资源组,必须在
existing资源定义中明确指定scope参数。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

