用于列出 Key Vault 中所有机密的 Azure Synapse Spark 池命令

Azure Synapse Spark pool command to list all secrets in Key Vault

祝你一切顺利。

Spark 实用程序中是否有命令可以查看 Azure Synapse Spark Notebook 中 Azure Key Vault 运行 中的所有机密?

https://docs.microsoft.com/en-us/azure/synapse-analytics/spark/microsoft-spark-utilities?pivots=programming-language-python#credentials-utilities

我可以像这样引用 Secret mssparkutils.credentials.getSecret('azure key vault name','secret name') 但我可以列出所有 Secret 吗? 谢谢

Unfortunately, there is no command available to list all secrets in Key Vault.

你可以在how to use Access Secret from vault using Synapse pyspark notebook.

的微软问答平台上查看我的回答

如果您能在我们的 Azure Synapse 反馈渠道上分享反馈,我们将不胜感激。这将开放给用户社区进行投票和评论。这使我们的产品团队能够根据我们现有的功能积压有效地确定您的请求的优先级,并深入了解实施建议功能的潜在影响。

您可以通过其 REST API 和 GetSecret 方法调用 Azure Key Vault (AKV),其中 returns 完整 URL 形式的机密列表。您可以在 Synapse 管道中使用 Web activity 来调用它。示例设置:

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

密钥保管库示例 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 activity 遍历值,例如 Items 值将是:

@activity('Web Get AKV Secrets').output.value

像这样引用 For Each activity 中的个人秘密:

@item.id

使用splitlast函数得到实际的secret名称,如

@last(split(item().id, '/'))

然后您可以将个人秘密名称或集合作为参数传递到 Synapse 笔记本中。