测验:认证、授权与 RBAC
当 RoleBinding 引用 ClusterRole 时会发生什么?
- ClusterRole 的权限是在集群范围内授予的。
- apiserver 拒绝该组合,因为这是不允许的。
- ClusterRole 的规则仅适用于 RoleBinding 所在的命名空间内。
- 您还可以访问集群范围的资源,例如节点。
kubectl auth can-i --as= 实际上做了什么?
- 以该用户身份登录并代表您运行命令。
- 发出主体的令牌并将其缓存在本地。
- 它创建一个SubjectAccessReview并询问apiserver是否允许该主题,但不发送实际请求。
- kubeconfig 中包含的 RBAC 规则在本地进行评估。
为什么 kubeadm 会在 2 小时后自动删除上传到 upload-certs 的机密?
- 节省etcd存储空间
- 这是因为证书密钥本身每 2 小时轮换一次。
- 匹配 kubelet 客户端证书过期周期
- 尽管它是加密的,但它包含 CA 私钥,这是集群的根信任,以最大限度地减少暴露窗口。
Aggregate ClusterRole 的正确行为是什么?
- 控制器通过组合aggregationRule的标签选择器选择的其他ClusterRole的规则来填写规则。
- 通过直接编辑 ClusterRole 的规则,通过aggregationRule 对其进行管理。
- 自动为选定的角色创建 RoleBinding
- 只能组合命名空间范围角色。
如果我在 pod 规范中指定 automountServiceAccountToken: false 会发生什么?
- 对 pod 的 apiserver 的访问在网络级别被阻止。
- 容器中不存在令牌文件,因为未注入 kube-api-access 投影卷
- 关联的 ServiceAccount 对象被删除。
- 仅跳过该 Pod 的 RBAC 评估
工作人员加入仅需要令牌,但为什么控制平面加入需要额外的证书密钥?
- 因为控制平面需要开放更多的端口
- 新的控制面节点也必须是颁发证书的实体,因此需要CA私钥,并将密钥束加密并上传到集群。
- 这是因为 etcd 需要单独的密码。
- 这是因为控制平面节点的 kubelet 证书格式与工作节点的证书格式不同。