Azure DevOps管道将Docker映像推送到容器注册表被拒绝

Azure DevOps管道将Docker映像推送到容器注册表被拒绝,azure,docker,azure-devops,azure-container-registry,Azure,Docker,Azure Devops,Azure Container Registry,我目前正在尝试使用Azure管道构建Docker映像并将其推送到Azure容器注册表。我有一个服务连接设置,但构建失败,拒绝。我怀疑这是因为我的容器注册表设置为只允许来自选定网络,并且仅限于几个IP。我通过暂时允许所有网络验证了这一点,然后构建/推送成功 有没有办法让Azure管道成功地将Docker映像推送到只允许选定网络的容器注册表?我以为这就是服务连接的目的 请确保您的服务连接具有AcrPush 如果需要,您可以在此处进行检查或添加: 您将在“您的组织您的项目”的名称下找到您的连接。请确保

我目前正在尝试使用Azure管道构建Docker映像并将其推送到Azure容器注册表。我有一个服务连接设置,但构建失败,拒绝。我怀疑这是因为我的容器注册表设置为只允许来自选定网络,并且仅限于几个IP。我通过暂时允许所有网络验证了这一点,然后构建/推送成功

有没有办法让Azure管道成功地将Docker映像推送到只允许选定网络的容器注册表?我以为这就是服务连接的目的


请确保您的服务连接具有AcrPush

如果需要,您可以在此处进行检查或添加:


您将在“您的组织您的项目”的名称下找到您的连接。

请确保您的服务连接已成功

如果需要,您可以在此处进行检查或添加:


您将在“您的组织您的项目”的名称下找到您的连接。恐怕您是对的。可能的原因是您将其设置为select networks,并且没有添加DevOps的IP地址以允许流量。据我所知,DevOps的IP地址会随着时间的推移而改变,描述如下:

在某些设置中,您可能需要知道IP地址的范围 部署了代理。例如,如果您需要授予托管 代理通过防火墙进行访问,您可能希望限制该访问 按IP地址。因为Azure DevOps使用Azure全球网络,所以IP 范围随时间而变化

因此,您需要允许IP范围,而不是单个IP地址。而且这不是一种安全的方式。根据我的经验,最安全的方法是控制所有人的访问权限,而不是网络。您可以创建多个服务主体,并授予它们不同的角色以控制权限。例如,使用角色AcrPull,它只有拉取图像的权限。有关角色的更多详细信息。您甚至可以控制存储库上的权限,这是关于它的更多信息


顺便说一下,选择网络的防火墙,我认为它更适合Azure内部的资源,为此,您可以使用来实现它。

恐怕您是对的。可能的原因是您将其设置为select networks,并且没有添加DevOps的IP地址以允许流量。据我所知,DevOps的IP地址会随着时间的推移而改变,描述如下:

在某些设置中,您可能需要知道IP地址的范围 部署了代理。例如,如果您需要授予托管 代理通过防火墙进行访问,您可能希望限制该访问 按IP地址。因为Azure DevOps使用Azure全球网络,所以IP 范围随时间而变化

因此,您需要允许IP范围,而不是单个IP地址。而且这不是一种安全的方式。根据我的经验,最安全的方法是控制所有人的访问权限,而不是网络。您可以创建多个服务主体,并授予它们不同的角色以控制权限。例如,使用角色AcrPull,它只有拉取图像的权限。有关角色的更多详细信息。您甚至可以控制存储库上的权限,这是关于它的更多信息


顺便说一句,选择网络的防火墙,我认为它更适合Azure内部的资源,为此,您可以使用来实现它。

通常可以在防火墙中配置访问。您可能必须为该服务连接添加专门的规则。我没有对此进行测试,因为这需要高级SKU。通常可以在防火墙中配置访问。您可能必须为该服务连接添加专门的规则。我没有测试过,因为这需要高级SKU。这就是我的想法。我真的不想做一个IP范围,所以我会去服务的主要路线。谢谢我就是这么想的。我真的不想做一个IP范围,所以我会去服务的主要路线。谢谢这不是对这个具体问题的回答。将映像推送到ACR有两种不同的授权检查。一个用于必须具有AcrPush的服务主体,另一个用于检查是否允许IP的防火墙规则。问题中的问题是:防火墙规则。这不是对这个特定问题的回答。将映像推送到ACR有两种不同的授权检查。一个用于必须具有AcrPush的服务主体,另一个用于检查是否允许IP的防火墙规则。问题的核心是:防火墙规则。