【问题标题】:Unable to access keyvault from Azure DevOps from a different resource description无法通过不同的资源描述从 Azure DevOps 访问 keyvault
【发布时间】:2020-04-12 02:44:17
【问题描述】:

我正在尝试构建我的 DevOps 管道以部署 DataFactory、Databricks Notebooks 和 Azure 数据仓库,

我为 Dev 和 Prod 设置了资源订阅。部署到 Prod 比看起来更棘手。

我的 keyvault 对 Target DataFactory 的 Secret 和 Keys 具有 GET/LIST 权限。

https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment

我已经使用上述指南在 prod 中设置了我的目标数据工厂 - 它在所有连接字符串设置和 keyvault 权限设置下都正确设置。

但我被困在这部分:

向 Azure Pipelines 代理授予权限 Azure Key Vault 如果适当的权限,任务可能会失败并出现拒绝访问错误 不存在。下载该版本的日志,并找到 .ps1 使用命令向 Azure Pipelines 授予权限的文件 代理人。可以直接运行命令,也可以复制主体 文件中的 ID 并在 Azure 中手动添加访问策略 门户网站。 Get 和 List 是所需的最低权限。

当我部署我的版本时,我在 KeyVault 任务中收到以下错误:

指定的 Azure 服务连接需要对选定的密钥保管库具有获取、列出机密管理权限。要设置这些权限,请从构建/发布日志下载 ProvisionKeyVaultPermissions.ps1 脚本并执行它,或者从 Azure 门户设置它们

我已将此 power shell 脚本 ProvisionKeyVaultPermissions.ps1 添加到我的仓库并将其添加到我的任务中,但它只是永远运行?不确定我是否在这里遗漏了什么。

希望这很清楚/请询问任何其他信息。

【问题讨论】:

    标签: azure azure-devops azure-pipelines


    【解决方案1】:

    我想知道是不是缺少权限的 DevOps 服务连接。 您可以从控制台检查保管库的访问策略。您应该将您的服务连接视为一个应用程序;它需要 GET 和 LIST 权限,正如您的以下文件所说的那样。我的理解是,这些是部署您的代码的帐户的权限,而不是运行您的代码的帐户。

    【讨论】:

    • 愚蠢的问题,但是服务连接是指我的 DevOps 管道的名称吗?关于我自己的 DF,我事先设置了这些权限,所以我认为不是这样?
    • 嗨。服务连接是指您从 DevOps 设置的连接(您可以从 DecOps 的项目设置中查看服务连接)。这将使用 Azure AD 创建企业应用程序和服务主体,以便 DevOps 可以部署到您的订阅。它与数据工厂的权限不同(这是我假设 DF 的意思)。
    猜你喜欢
    • 2018-04-18
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2023-04-10
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多