阿里云镜像仓库授权问题

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在使用公有云镜像仓库的时候,我们总有一种需要,即把命名空间或者仓库分配给不同的子账号,让子账号能够管理。那么在阿里云上是如何做到的呢?本文就先实践一下。一、首先通过ram控制台创建一个子账号 二、创建好子账号以后我们用子账号登录控制台第一次会要求我们创建仓库密码,这个密码就是我们登录仓库拉取镜像的.

在使用公有云镜像仓库的时候,我们总有一种需要,即把命名空间或者仓库分配给不同的子账号,让子账号能够管理。那么在阿里云上是如何做到的呢?本文就先实践一下。

一、首先通过ram控制台创建一个子账号

image

二、创建好子账号以后我们用子账号登录控制台

image
第一次会要求我们创建仓库密码,这个密码就是我们登录仓库拉取镜像的凭证
image
但是我们会发现用子账号登录之后完全看不到我们的主账号的命名空间,那么要怎么做才能看到呢?

三、首先我们说说镜像服务的构成

1.代码源
image
在这里主要是绑定代码仓库,代码仓库对镜像仓库授权之后,镜像仓库能拉取到代码,这里的代码主要是dockerfile
用于构建镜像
2.命名空间
image
这里我们理解成项目,比如我可以创建product pre-product dev 作为线上、预发布、开发环境的命名空间
命名空间没有地域区分
3.镜像仓库
image
镜像仓库就是存放我们镜像的地方了,比如我们可以在product线上环境的命名空间下创建
nginx apache tomcat php nodejs java 等镜像用于构建服务,如果有版本的区别,比如我线上的nodejs镜像有需要node8和node6,怎么办呢? 这个时候我们可以通过tag来加以区别,通过修改dockerfile,保存两个版本的nodejs的镜像在仓库里面,在k8s部署时候根据tag取不同版本的基础环境作为无状态服务。
注意:仓库是有地域区分的,在香港创建的仓库在北京是地域下是看不到的哈,如果有人说仓库被阿里云删了,请一定要看看自己是不是选错地域了???

四、授权

1.假如我要子账号登录 Registry后 pull所有该命名空间下的镜像,可以通过OpenAPI 查看到该命名空间的信息及该命名空间下所有镜像仓库的相关信息

{
  "Statement": [
    {
      "Action": [
        "cr:Get*",
        "cr:List*",
        "cr:PullRepository"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cr:*:*:repository/alitest1/*"
      ]
    }
  ],
  "Version": "1"
}

权限分配
image

2.但是这个时候还是看不到的哈,如果我们想看到命名空间,要加对alitest1命名空间加以下规则才能看到

{
  "Statement": [
    {
      "Action": [
        "cr:Get*",
        "cr:List*",
        "cr:PullRepository"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cr:*:*:repository/alitest1/*"  #这个表示对alitest1命名空间给权限,如果要具体到某个仓库 * 换成仓库名
      ]
    },
    {
      "Action": [
        "cr:ListNamespace",
        "cr:ListRepository"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ],
  "Version": "1"
}

授权之后我能看到所有命名空间,但是只能对被授权的命名空间进行管理
子账号登录控制台后就能和主站号一样看到所有的命名空间了
image

但是请注意 我们只能对alitest1进行操作 因为只有alitest1的授权

五、使用子账号进行pull和push

1.下面进行测试,先推送到镜像仓库
请参考此文档:
https://help.aliyun.com/document_detail/67992.html?spm=5176.8351553.0.0.4b2519911tzA7e
鉴权action:
cr:PushRepository
我现在要把一个busybox推送到阿里云镜像仓库下去
鉴权对象:
命名空间:alitest1
镜像仓库:test
完整鉴权规则:

{
  "Statement": [
    {
      "Action": [
        "cr:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cr:cn-hongkong:*:repository/alitest1/test"
      ]
    },
    {
      "Action": [
        "cr:Get*",
        "cr:List*",
        "cr:PushRepository"  
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cr:*:*:repository/alitest1"
      ]
    }
  ],
  "Version": "1"
}

image

推送测试:
先在节点上登录仓库,很多人access denied的原因就是没登录成功
image

image
完整过程:
image
如果大家不晓得怎么推送,控制台已经给出了命令
image

最后一步,控制台验证:
image

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
弹性计算 数据安全/隐私保护
【阿里云服务器镜像】雾锁王国(Enshrouded)自动部署教程
本文将为您提供极简部署雾锁王国服务器的指引,「仅需轻点三次鼠标,即可完成开服」,和自己的朋友一起畅玩雾锁王国。雾锁王国(Enshrouded)作为一款热门多人在线游戏,为了给玩家提供稳定、流畅的联机体验,阿里云提供了高效便捷的快速部署解决方案,本文将为大家分享阿里云一键部署雾锁王国联机服务器详细教程。
 【阿里云服务器镜像】雾锁王国(Enshrouded)自动部署教程
|
22天前
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
70 0
|
2月前
|
Kubernetes 持续交付 容器
云效代码仓库问题之链接获取如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
79 0
云效代码仓库问题之链接获取如何解决
|
25天前
|
存储 DataWorks Kubernetes
阿里云cam授权案例
以下是内容摘要: 1. 阿里云OSS自定义策略允许全权访问`dc-odsopr`及其所有内容。 2. Dataworks授权文档详情见[此处](https://help.aliyun.com/document_detail/74302.html)。 3. 日志权限策略涵盖多种日志操作,如获取和管理项目、作业、日志存储等,限定于`cn-shenzhen`区域的`k8s`项目。 4. AliKafka权限包括实例、主题的管理,消息操作及部署、ACL、用户管理等。 5. OSS策略允许上传对象至`sz-creative-system-test-public`存储空间。
24 5
|
30天前
|
Devops Java 数据安全/隐私保护
DevOps搭建(二)-阿里云镜像仓库的使用详解
DevOps搭建(二)-阿里云镜像仓库的使用详解
46 0
|
1月前
|
存储 弹性计算 Linux
阿里云ECS(CentOS镜像)安装docker
阿里云ECS(CentOS镜像)安装docker
374 0
|
2月前
|
弹性计算 Linux 数据中心
阿里云服务器镜像是什么?如何选择镜像?
阿里云服务器镜像是什么?如何选择镜像?阿里云服务器镜像是云服务器的装机盘,镜像是为云服务器安装操作系统的。云服务器镜像系统怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版。阿里云百科分享什么是镜像以及云服务器镜像系统的选择方法
|
2月前
|
弹性计算 运维 安全
阿里云服务器linux和windows镜像有啥区别?
阿里云服务器linux和windows镜像有啥区别?阿里云服务器镜像Windows和Linux操作系统有什么区别?性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况
|
2月前
|
弹性计算 运维 安全
阿里云服务器镜像怎么选?Linux和Windows有啥区别?
阿里云服务器镜像怎么选?Linux和Windows有啥区别?阿里云服务器镜像Windows和Linux操作系统有什么区别?性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况
66 0
|
3月前
|
人工智能 大数据 Anolis
龙蜥多款镜像登陆阿里云 ACR 制品中心 AI /大数据镜像专场推荐榜
龙蜥社区作为 ACR 制品中心的重要合作伙伴,持续贡献丰富、安全、便捷、稳定的容器镜像,所贡献的镜像连续上榜 ACR 制品中心!