问题标签 [kubernetes-rbac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
337 浏览

kubernetes - 用户“system:serviceaccount:default:flink”无法在集群范围内列出 API 组“”中的资源“节点”

我正在尝试在一个 k8s pod 中调用 k8s api。但是遇到以下权限问题:

在我的 yaml 文件中,我已经指定了Role& RoleBinding。我在这里想念什么?

0 投票
1 回答
40 浏览

kubernetes - 尽管我的用户/角色 ARN 不是 aws-auth CM 的一部分,但我如何能够访问 EKS 集群?

EKS 新手,学习。我知道可以通过添加到 aws-auth 配置映射来向 IAM 用户/角色提供访问权限,但是当第一次创建集群时,AWS-auth 只有一个条目。

kubeconfig 文件

问题:我如何能够以管理员身份访问集群?我(IAM 用户)具有集群管理员访问权限的集群中定义的位置?请帮助我理解。先感谢您!

0 投票
0 回答
40 浏览

kubernetes-helm - 为什么 helm3 install tr​​igger pre-delete 而不是在 Helm2

我有一个项目需要使用mutating Webhook,基于namespaceselector,需要首先将特定标签添加到命名空间。

我使用了三个钩子,hook1(pre-install, pre-delete,etc)hook2(pre-install)创建RBAC以通过Jobhook3(pre-delete)为名称空间添加标签以删除Job Hook 内容的标签如下:

Hook1设置权限

hook2将标签添加到命名空间

hook3从 hook2 删除标签到命名空间

在图表部署期间,由于未找到服务帐户(ns-edit),hook2 和 hook3 作业都被触发并且未完成。

但是在helm2中可以正确执行,即触发hook1和hook2helm install添加命名空间标签,触发hook1和hook3helm delete --purge删除hook2添加的标签

为什么 helm2 和 helm3 在Hook上有如此巨大的差异。

请问如何修改才能实现两者的统一如果没有,在helm3中如何设计

我真的很感激这方面的任何帮助。

注:helm2 为 v2.17.0,helm3 为 v3.3.0

0 投票
1 回答
97 浏览

kubernetes - Kubernetes 服务帐户,具有对部署注释的升级/补丁权限

我想创建 kubernetes 服务帐户和角色/rbac,这将授予修补/更新部署注释的权限。服务帐户不应该能够对 Kubernetes 部署执行任何其他更新。它应该仅对元数据部分具有升级和修补权限。

0 投票
3 回答
68 浏览

kubernetes - system:node 无法通过 curl 从 apiserver 获取机密

我正在为安全研究做一些 POC,试图直接从工作节点访问命名空间机密。我在 GKE 上有一个运行 Kubernetes 1.20 的集群

我正在从工作(非主)节点运行以下命令:

它工作正常。

但是,尝试获取秘密失败:

查看文档,我看到在节点上运行的 kubelet 应该能够访问机密:https ://kubernetes.io/docs/reference/access-authn-authz/node/

据我了解,授权由ClusterRole system:node. 看着它,我确实看到它对get秘密有作用:

还有一些更相关的关于 kubelet 和 kube-apiserver 之间通信的文档:https ://kubernetes.io/docs/concepts/architecture/control-plane-node-communication/#node-to-control-plane

0 投票
1 回答
138 浏览

kubernetes - 无法使用 Kubernetes ServiceAccount 列出或删除 ClusterRole 或 ClusterRoleBinding

我想创建一个 Kubernetes CronJob 来删除可能剩​​余的资源(命名空间、ClusterRole、ClusterRoleBinding)(最初,标准将是“有标签=某事”和“超过 30 分钟”。(每个命名空间包含用于试运行)。

我创建了 CronJob、ServiceAccount、ClusterRole、ClusterRoleBinding,并将服务帐户分配给 cronjob 的 pod。

cronjob 使用包含 kubectl 的映像和一些脚本来选择正确的资源。

我的初稿是这样的:

cronjob 能够列出和删除命名空间,但不能列出和删除集群角色或集群角色绑定。我错过了什么?

(实际上,我先用 Job 对此进行测试,然后再转向 CronJob):

0 投票
1 回答
216 浏览

kubernetes - 如何在 Kubebuilder 中将 RBAC 角色添加到控制器以获取不同类型的资源

我正在使用 Kubebuilder 创建一个新的 Operator 来部署 Kubernetes 控制器来管理新的 CRD 自定义资源定义。

这个新的 CRD(假设被称为MyNewResource)需要列出/创建/删除 CronJobs。

因此,在定义该方法的 Controller Go 代码中,Reconcile(...)我添加了一个新的 RBAC 注释以允许对 CronJobs 进行协调(请参见此处):

然而,在构建推送和部署 Docker/Kubernetes 控制器(repo myrepomake manifests、 then make install、 then make docker-build docker-push、 then make deploy)之后,我仍然在日志中看到:

我还看到有关缓存的问题,但它们可能不相关(不确定):

如何让我的新 Operator 处理 CronJobs 资源?

目前,当我通过调用为我的 CRD 的新实例提供一些 YAML 时,基本上我无法以编程方式(Go 代码)创建新的 CronJobs:

0 投票
2 回答
83 浏览

kubernetes - 在 GKE 中启用 Google Cloud Groups RBAC 后被禁止

我们正在现有 GKE 集群中启用 Google Cloud Groups RBAC。

为此,我们首先在 Workspace 中创建了所有组,并根据文档创建了所需的“gke-security-groups@ourdomain.com”。

这些组是在 Workspace 中创建的,并与 Active Directory 集成以实现单点登录。

如文档所述,所有组都是“gke-security-groups@ourdomain”的成员。并且所有组都可以查看成员。

集群已更新以启用 Google Cloud Groups RBAC 的标志,我们将值指定为“gke-security-groups@ourdomain.com”。

然后,我们将其中一个组(我们称之为 group_a@ourdomain.com)添加到 IAM 并分配了一个自定义角色,该角色仅允许访问:

这只是用户能够登录 Kubernetes 集群并从那里能够应用 Kubernetes RBAC 的最低要求。

在 Kubernetes 中,我们应用了一个角色,它提供了特定命名空间中的 pod 列表,以及一个角色绑定,它指定了我们刚刚添加到 IAM 的组。


直到现在一切看起来都很好。但是,当尝试使用属于组“group_a@ourdomain.com”的用户列出此命名空间的 pod 时,我们得到:

来自服务器的错误(禁止):pod 被禁止:用户“my-user@ourdomain.com”无法在命名空间“custom-namespace”中的 API 组“”中列出资源“pod”:需要 [“container.pods”之一。 list"] 权限。

当然,如果我将 container.pods.list 赋予 group_a@ourdomain 分配的角色,我可以列出 pod,但它会为所有命名空间打开,因为 GCloud 中的此权限是全局的。

我在这里想念什么?

不确定这是否相关,但我们在 gcloud 中的组织名为“my-company.io”,而 SSO 的组名为“...@groups.my-company.io”,而 gke-security -groups 组也是使用“groups.my-company.io”域创建的。

此外,如果我直接指定用户而不是 RoleBinding 中的组,则它可以工作。

0 投票
0 回答
99 浏览

kubernetes - Service Account for creating/removing namespaces and add/remove ClusterRole Bindings

Can I create a service account for such specific things and no more. I'm interested because I don't know how clustered roles will behave in this context.

  • One(first) service account has the right to create/remove namespaces
  • Create/remove ClusterRole Binding for another(second) account.

The idea is that I want to make developers only have access to certain namespaces. These namespaces are created dynamically, so every time I create a namespace, I will be adding a RoleBinding to their(second) service account.

This is described in this article https://faun.pub/kubernetes-rbac-use-one-role-in-multiple-namespaces-d1d08bb08286 This I know and understand how to do.

I don’t understand a little how to define a role for an account(first) that will only have the right to create/remove namespaces and create/remove ClusterRole Binding

I hope my question is clear.

Thanks

0 投票
1 回答
33 浏览

kubernetes - K8s集群角色排除权限

有没有办法创建一个具有完全访问权限的 K8s 集群角色(任何命名空间上的所有资源、动词和 apigroup)但在所有命名空间上都没有命令执行,例如:kubectl delete pods --all-namespaceskubectl delete pv --all-namespaces

(应该允许在单个命名空间上运行相同的命令,而不是对所有命名空间批量运行)。

如果使用集群角色无法实现这一点,是否有其他方法可以实现?