Contas de Serviço e Identidade de Cargas de Trabalho
Aprenda como as Contas de Serviço fornecem uma identidade própria aos Pods, como os tokens funcionam e como conceder a eles acesso com o menor privilégio possível.
Contas de Serviço e Identidade de Cargas de Trabalho é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Identidade para cargas de trabalho
Os usuários se autenticam no Kubernetes, mas os Pods também precisam de uma identidade para poderem se comunicar com segurança com o servidor da API. Essa identidade é uma conta de serviço.
O que é uma conta de serviço
Uma ServiceAccount é um objeto associado a um espaço de nomes que representa a identidade de uma carga de trabalho. Todo Pod é executado sob uma conta, usando default por padrão se você não especificar outra.
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsAtribuindo uma conta de serviço a um Pod
Defina serviceAccountName na especificação do Pod para executá-lo sob uma identidade específica.
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0A credencial montada
O Kubernetes monta no Pod uma credencial JWT de curta duração para a ServiceAccount, usada para autenticar chamadas à API.
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenPor que a conta padrão é arriscada
A ServiceAccount default é compartilhada por todos os Pods de um espaço de nomes. Conceder permissões a ela exporia tudo em excesso. Prefira uma conta dedicada para cada carga de trabalho.
Desativando a montagem automática da credencial
Se um Pod nunca chamar a API, desative a montagem da credencial para reduzir a superfície de ataque.
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0Concedendo permissões com RBAC
Uma conta de serviço não tem poder até que você a associe a uma função. O sujeito da RoleBinding é a conta de serviço.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: reporter-read
namespace: analytics
subjects:
- kind: ServiceAccount
name: report-generator
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioPrivilégio mínimo na prática
- Uma conta de serviço por carga de trabalho
- Conceda apenas as ações e os recursos de que ela realmente precisa
- Restrinja o escopo a um espaço de nomes com uma Role quando possível, em vez de usar uma ClusterRole
Credenciais vinculadas e projetadas
As credenciais modernas são projetadas e vinculadas ao tempo de vida do Pod, com uma expiração curta. Elas são renovadas automaticamente, portanto uma credencial vazada é muito menos perigosa do que os segredos antigos de longa duração.
Identidade de carga de trabalho na nuvem
As plataformas de nuvem associam uma ServiceAccount do Kubernetes a uma identidade IAM da nuvem (por exemplo, IRSA na AWS e Workload Identity no GKE), para que os Pods acessem recursos da nuvem sem armazenar credenciais estáticas.
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleVerificando permissões
Use kubectl auth can-i fazendo-se passar pela ServiceAccount para confirmar que ela tem exatamente o acesso esperado.
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsVerificação rápida
Teste sua compreensão sobre contas de serviço.
Recapitulação
Você aprendeu que uma ServiceAccount fornece ao Pod sua própria identidade, apoiada por credenciais projetadas de curta duração. Aplique o princípio do menor privilégio com uma conta dedicada para cada carga de trabalho, conceda acesso por meio de associações RBAC, desative as montagens de credenciais quando não forem usadas e associe as contas a IAM da nuvem para obter acesso sem credenciais armazenadas.
Perguntas Frequentes
A aula “Contas de Serviço e Identidade de Cargas de Trabalho” é grátis?
Sim — o texto completo de “Contas de Serviço e Identidade de Cargas de Trabalho” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Contas de Serviço e Identidade de Cargas de Trabalho”?
Aprenda como as Contas de Serviço fornecem uma identidade própria aos Pods, como os tokens funcionam e como conceder a eles acesso com o menor privilégio possível. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Contas de Serviço e Identidade de Cargas de Trabalho”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Controle de acesso baseado em funções (RBAC)
- Políticas de rede para isolamento
- Padrões de segurança de pods
- Contas de Serviço e Identidade de Cargas de Trabalho