您可以通过其 REST API 和 GetSecret 方法调用 Azure Key Vault (AKV),该方法以完整 URL 形式返回机密列表。您可以使用 Synapse 管道中的 Web 活动来调用它。示例设置:
| Setting |
Value |
Notes |
| URL |
{vaultBaseUrl}/secrets?api-version=7.2 |
See below for sample URL |
| Method |
GET |
|
| Authentication |
Managed Identity |
|
| Resource |
https://vault.azure.net |
|
示例 Key Vault URL
https://yourKeyVault-akv.vault.azure.net/secrets?api-version=7.2
示例结果:
{
"value": [
{
"id": " https://yourKeyVault-akv.vault.azure.net/secrets/somepassword ",
"attributes": {
"enabled": true,
"created": 1635948403,
"updated": 1635948403,
"recoveryLevel": "Recoverable+Purgeable",
"recoverableDays": 90
},
"tags": {}
},
{
"id": " https://yourKeyVault-akv.vault.azure.net/secrets/someusername ",
"attributes": {
"enabled": true,
"created": 1635949171,
"updated": 1635949171,
"recoveryLevel": "Recoverable+Purgeable",
"recoverableDays": 90
},
"tags": {}
}
],
您可以使用 For Each 活动遍历值,例如 Items 值将是:
@activity('Web Get AKV Secrets').output.value
参考 For Each 活动中的个人秘密,如下所示:
@item.id
使用split 和last 函数获取实际的秘密名称,例如
@last(split(item().id, '/'))
然后,您可以将个人秘密名称或集合作为参数传递到 Synapse 笔记本中。