我已经设置了Kubernetes的秘密。
kubectl create secret generic mysecret --from-file=mysecret=/home/ubuntu/secret.txt
并且可以使用相同的kubectl
命令将此秘密转换为纯文本:
kubectl get secret mysecret -o yaml
# and base64 decode
如何限制访问此秘密?我只想要一些豆荚,只有我作为操作员才能访问这个秘密。
好的,所以你需要定义一个(集群)角色,然后将它绑定到你(==人类用户是目标实体)和/或服务帐户(== 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