Kubernetes 中的服务账户(ServiceAccounts)为 Pod 中运行的进程提供了一种与 Kubernetes API 进行身份验证和交互的方式。它们对于管理集群内的权限和安全性至关重要。
下面的代码片段展示了如何创建 ServiceAccount 并将其与角色绑定。
[代码清单]
# Create a ServiceAccount
kubectl create serviceaccount my-service-account
# Bind the ServiceAccount to a role (e.g., view role)
kubectl create clusterrolebinding my-service-account-binding --clusterrole=view --serviceaccount=default:my-service-account
[执行结果]
serviceaccount/my-service-account created
clusterrolebinding.rbac.authorization.k8s.io/my-service-account-binding created
除非另有规定,否则服务账户会自动在 “默认 ”命名空间中创建。创建 Pod 时,可将其与 ServiceAccount 关联,后者会为 Pod 提供用于验证 API 请求的令牌。该令牌安装在 Pod 的特定路径上,允许应用程序无缝使用。了解如何管理 ServiceAccounts 及其权限对于维护 Kubernetes 环境的安全性和访问控制至关重要。
[小知识]
每个 ServiceAccount 都与一组由基于角色的访问控制(RBAC)定义的权限相关联,允许对资源进行细粒度访问。
默认情况下,Kubernetes 会在每个命名空间中创建一个名为 “默认 ”的 ServiceAccount,如果没有指定其他 ServiceAccount,就可以使用它。
服务账户可与 Kubernetes Secrets 结合使用,以安全地管理敏感信息。