首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在terraform中授予事件查看权限

在terraform中授予事件查看权限
EN

Stack Overflow用户
提问于 2020-08-18 14:35:28
回答 1查看 216关注 0票数 0

我们有由Rancher管理的本地Kubernetes集群,我们使用Terraform在代码中进行配置。但是,我似乎无法向我的组授予查看集群中事件的devops权限。

以下是角色和角色绑定:

代码语言:javascript
复制
resource "rancher2_role_template" "events-view" {
  name = "Cluster Events View"
  description = "Terraform role template to see cluster events"
  rules {
    api_groups     = ["*"]
    resources      = ["events"]
    verbs          = ["get", "watch"]
  }
}

resource "rancher2_cluster_role_template_binding" "events-view" {
  name = "events-view"
  cluster_id = rancher2_cluster.rancher_cluster.id
  role_template_id = rancher2_role_template.events-view.id
  group_principal_id = lookup(var.projects["devops"] , "ldap_cn")
  depends_on = [
    rancher2_role_template.events-view
  ]
}

这是devops的定义:

代码语言:javascript
复制
projects = {
    devops = {
        ldap_cn = "activedirectory_group://CN=devops,OU=Distribution Groups,OU=My,DC=Company",
        name = "devops",
        # ...more attributes
    },
    # ...more projects
}

当我运行terraform apply时,我看到创建了角色和角色绑定:

代码语言:javascript
复制
rancher2_role_template.events-view: Creating...
rancher2_role_template.events-view: Creation complete after 0s [id=rt-h7xt4]
rancher2_cluster_role_template_binding.events-view: Creating...
rancher2_cluster_role_template_binding.events-view: Creation complete after 2s [id=c-6bdtb:events-view]

kubectl显示集群角色和角色绑定(显示默认名称空间,但也在所有名称空间中复制):

代码语言:javascript
复制
$ kubectl describe clusterrole rt-h7xt4
Name:         rt-h7xt4
Labels:       cattle.io/creator=norman
Annotations:  authz.cluster.cattle.io/clusterrole-owner: rt-h7xt4
PolicyRule:
  Resources  Non-Resource URLs  Resource Names  Verbs
  ---------  -----------------  --------------  -----
  events.*   []                 []              [get watch]

$ kubectl describe clusterrolebinding clusterrolebinding-hkc9b
Name:         clusterrolebinding-hkc9b
Labels:       authz.cluster.cattle.io/rtb-owner=6f990492-8f60-4950-bb8e-cfa4a9760c01
              cattle.io/creator=norman
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  rt-h7xt4
Subjects:
  Kind   Name                                                                                         Namespace
  ----   ----                                                                                         ---------
  Group  activedirectory_group://CN=devops,OU=Distribution Groups,OU=My,DC=Company

我的用户是devops AD组的成员,在terraform apply日志中,我可以看到角色和绑定模板已创建,但是当我登录到devops并单击Launch kubectl时,我看不到任何命名空间的事件:

代码语言:javascript
复制
> kubectl get events 
Error from server (Forbidden): events is forbidden: User "u-w8rp43jtbn" cannot list resource "events" in API group "" in the namespace "default"
> kubectl get events -n devops
Error from server (Forbidden): events is forbidden: User "u-w8rp44jtbn" cannot list resource "events" in API group "" in the namespace "devops"

我已经尝试在api_groups以及Kubernetes和Rancher API组中放入和空字符串,但似乎都不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-30 14:42:36

问题是我创建了集群角色模板,而不是项目角色模板。在rancher2_role_template资源中,我添加了context = "project"并将rancher2_cluster_role_template_binding更改为rancher2_project_role_template_binding

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63463062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档