Я использую GKE облака Google для своих операций в kubernetes.
Я пытаюсь ограничить доступ для пользователей, которые получают доступ к кластерам с помощью командной строки. Я применил роли IAM в облаке Google и предоставил роль просмотра учетным записям Сервиса и пользователям. Все работает нормально, если мы используем его через api или «--as» в командах kubectl, но когда кто-то пытается сделать kubectl, создайте объект без указания объекта «--as», который все еще создается с учетной записью службы «по умолчанию» для этого конкретного Пространство имен.
Чтобы преодолеть эту проблему, мы предоставили ограниченный доступ к учетной записи службы «по умолчанию», но все же мы смогли создавать объекты.
$ kubectl auth can-i create deploy --as default -n test-rbac
no
$ kubectl run nginx-test-24 -n test-rbac --image=nginx
deployment.apps "nginx-test-24" created
$ kubectl describe rolebinding default-view -n test-rbac
Name: default-view
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: view
Subjects:
Kind Name Namespace
---- ---- ---------
ServiceAccount default test-rbac
Я ожидаю, что пользователи, которые обращаются к кластеру через CLI, не должны иметь возможность создавать объекты, если у них нет разрешений, даже если они не используют флаг "--as", их следует ограничить.