0Pricing
Kubernetes Basics · Aula

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 Kubernetes Basics 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 Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics 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: analytics

Atribuindo 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.0

A 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/token

Por 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.0

Concedendo 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.io

Privilé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-role

Verificando 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 analytics

Verificaçã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 Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics 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 Kubernetes Basics 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 Kubernetes Basics?

Nenhuma experiência prévia é necessária. Kubernetes Basics 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 Kubernetes Basics?

Sim. Cada aula de Kubernetes Basics 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

  1. Controle de acesso baseado em funções (RBAC)
  2. Políticas de rede para isolamento
  3. Padrões de segurança de pods
  4. Contas de Serviço e Identidade de Cargas de Trabalho
← Voltar para Kubernetes Basics