OpenShift 4之访问权限分级授权

59 篇文章 1 订阅

目标

本文档将实现在多个用户之间对Project对象访问进行授权。这些场景包括:

  1. 用admin1创建project1项目,因此admin1具有project1项目的管理员权限。
  2. admin1可以将project1项目的管理员权限授权给admin2,此时admin2拥有admin1相同权限。
  3. admin2可以将project1项目的管理员权限从admin1收回。
  4. admin2可以将project1项目的编辑权限授权给admin3,并将project1项目的查看权限授权给admin4。
  5. admin3无法将project1的查看权限授权给admin5。
  6. admin4可以将project1的编辑权限授权给admin5。
    在这里插入图片描述

实现和验证

  1. 参照《OpenShift 4之增加用户》创建admin1-admin5用户。
  2. 用admin1登录,然后创建project1项目。
$ oc login -u admin1 -p admin1
$ oc new-project project1
  1. 用admin2登录,确认无法访问project1项目。
$ oc login -u admin2 -p admin2
$ oc project project1
  1. 用admin1登录,执行命令将project1项目的管理员权限授权给admin2,
$ oc login -u admin1 -p admin1
$ oc adm policy add-role-to-user admin admin2 -n project1
  1. 重新执行第3步,确认这次admin2可以访问project1项目。
  2. 用admin2执行命令将project1项目的管理员权限从admin1收回。
$ oc adm policy remove-role-from-user admin admin1 -n project1
  1. 用admin1登录,确认已经无法访问project1项目了。
$ oc login -u admin1 -p admin1
$ oc get project project1
  1. 用admin2登录,给admin3编辑project1项目的权限、给admin4查看project1项目的权限。
$ oc adm policy add-role-to-user edit admin3 -n project1
$ oc adm policy add-role-to-user view admin4 -n project1
  1. 用admin3登录,确认可以访问project1项目。
$ oc login -u admin3 -p admin3
$ oc get project project1
  1. 用admin3执行以下命令,确认admin3无法把查看project1的权限授权给admin5,这是因为admin3没有project1的管理权限。
$ oc adm policy add-role-to-user view admin5 -n project1
  1. 用admin4执行以下命令,确认admin4不可以把编辑project1权限授权给admin5,这是因为admin4没有project1的管理权限。
$ oc login -u admin4 -p admin4
$ oc adm policy add-role-to-user view admin5 -n project1
  1. 用admin2用户登录并执行查看project1项目有权限,都是哪些用户有这些权限。
$ oc login -u admin2 -p admin2

$ oc get rolebindings
NAME                    AGE
admin-0                 29m
edit                    13m
system:deployers        29m
system:image-builders   29m
system:image-pullers    29m
view                    12m

$ oc describe rolebindings admin-0
Name:         admin-0
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  admin
Subjects:
  Kind  Name    Namespace
  ----  ----    ---------
  User  admin2  

$ oc describe rolebindings edit
Name:         edit
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  edit
Subjects:
  Kind  Name    Namespace
  ----  ----    ---------
  User  admin3  

$ oc describe rolebindings view
Name:         view
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  view
Subjects:
  Kind  Name    Namespace
  ----  ----    ---------
  User  admin4  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 OpenShift 中配置访问内网的外部代理需要以下几步: 1. 在 OpenShift 集群中配置代理服务器,以便路由对内网的请求。 2. 在集群中的容器中配置 HTTP_PROXY 环境变量,以便使用代理服务器进行网络请求。 3. 在容器中更新代理配置文件,以指定要使用的代理服务器。 4. 验证代理配置是否生效,以确保可以访问内网。 请注意,上述步骤仅是大致流程,具体的步骤可能因集群环境和代理服务器的不同而有所差异。建议您在实施前仔细阅读相关文档和说明,以确保您使用的配置是正确和安全的。 ### 回答2: 要在OpenShift中配置访问内网的外部代理,可以按照以下步骤进行操作: 1. 首先,在OpenShift集群中创建一个用于访问内网的外部代理服务。这可以是一个独立的代理服务器或者其他设备,具体取决于你的环境。确保该代理服务已经正确配置,并可以访问内网资源。 2. 在OpenShift集群中创建一个命名空间,用于部署和管理代理应用。 3. 编写一个Dockerfile,用于创建一个基于OpenShift的镜像,该镜像能够启动代理应用。在Dockerfile中,可以指定代理服务的地址和端口,以便应用能够正确连接到代理。 4. 构建镜像,并将其推送到OpenShift的内部镜像仓库。 5. 创建一个Deployment配置文件,用于在OpenShift集群中部署代理应用。在配置文件中,指定刚才推送到仓库的镜像,并将其部署到之前创建的命名空间。 6. 配置代理应用的路由,以便可以从集群外部访问该应用。可以使用OpenShift的路由功能来实现。确保路由的目标端口与代理应用的端口一致。 7. 最后,将OpenShift集群的出口流量路由到代理应用。这可以通过OpenShift的网络策略功能来实现。配置网络策略,允许来自OpenShift集群的流量通过代理应用进行转发。 通过以上步骤,你就可以在OpenShift中配置访问内网的外部代理。 ### 回答3: 要在OpenShift上配置访问内网的外部代理,可以按照以下步骤进行操作: 1. 登录到OpenShift集群的Master节点上,并使用root或有sudo权限的用户执行以下命令,编辑OpenShift默认的路由配置文件: ```shell vi /etc/origin/master/master-config.yaml ``` 2. 在`routingConfig`部分添加以下代码块,以配置代理: ```yaml routingConfig: proxyRedirect: false subdomain: "" location: "" httpProxy: "http://proxy.example.com:8080" # 修改为你的代理地址和端口 httpsProxy: "http://proxy.example.com:8080" noProxy: "localhost,127.0.0.1,.example.com" # 修改为不需要代理的内网地址,多个地址使用逗号分隔 ``` 3. 保存并关闭文件。 4. 重启OpenShift Master服务以使更改生效: ```shell systemctl restart origin-master.service ``` 5. 配置完成后,OpenShift的路由将会通过指定的代理进行访问内网资源。 注意事项: - `httpProxy`和`httpsProxy`的地址和端口需要替换为你实际使用的代理服务器地址和端口。 - `noProxy`用于指定不需要代理的内网地址,多个地址之间使用逗号分隔。 - 如果没有权限修改OpenShift Master配置文件,可以联系集群管理员进行配置。 - 要确保代理服务器能够访问到内网资源,并且OpenShift节点能够通过代理服务器进行访问

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值