0

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

我想这样做,以便他们可以创建Deployments, Pods, Services 但不能创建Secretor ConfigMap。如果我这样做,他们能使用 Helm 来安装东西吗?Helm 不会将其有关发布的信息存储在Secrets 或ConfigMaps 中吗?

我是否需要授予用户访问权限才能创建这些东西?

示例角色

#################################################################################
################################## 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: ["*"]
4

1 回答 1

2

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

["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 文件。

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

于 2021-04-22T11:01:14.907 回答