Kubernetes安全与运维实践
1. 访问控制与ServiceAccount
在Kubernetes中,为了给机器用户提供访问权限,可以创建Kubernetes ServiceAccount,并在RBAC绑定的主体中引用它,而非直接使用用户。虽然有文档介绍为人类用户设置ServiceAccount,用户下载服务账户的证书来与Kubernetes交互,但这种方式不推荐,因为它脱离了身份系统。例如,当开发者离职,其在身份系统中的账户被停用,但他们为ServiceAccount下载的令牌仍会保持有效。
更好的做法是正确配置身份联合,仅为人类用户使用用户主体,这样当用户在身份系统中被停用,其Kubernetes访问权限也会被撤销。像Google Cloud这样的托管平台能轻松实现这种集成,而其他平台可能需要一些设置工作。
Kubernetes ServiceAccounts主要用于集群内的Pod需要自己访问Kubernetes API的情况。例如,创建一个Pod来监控另一个Deployment时,可以创建一个ServiceAccount作为RoleBinding的主体,并将该服务账户分配给Pod。Pod在进行API调用(包括使用kubectl)时可以使用该凭证。
2. 网络策略
默认情况下,集群中的每个Pod都可以与其他Pod通信。这虽然有助于不同命名空间的团队共享服务,但也意味着包括可能被入侵的Pod在内,都可以访问其他内部服务。为了控制网络流量和Pod之间的访问,包括限制一个命名空间中的Pod访问其他命名空间中的Pod,可以配置网络策略。
网络策略的工作方式是:如果没有NetworkPolicy应用于某个Pod(即没
超级会员免费看
订阅专栏 解锁全文
2215

被折叠的 条评论
为什么被折叠?



