【问题标题】:Openshift 4 RBACOpenshift 4 RBAC
【发布时间】:2021-07-14 15:18:01
【问题描述】:

我有什么:

  1. 默认安装 Openshift 4.6
  2. 集群中有 3 个主/工作节点
  3. 已配置 OAuth
  4. system-auth 组中的自配置角色已被删除

详细问题/目标: 为用户分配自配置角色允许用户创建项目和项目内的任何资源,我想要实现的是,一个可以创建项目但在项目内没有任何进一步权限/权限的用户.这甚至可能吗?

Openshift 4.6 的文档表明,任何用户创建项目,用户(请求者)都将成为该项目的管理员,这是因为 Openshift API 在创建项目时将使用默认模板。

我不知道在哪里进行更改以反映我的目标,是模板还是使用任何不同的 RBAC 角色。

在此先感谢您。

【问题讨论】:

    标签: openshift openshift-enterprise


    【解决方案1】:

    您需要自定义项目模板。看这里https://docs.openshift.com/container-platform/4.6/applications/projects/configuring-project-creation.html#modifying-template-for-new-projects_configuring-project-creation

    首先你需要从 openshift-config 备份一个项目项目模板,老实说我不知道​​该怎么做。如果有人找到方法,请在答案下发表评论。 - 看看@Stevencommy 的第一个答案

    创建新的项目模板

    oc adm create-bootstrap-project-template -o yaml > template.yaml
    

    template.yml 配置

    kind: Project
    ...
        name: ${PROJECT_NAME}
    

    新建项目的默认用户配置在

    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: <YOUR_USER_WITHOUT_RIGHTS_TO_CREATE_PROJECT>
    

    然后创建模板

    oc create -f template.yaml -n openshift-config
    

    更新

    oc edit project.config.openshift.io/cluster
    

    那里

    spec:
      projectRequestTemplate:
        name: <template_name> 
    

    &lt;template_name&gt; 默认为project-request 您也可以使用oc get templates -n openshift-config | grep project-request 列出

    如果一切顺利,您可以使用oc new-project &lt;your-project&gt; 对其进行测试。项目的user 应该是&lt;YOUR_USER_WITHOUT_RIGHTS_TO_CREATE_PROJECT&gt;

    【讨论】:

    • 似乎,根据文档,默认安装没有定义任何模板。 API 服务器创建一个默认模板,该模板创建一个具有请求名称的项目,并将请求用户分配给该项目的管理员角色。所以我想没有什么可以备份的。我测试过,当您删除您创建的模板时,它会返回到默认安装方法。非常感谢您的回答。干杯
    • @Stevencommy 谢谢你的回答。这是一个有趣的事实。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2014-06-10
    相关资源
    最近更新 更多