繁体   English   中英

Azure DevOps 管道 - 构建并推送 Docker 图像到 Azure 容器注册表,具有 restricted.network 访问权限

[英]Azure DevOps Pipeline - build and push Docker Image to Azure container registry with restricted network access

我在 Azure DevOps 中有一个管道,它应该构建一个 Docker 图像并将其推送到一个 Azure 容器注册表。 因此,我有一个服务连接(类型:docker 注册表)以授权管道推送。 如果我删除容器注册表中的 .network 限制,一切都会好起来的。

一旦我想限制 .network 访问,它就不再工作了,我在 docker 任务的管道 output 中得到“拒绝”。 我还尝试添加 Azure DevOps IP 范围(13.107.43.0/24、13.107.42.0/24、13.107.9.0/24、13.107.6.0/24)。

知道有什么问题吗?

实际上,当您使用 Pipeline 时,所有任务都在代理中运行。 还有代理商的网络,你可以看看这里 如您所见,您需要允许代理的 IP 地址,并且 IP 范围随时间而变化。 每周您都需要在组织区域的防火墙规则中添加新的 IP 地址。 所以有点麻烦。

与控制访问IP地址相比,我建议您控制ACR凭证的权限。 如果一个人没有足够的权限,即使他可以访问ACR,他也不能做需要特殊权限的事情。 以下是有关权限 oo ACR 的详细信息。

您可以在推送之前在管道中动态添加代理 IP,然后执行等效的删除操作:

       - task: AzureCLI@2
         inputs:
           azureSubscription: $(ACR_SERVICE_CONNECTION_NAME)
           scriptType: pscore
           scriptLocation: inlineScript
           inlineScript: |
             # Open firewall on ACR for IP of current agent
             $agentIp = (New-Object net.webclient).downloadstring("http://checkip.dyndns.com") -replace "[^\d\.]"
             az acr network-rule add -n YourACRName--ip-address $agentIp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM