Вы можете использовать Hashicrop Vault или kubernetes-external-secrets (https://github.com/godaddy/kubernetes-external-secrets).
Или, если вы хотите ограничить только, вы должны создать пользователя только для чтения. и ограничьте доступ к секрету для пользователя, доступного только для чтения, с помощью привязки роли и роли.
Тогда, если кто-то попытается описать секрет, он выдаст ошибку «Отказано в доступе».
Пример кода:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-secrets
namespace: default
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- create
- delete
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: test-secrets
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: test-secrets
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: demo
Вышеуказанная роль не имеет доступа к секретам. Следовательно, демонстрационный пользователь получает отказ в доступе.