Quay (3) - 访问权限管理

15 篇文章 2 订阅
9 篇文章 0 订阅

OpenShift 4.x HOL教程汇总


说明:在开始本文操作前需完成《 Quay(1) - 用Quay Operator配置Quay环境》和《 Quay (2) - 镜像常规操作》。

用户权限

配置用户

  1. 使用管理员登录Quay,在Quay控制台上进入“Super User Admin Panel”。
    在这里插入图片描述
  2. 在“Red Hat Quay Management”页面中的Users标签中点击“+ Create User”按钮添加以下三个用户。
 myviewuser    myviewuser@example.com
 myedituser    myedituser@example.com
 myotheruser   myotheruser@example.com
  1. 由于每个用户的缺省密码是自动生成的,因此需通过每一项菜单中的“Change Password”将登录密码修改为“password”。
    在这里插入图片描述

配置组织

  1. 再次进入REPOSITOIES,点击“Create New Organication”。
    在这里插入图片描述
  2. 在“Create New Organization”页面中创建名为myfirstquayorg的组织。
    在这里插入图片描述
  3. 在myfirstquayorg组织中创建2个Repository,名称和属性如下。创建后myfirstquayorg组织的Repositories页面如下:
hello-php-private/Private
hello-php-public/Public

在这里插入图片描述

配置Team和Membership

  1. 在myfirstquayorg组织进入"Teams and Membership”,创建名为adminteamuserteam的2个Team。在创建Team过程中不需要在“Add permissions”对话框中配置访问权限。完成后myfirstquayorg组织的Team and Membership如下图:
    在这里插入图片描述
    说明:上图中的Team Role含义如下。
    在这里插入图片描述
  2. 点击adminteam右侧图标,在菜单中进入“Manage Team Memberships”。在搜索栏中找到myedituser,然后添加到adminteam中。
    在这里插入图片描述
  3. 点击userteam右侧图标,在菜单中进入“Manage Team Memberships”。在搜索栏中找到myviewuser,然后添加到userteam中。

配置Team对Repository的访问权限

  1. 点击adminteam右侧图标,在菜单中进入“Set Repository Permissions”。
    在这里插入图片描述
  2. 在“Set Permission”窗口中为hello-php-public和hello-php-private设置Admin的Permission。
    在这里插入图片描述
  3. 使用相同的过程设置userteam,不过这次只选中hello-php-public,并分配Read权限。
  4. 最后配置Team的角色,在按照下图设置将adminteam的“TEAM ROLE”为Creator,将userteam的“TEAM ROLE”为Member。
    在这里插入图片描述

设置Repository的缺省访问权限

为属于myfirstquayorg组织的Repository设置缺省的访问权限。

  1. 进入myfirstquayorg组织的Default Permissions,然后增加2个Default Permission,分别为userteam分配Read权限、为adminteam分配Admin权限。
    在这里插入图片描述

验证

  1. 用quay/password登录Quay。在myfirstquayorg中创建名为hello-php-default的Private Repository。
  2. 用myedituser/password登录Quay,确认可以看到3个Repository。说明:其中hello-php-public和hello-php-private的访问权限是在“配置Team对Repository的访问权限”中设置的adminteam的权限,而hello-php-default的访问权限是在myfirstquayorg中通过设置的Default Permissions获得的。
    在这里插入图片描述
  3. 用myviewuser/password登录Quay,确认可以看到2个Repository。说明:其中hello-php-public的访问权限是在“配置Team对Repository的访问权限”中设置的userteam权限,而hello-php-default的访问权限是在myfirstquayorg中通过设置的Default Permissions获得的。

在这里插入图片描述

使用Robot Account

Quay的Robot是Service Accounts,它不对应实际人员,其他软件可以使用Robot Account访问Quay,例如在CI/CD过程中访问Quay。

  1. 用quay/password登录Quay,然后进入myfirstquayorg组织。
  2. 在“Robot Accounts”中点击“Create Robot Account”按钮。
  3. 在对话框中提供以下配置,然后点击"Create robot account”按钮。
    Name:myrobot
    Description: Account used for access to myfirstquayorg
    在这里插入图片描述
  4. 分配hello-php-private的Write权限,然后点击“Add permissions”按钮。
    在这里插入图片描述
  5. 在Robot Accounts页面中点击“myfirstquayorg+myrobot”条目右侧的图标,然后进入“View Credentials”。此时在弹出对话框可以看到下图的Username和Token。
    在这里插入图片描述

验证

  1. 用quay/password登录Quay。
$ podman login -u quay -p password ${QUAY} --tls-verify=false
  1. 将quay/hello-php:v0.2镜像拉倒本地。
$ podman pull ${QUAY}/quay/hello-php:v0.2 --tls-verify=false
  1. 对镜像重命名和标签后再将镜像推到myfirstquayorg下。
$ podman tag ${QUAY}/quay/hello-php:v0.2 ${QUAY}/myfirstquayorg/hello-php-private:v0.2 
$ podman tag ${QUAY}/quay/hello-php:v0.2 ${QUAY}/myfirstquayorg/hello-php-default:v0.2 
$ podman push ${QUAY}/myfirstquayorg/hello-php-private:v0.2 --tls-verify=false
$ podman push ${QUAY}/myfirstquayorg/hello-php-default:v0.2 --tls-verify=false
  1. 退出Quay。
$ podman logout ${QUAY} 
  1. 删除本地镜像。
for i in $(podman images -q); do podman rmi $i --force; done
  1. 用Robot Account登录Quay。
$ sudo podman login $QUAY --tls-verify=false
Username: myfirstquayorg+myrobot
Password:
Login Succeeded!
  1. 执行命令,拉取hello-php-default镜像。确认报错,这是因为没有给Robot Account设置访问hello-php-default镜像的权限。
$ podman pull $QUAY/myfirstquayorg/hello-php-default:v0.2 --tls-verify=false
Trying to pull quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-default:v0.2...
  unauthorized: access to the requested resource is not authorized
Error: error pulling image "quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-default:v0.2": unable to pull quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-default:v0.2: unable to pull image: Error initializing source docker://quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-default:v0.2: Error reading manifest v0.2 in quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-default: unauthorized: access to the requested resource is not authorized
  1. 执行命令,拉取hello-php-private的镜像。确认成功获取hello-php-private镜像,这是因为有给Robot Account设置访问hello-php-default镜像的权限。
podman pull $QUAY/myfirstquayorg/hello-php-private:v0.2 --tls-verify=false
Trying to pull quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/myfirstquayorg/hello-php-private:v0.2...
Getting image source signatures
Copying blob 11e9f32eaf6e done
Copying blob 6cb6e4d94045 done
Copying blob 2206ab0383e8 done
Copying blob 23debac483b0 done
Copying blob f94f448e8c1a done
Copying blob 2f70609541f2 done
Copying blob a3ed95caeb02 done
Copying blob a3ed95caeb02 done
Writing manifest to image destination
Storing signatures
b2c324e9953551d34f452246ef05f545252c7088e2f9579d413f55e04dfed502

查看Repository的所有访问权限

  1. 进入一个Repository的配置,例如myfirstquayorg / hello-php-public,在Settings中可以查看该Repository的所有访问权限,包括User、、Team和Robot的Read、Write、Admin权限。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值