K8s em Exemplos: Contas de Serviço
| ServiceAccounts fornecem identidade para Pods. Pods os usam para autenticar na API do Kubernetes e serviços externos (via OIDC/IRSA). Cada namespace tem uma SA padrão. Token é automaticamente projetado no Pod. |
| serviceaccount.yaml | |
| ServiceAccount é um recurso com namespace. Crie ServiceAccounts dedicados para diferentes workloads em vez de usar o padrão. Token é montado em /var/run/secrets/kubernetes.io/serviceaccount/. | |
| pod-serviceaccount.yaml | |
| Atribua um ServiceAccount a Pods com | |
| serviceaccount-notoken.yaml | |
| Desabilite auto-mount do token da API se não necessário. Reduz superfície de ataque para Pods que não usam a API. Pode definir no nível do ServiceAccount ou Pod. | |
| serviceaccount-projected.yaml | |
| Tokens de service account projetados são limitados no tempo e vinculados a audiência. Mais seguros que tokens legados. Kubernetes 1.22+ usa tokens projetados por padrão com expiração de 1 hora (auto-rotacionados pelo kubelet). | |
| serviceaccount-irsa.yaml | |
| AWS IRSA (EKS) permite que Pods assumam IAM roles usando federação OIDC. Anote o ServiceAccount com o ARN da role. Pod recebe credenciais AWS automaticamente sem access keys. | |
| serviceaccount-gcp.yaml | |
| GCP Workload Identity vincula Kubernetes ServiceAccounts a service accounts do Google Cloud. Similar ao IRSA, sem chaves necessárias. Anote o ServiceAccount e crie IAM binding. | |
| serviceaccount-pull-secrets.yaml | |
| Image pull secrets podem ser anexados a ServiceAccounts. Todos os Pods usando aquele ServiceAccount automaticamente recebem os pull secrets. Útil para registries privados. | |
| terminal | |
| Debug problemas de ServiceAccount verificando mounts de token e RBAC. Token deve estar presente e válido. RBAC deve conceder permissões necessárias ao ServiceAccount. | |