我正在为我的应用程序设置一个命名空间,该命名空间在该命名空间中具有状态集、部署和机密。使用 RBAC,我正在定义特定角色并将它们绑定到部署/状态集使用的服务帐户。这按预期工作。
现在,当我尝试通过不为部署分配任何服务帐户来测试机密是否安全时,它仍然会拉下机密。命名空间中的默认服务帐户与不应访问机密的视图集群角色绑定。
任何线索这里发生了什么?
提前致谢。
我正在为我的应用程序设置一个命名空间,该命名空间在该命名空间中具有状态集、部署和机密。使用 RBAC,我正在定义特定角色并将它们绑定到部署/状态集使用的服务帐户。这按预期工作。
现在,当我尝试通过不为部署分配任何服务帐户来测试机密是否安全时,它仍然会拉下机密。命名空间中的默认服务帐户与不应访问机密的视图集群角色绑定。
任何线索这里发生了什么?
提前致谢。
我相信您需要将 a 分配给RoleBinding
命名空间上的默认服务帐户。例如:
kubectl create rolebinding myapp-view-binding --clusterrole=view --serviceaccount=default:default --namespace=default
视图角色应该阻止您阅读机密。
现在,当我尝试通过不将任何服务帐户分配给部署来测试机密是否安全时...
如果您没有为部署分配服务帐户,default
则将使用部署命名空间中的服务帐户。
...它仍然揭开秘密
尝试automountServiceAccountToken: false
在吊舱上设置。这将确保服务帐户令牌不会自动挂载。所以像:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-pod
spec:
...
template:
...
spec:
serviceAccountName: default
automountServiceAccountToken: false