问题标签 [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 回答
3717 浏览

kubernetes - Kubernetes 用户无法在命名空间中列出“pod”

我正在尝试将 AWS IAM 角色(联合)映射到 EKS RBAC,尝试按照教程进行操作,但仍然出现错误

我是否需要为名为“开发者”的用户创建 RBAC 并映射所有权限?如果是这样,那么正确的做法是什么?

我已经使用 kubectl krew 安装了 rakkess,如果我使用 AWS 安全短期凭证进行尝试,我会得到以下信息:

谢谢,德米特里

0 投票
1 回答
55 浏览

kubernetes - Kubernetes 从端点 REST API 拉取信息

我尝试创建一个具有权限的服务帐户,以获取有关端点 pod IP 的信息并恢复权限问题。

创建服务帐户并为其授予正确的权限:

将此 sa 添加到部署 YAML 文件中:

我声明了 pod 并登录到它 (ssh)。现在我想运行一个 REST 调用来提取信息:

我做错了什么?

0 投票
1 回答
483 浏览

kubernetes - AWS EKS 服务账户集群角色绑定无法正常访问禁止访问

我正面临 AWS EKS 集群角色的问题,看起来绑定到服务帐户无法正常工作。

服务帐号

集群角色

集群角色绑定

集群服务器版本:v1.17.6-eks-4e7f64

Python 客户端尝试使用 kubernetes==11.0.0 以及 kubernetes==9.0.0 和 10。对 pod 和其他基础资源执行操作正常。代码:

错误日志:

还列出失败的部署:

非常感谢任何帮助,我真的被困住了。

0 投票
1 回答
413 浏览

kubernetes - Minikube:尝试创建特权容器时,受限 PodSecurityPolicy 不受限制

我在 minikube 中启用了 podsecuritypolicy。默认情况下,它创建了两个 psp - 特权和受限。

我还创建了一个 linux 用户 - kubexz,为此我创建了 ClusterRole 和 RoleBinding 来限制仅管理 kubexz 命名空间上的 pod,并使用受限 psp。

我已经在我的 kubexz 用户 $HOME/.kube 中设置了 kubeconfig 文件。RBAC 工作正常 - 从 kubexz 用户,我只能按预期在 kubexz 命名空间中创建和管理 pod 资源。

但是,当我使用 发布 pod 清单时securityContext.privileged: true,受限的 podsecuritypolicy 并没有阻止我创建该 pod。我应该无法创建具有特权容器的 pod。但是 pod 正在创建中。不知道我错过了什么

0 投票
2 回答
793 浏览

kubernetes - 支持“推出撤消”需要哪些角色权限?

我正在尝试为我们的 CI/CD 服务器设置一个角色,该角色可以支持回滚失败的部署。当前权限用于更新部署和相关资源并监视它们的状态,但是当我尝试以 CI 用户身份运行例如“kubectl rollout undo deployment/admin”时,我收到错误:

错误:无法从部署管理员检索副本集:replisets.apps 被禁止:用户“ci-admin”无法在命名空间“acceptance”中的 API 组“apps”中列出资源“replicasets”

这是最初的角色配置:

我尝试添加获取和列出副本集的权限以解决该错误:

但我仍然遇到与以前相同的错误。

Kubernetes 文档根本没有帮助,因为似乎没有任何给定命令所需权限的完整列表。只有少数几个例子。

谁能告诉回滚需要什么权限?

0 投票
1 回答
977 浏览

kubernetes - 如何从 POD A 执行 shell 脚本到另一个 POD B

我有两个在 kubernetes 集群内运行的 pod。豆荚如下

  1. mongodb pod 类型:StatefulSet
  2. 脚本 pod 类型:Job

script pod我正在运行要在mongodb pod.

bash 脚本包含以下代码,这些代码执行到 mongodb pod 并执行以下命令。

但是当我运行时script pod,出现以下错误

我应该怎么做才能为script pod在 mongodb pod 中运行上述命令提供权限?


所以就像你说的,我创建了另一个 pod,它是 kind:job 并包含 script.sh。

在 script.sh 文件中,我对主 pod 运行“kubectl exec”以运行一些命令

脚本被执行,但我收到错误“无法在 API 组中创建资源“pods/exec”

所以我创建了一个带有资源的集群角色: ["pods/exec"] 并使用 ClusterRoleBinding 将其绑定到默认服务帐户

0 投票
1 回答
790 浏览

kubernetes - “更新”Kubernetes RBAC 权限有什么作用?

我终生无法找到所有 Kubernetes RBAC 动词作用的详细表格。我看到人们推荐的唯一资源是这个资源,这是严重不足的。

所以我一直在通过实验来解决它。

到目前为止,大多数都相当简单,除了UPDATE. 这似乎无法做任何我期望的事情。

权限我给了我的别名:命名空间中的 [ ]上的 [ GET, ] 。UPDATEdeploymentsdefault

我尝试过的事情:

  • kubectl set image deployment/hello-node echoserver=digitalocean/flask-helloworld --as user
  • kubectl edit deploy hello-node --as user
  • kubectl apply -f hello-node.yaml --as eks-user

这些都因错误而失败:deployments.apps "hello-node" is forbidden: User "user" cannot patch resource "deployments" in API group "apps" in the namespace "default"

然后我尝试了一些推出命令,例如:

  • k rollout undo deploy hello-node --as user

但他们失败了,因为我没有副本集访问权限。


TLDR: Kubernetes RBACupdate动词的意义何在?

就此而言,是否有人拥有所有 RBAC 动词的更详细列表?

0 投票
0 回答
408 浏览

kubernetes - 如何限制对 POD 中特定机密的访问(POD 应该只访问给定应用程序使用的特定机密)

我想从 POD 访问特定的秘密,我不希望 POD 可以访问其他秘密(不需要)。

我创建了一个无法访问机密的服务帐户(甚至没有“获取”)。

期望:我已将此服务帐户分配给 POD,因此 POD 应该抱怨或由于无法访问密钥而无法启动。

但令我惊讶的是,该 pod 是从读取一个秘密作为 env vars 开始的。好迷茫,帮帮我。

我不知道我在这里做错了什么。

0 投票
2 回答
1388 浏览

kubernetes - AWS EKS 集群的“集群创建者”用户如何映射到“system:masters”RBAC 组?

我试图了解如何为在 AWS 中创建 EKS 集群的第一个用户管理 RBAC 授权。
或者换句话说:集群创建者如何映射到 RBAC 中的“system:masters”组?

我知道该文档指出:“当您创建 Amazon EKS 集群时,IAM 实体用户或角色(例如创建集群的联合身份用户)会在集群的 RBAC 配置中自动获得 system:masters 权限。”
而且我了解 clusterrole cluster-admin和 clusterrolebinding cluster-admin如何向“system:masters”组的任何成员授予完整的管理员权限。

我无法弄清楚集群创建者用户如何/在哪里映射到该组?(文档的“自动授予”部分)

PS:我知道要添加额外的用户/角色,我应该使用 aws-auth configmap,但是这里没有定义第一个用户并且仍然可以访问集群。

如果有人可以启发我吗?

提前致谢!

作为记录,我使用的是 kubernetes 1.18 EKS 集群,该集群是通过社区模块使用 terraform 构建

0 投票
2 回答
847 浏览

kubernetes - 正确使用 Role.rules.resourceNames 来创建对资源的访问受限的 pod

我正在尝试创建一个能够使用Role.rules.resourceNames. 我能够从 pod 中对 API 执行资源获取请求,但我无法创建资源,而是获取

如果我删除该resourceNames属性,我可以创建 configmap,但我不一定希望这个 pod 能够随意创建和更新 configmap。如何限制 serviceAccount 的角色,以便这个 pod 只能操作命名的 configmap aaa

编辑

我在 kubernetes slack 中得到了一些帮助(谢谢你,Alan)。RBAC 发生在 URL 级别,因此资源名称受限的授权不能用于创建 URL,因为 URL 中没有资源名称!