限制RBAC访问Kubernetes的秘密

问题描述 投票:4回答:1

我已经设置了Kubernetes的秘密。

kubectl create secret generic mysecret --from-file=mysecret=/home/ubuntu/secret.txt

并且可以使用相同的kubectl命令将此秘密转换为纯文本:

kubectl get secret mysecret -o yaml
# and base64 decode

如何限制访问此秘密?我只想要一些豆荚,只有我作为操作员才能访问这个秘密。

kubernetes rbac
1个回答
6
投票

好的,所以你需要定义一个(集群)角色,然后将它绑定到你(==人类用户是目标实体)和/或服务帐户(== app是目标实体),然后用use in the pod代替default一个。

相应的secretadmin角色(或选择您喜欢的任何名称)看起来像这样(根据需要改变动词):

$ kubectl create clusterrole secretadmin \
          --verb=get --verb=list --verb=create --verb=update  \
          --resource=secret \
          --namespace=mysuperproject

一旦定义了角色,就可以将它附加(或绑定)到某个实体。让我们来看看服务帐户的情况(类似于人类用户,更简单)。首先,我们需要创建一个服务帐户,这里称为thepowerfulapp,然后您将在部署/ pod /中使用:

$ kubectl -n mysuperproject create sa thepowerfulapp

现在是时候将所有内容与下面的绑定命名为canadminsecret

$ kubectl create clusterrolebinding canadminsecret \
          --role=secretadmin \
          --serviceaccount=mysuperproject:thepowerfulapp \
          --namespace=mysuperproject
© www.soinside.com 2019 - 2024. All rights reserved.