Kubernetes — учётные записи служб

Необходимы для того чтобы каждая служба имела свой доступ к метаданным, некоторым не нужен доступ, некоторым только на чтение, некоторым запись определённых метаданных

Создание учётной записи

kubectl create serviceaccount foo
kubectl describe sa foo 
Name:                foo
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   foo-token-nxxfs
Tokens:              foo-token-nxxfs
Events:              <none>
kubectl describe secret foo-token-nxxfs
Name:         foo-token-nxxfs
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: foo
              kubernetes.io/service-account.uid: a6d35ff4-5cfc-11e9-b073-080027284abe

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1066 bytes
namespace:  7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvby10b2tlbi1ueHhmcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb28iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhNmQzNWZmNC01Y2ZjLTExZTktYjA3My0wODAwMjcyODRhYmUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb28ifQ.alqXofaCt_bBaWA0sCLS0jP5VQ9OFxhC5fT6X9dNNkGvo-xm1JTvhG0XNWPcdny-aIY-yaMZBCA6gFueDbjZAhOJjOMlI6F66yTjtt_cHfkB0AzfmHq6o5owsxA7yJDyaOO_2WtOdDmQDtTQaUWH2vin7af_rmwZMosAqh9e1oJ0RQvmbOMk-O4E82zItUdzjHHX24xxbXzOAuF6PTzCUsEHA22WgSnbXtIvh1moUa8RGBKYxirvrFFeQE99Az7cNl_22ErNgUDlwSRZzTp90ZvqKUBELmK48sBvb4W7x3WMFjr6TRnhmt0DTpI-IKuVd_g2kd-dM6_87R04HoWZGw

Чтобы разрешить модулю монтировать только разрешённые модули, ServiceAccount должен содержать аннотацию kubernetes.io/enforce-mountable-
secrets=»true»

Учётная запись ServiceAccount может содержать данные для выгрузки образов

apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-service-account
imagePullSecrets:
- name: my-dockerhub-secret

Добавление секретов в ServiceAccount позволяет не добавлять их в каждый модель отдельно

Назначение модулю учётную запись службы

apiVersion: v1
kind: Pod
metadata:
    name: curl-custom-sa
spec:
    serviceAccountName: foo
    containers:
    - name: main
      image: tutum/curl
      command: ["sleep","999999999"]
    - name: ambassador
      image: luksa/kubectl-proxy:1.6.2
kubectl exec -it curl-custom-sa -c main cat /var/run/secrets/kubernetes.io/serviceaccount/token
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvby10b2tlbi1ueHhmcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb28iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhNmQzNWZmNC01Y2ZjLTExZTktYjA3My0wODAwMjcyODRhYmUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb28ifQ.alqXofaCt_bBaWA0sCLS0jP5VQ9OFxhC5fT6X9dNNkGvo-xm1JTvhG0XNWPcdny-aIY-yaMZBCA6gFueDbjZAhOJjOMlI6F66yTjtt_cHfkB0AzfmHq6o5owsxA7yJDyaOO_2WtOdDmQDtTQaUWH2vin7af_rmwZMosAqh9e1oJ0RQvmbOMk-O4E82zItUdzjHHX24xxbXzOAuF6PTzCUsEHA22WgSnbXtIvh1moUa8RGBKYxirvrFFeQE99Az7cNl_22ErNgUDlwSRZzTp90ZvqKUBELmK48sBvb4W7x3WMFjr6TRnhmt0DTpI-IKuVd_g2kd-dM6_87R04HoWZGw

 

 

K8S

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.