我已经设置了Kubernetes的秘密.
kubectl create secret generic mysecret --from-file=mysecret=/home/ubuntu/secret.txt
Run Code Online (Sandbox Code Playgroud)
并且可以使用相同的kubectl
命令将此秘密转换为纯文本:
kubectl get secret mysecret -o yaml
# and base64 decode
Run Code Online (Sandbox Code Playgroud)
如何限制访问此秘密?我只想要一些豆荚,只有我作为操作员才能访问这个秘密.
好的,所以你需要定义一个(集群)角色,然后将它绑定到你(==人类用户是目标实体)和/或服务帐户(== app是目标实体),然后你在pod而不是那个default
.
相应的secretadmin
角色(或选择您喜欢的任何名称)看起来像这样(根据需要改变动词):
$ kubectl create clusterrole secretadmin \
--verb=get --verb=list --verb=create --verb=update \
--resource=secret \
--namespace=mysuperproject
Run Code Online (Sandbox Code Playgroud)
一旦定义了角色,就可以将它附加(或绑定)到某个实体.让我们来看看服务帐户的情况(类似于人类用户,更简单).首先,我们需要创建一个服务帐户,这里thepowerfulapp
您将在部署/ pod /中使用该帐户:
$ kubectl -n mysuperproject create sa thepowerfulapp
Run Code Online (Sandbox Code Playgroud)
现在是时候将所有内容与下面的绑定绑定在一起了 canadminsecret
$ kubectl create clusterrolebinding canadminsecret \
--role=secretadmin \
--serviceaccount=mysuperproject:thepowerfulapp \
--namespace=mysuperproject
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1827 次 |
最近记录: |