直接可用的认证插件:
- 客户端证书
- HTTP 头中的 token
- 基础 HTTP 认证
- 其他
12.1.1 用户和组
了解用户
- 真实的人
- SSO 单点登录
- pod 中的应用
- service accounts
Kubernetes 中没有账户资源, 所以不能通过 API 服务来创建用户等.
了解组
可以一次给多个用户赋予权限.
系统内置的组有特殊含义:


完全没看明白啥用.
12.1.2 ServiceAccount 介绍
/var/run/secrets/kubernetes.io/serviceaccount/token
了解 ServiceAccount 资源
查看 ServiceAccount 列表:
$ kubectl get sa
- 每个 pod 都与一个 ServiceAccount 相关联.
- 多个 pod 可以使用同一个 ServiceAccount
- 不能跨命名空间

ServiceAccount 如何和授权进行绑定
在 pod 的 manifest 文件中配置 ServiceAccount.
12.1.3 创建 ServiceAccount
创建 ServiceAccount
$ kubectl create sa foo
查看 ServiceAccount:
$ kubectl describe sa foo

查看 ServiceAccount 密钥:
$ kubectl describe secret foo-token-hmqsm
Name: foo-token-hmqsm
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: foo
kubernetes.io/service-account.uid: 98f82703-9e4d-4fb4-8cbe-9e797593ddab
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1066 bytes
namespace: 7 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IkhVYUFMazc0by1aeXNadkFMTjY0aWVuQ2Jzb1dFNWZ2NzVrVjh5dHpXc2cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvby10b2tlbi1obXFzbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb28iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5OGY4MjcwMy05ZTRkLTRmYjQtOGNiZS05ZTc5NzU5M2RkYWIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb28ifQ.i6rIHzeaQUThtjs26T82FNpQR2GOO20efnI0vzKiWbqO1MZ8NQtP2mo16SS2fgA2gMZbey6gCh6_jcjvUc02R1ZkWSIpkShDqQisvyr9XZnV2GlLHVAVhBqttGaebPTi3oTtzwksotayQubDg683GFmumfVCHxW-IhU1aQ-F5d_y66q9FRpAsX_NgQ8mwVzHaeol-JndJ-dw2W3SQDmJXgwLuUiqBW7rWzhsEs0Akwk4yB8Jdy4aVN_z0w4f7BsIHfeAIWiGL1_7sc2kD-3a1c2MeVhDLQkXnF5zl7ueWQH5HUJAgcJyJFzghTZUgPPonilNfRkad6CDoV3Is20qbg
token 使用的是 JWT.
了解 ServiceAccount 上的可挂载密钥
允许被挂载所使用的注解:
kubernetes.io/enforce-mountable-secrets="true"
了解 ServiceAccount 的镜像拉取密钥


12.1.4 将 ServiceAccount 分配给 pod
在 pod 定义/模板中的 spec.serviceAccountName 上设置名称.
- 后续不能修改
创建使用自定义 ServiceAccount 的 pod

进入容器中查看 token:

