【问题标题】:Azure Synapse Spark pool command to list all secrets in Key VaultAzure Synapse Spark pool 命令列出 Key Vault 中的所有机密
【发布时间】:2022-01-19 02:09:10
【问题描述】:

希望你一切顺利。

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

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

【问题讨论】:

    标签: azure apache-spark azure-keyvault azure-synapse


    【解决方案1】:

    很遗憾,没有可用于列出 Key Vault 中所有机密的命令。

    你可以在how to use Access Secret from vault using Synapse pyspark notebook的MS问答平台上查看我的答案。

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

    【讨论】:

      【解决方案2】:

      您可以通过其 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
      

      使用splitlast 函数获取实际的秘密名称,例如

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

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

      【讨论】:

        猜你喜欢
        • 2020-03-24
        • 1970-01-01
        • 2020-12-19
        • 2023-04-05
        • 2022-12-02
        • 2021-02-13
        • 2020-08-27
        • 2020-02-11
        • 2020-04-26
        相关资源
        最近更新 更多