使用 Helm 3 和 K8s 集群 w/RBACX509 证书,Helm 需要什么权限?我认为它为发布信息创建了 ConfigMaps?

问题描述

我已将我的集群 (k3d) 设置为具有一些 RBAC 规则,并且还创建了一个证书来为 kubectl 命令识别我的用户。我已将用户设置为通过特定命名空间中的 Role 获得 RoleBinding

我想让他们可以创建 DeploymentPodService,但不能创建 SecretConfigMap。如果我这样做,他们是否能够使用 Helm 来安装东西? Helm 不将有关发布的信息存储在 SecretConfigMap 中吗?

我是否需要授予用户访问权限才能创建这些内容

示例角色

#################################################################################
################################## Example Role #################################
#################################################################################

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
Metadata:
  name: my-role
  namespace: my-namespace
rules:
  - apiGroups: ["","extensions","apps"]

    # Leaving out "configmaps" and "secrets"
    resources: ["pods","deployments","services"]
    verbs: ["*"]

解决方法

是的,不幸的是你必须这样做。但从好的方面来说,你可以通过将动词定义为

来限制
["get,list,create"]

不是

["*"]

这赋予了全部权限。 我建议你检查https://kubernetes.io/docs/reference/access-authn-authz/rbac 以获得清晰的视图并确定您在 kubernetes 方面的需求和能力。

示例动词:

verbs: ["get","list","watch","create","update","patch","delete"]

您也可以使用以下链接中的 can-i 工具检查您的用户能力。

https://kubernetes.io/docs/reference/access-authn-authz/authorization/

希望这些链接可以帮助您。

顺便说一句,看看 Kind: 标签的图表和 yaml 文件。

这些是您需要访问的内容。