Pular para o conteúdo
Skillpedia
Diversos35 mil · #6208

securing-helm-chart-deployments

Garante a segurança das implantações de Helm. Verifica assinaturas, configurações e permissões para evitar vulnerabilidades.

O que ela faz

Esta ferramenta ajuda a tornar as instalações de pacotes (chamados 'charts') no Kubernetes mais seguras. Ela verifica a autenticidade dos pacotes, procura por erros de configuração nos modelos e garante que os aplicativos rodem com as permissões corretas.

Quando usar

  • ✓Ao instalar um novo pacote no Kubernetes.
  • ✓Ao revisar a segurança de um pacote existente.
  • ✓Ao configurar o ambiente de implantação.

Exemplo do que pedir para a IA

“Como posso garantir que o pacote que estou instalando no Kubernetes é confiável e não tem erros de segurança?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-helm-chart-deployments/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-helm-chart-deployments/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela verifica a assinatura digital do pacote para garantir que não foi alterado. Em seguida, simula a instalação para encontrar erros de configuração e aplica regras de segurança para limitar o que o aplicativo pode fazer.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill securing-helm-chart-deployments

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/securing-helm-chart-deployments/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Protegendo Implantações de Helm Charts

Visão Geral

Helm é o gerenciador de pacotes do Kubernetes. Proteger implantações de Helm exige validar a proveniência dos charts, escanear templates em busca de configurações de segurança incorretas, impor contextos de segurança de pods, gerenciar segredos de forma segura e controlar RBAC para operações de Helm.

Quando Usar

  • Ao implantar ou configurar recursos de proteção de implantações de Helm em seu ambiente
  • Ao estabelecer controles de segurança alinhados a requisitos de conformidade
  • Ao construir ou melhorar a arquitetura de segurança para este domínio
  • Ao realizar avaliações de segurança que exigem esta implementação

Pré-requisitos

  • Helm 3.12+ instalado
  • kubectl com acesso ao cluster
  • GnuPG para assinatura/verificação de charts
  • kubesec ou checkov para escaneamento de templates

Proveniência e Integridade de Charts

Assinar um Helm Chart

# Generate GPG key for signing
gpg --full-generate-key

# Package and sign chart
helm package ./mychart --sign --key "helm-signing@example.com" --keyring ~/.gnupg/pubring.gpg

# Verify chart signature
helm verify mychart-0.1.0.tgz --keyring ~/.gnupg/pubring.gpg

Verificar Chart Antes da Instalação

# Verify chart from repository
helm pull myrepo/mychart --verify --keyring /path/to/keyring.gpg

# Check chart provenance file
cat mychart-0.1.0.tgz.prov

Escaneamento de Segurança de Templates

Renderizar e Escanear Templates

# Render templates without deploying
helm template myrelease ./mychart --values values-prod.yaml > rendered.yaml

# Scan with kubesec
kubesec scan rendered.yaml

# Scan with checkov
checkov -f rendered.yaml --framework kubernetes

# Scan with trivy
trivy config rendered.yaml

# Scan with kube-linter
kube-linter lint rendered.yaml

Helm Lint para Configurações Incorretas

# Lint chart
helm lint ./mychart --values values-prod.yaml --strict

# Lint with debug output
helm lint ./mychart --debug

Imposição de Contexto de Segurança em values.yaml

# values.yaml - Security hardened defaults
securityContext:
  runAsNonRoot: true
  runAsUser: 1000
  runAsGroup: 3000
  fsGroup: 2000
  readOnlyRootFilesystem: true
  allowPrivilegeEscalation: false
  capabilities:
    drop:
      - ALL

podSecurityContext:
  seccompProfile:
    type: RuntimeDefault

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 100m
    memory: 128Mi

networkPolicy:
  enabled: true

serviceAccount:
  create: true
  automountServiceAccountToken: false

image:
  pullPolicy: Always
  # Use digest instead of tag for immutability
  # tag: "1.0.0"
  # digest: "sha256:abc123..."

Template com Contextos de Segurança

# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
spec:
  template:
    spec:
      automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
      securityContext:
        {{- toYaml .Values.podSecurityContext | nindent 8 }}
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          resources:
            {{- toYaml .Values.resources | nindent 12 }}

Gerenciamento de Segredos

Usar Segredos Externos (Não Valores de Helm)

# templates/external-secret.yaml
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: {{ include "mychart.fullname" . }}-secrets
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: aws-secretsmanager
    kind: ClusterSecretStore
  target:
    name: {{ include "mychart.fullname" . }}-secrets
  data:
    - secretKey: db-password
      remoteRef:
        key: production/database
        property: password

Plugin helm-secrets

# Install helm-secrets plugin
helm plugin install https://github.com/jkroepke/helm-secrets

# Encrypt values file
helm secrets encrypt values-secrets.yaml

# Deploy with encrypted secrets
helm secrets install myrelease ./mychart -f values.yaml -f values-secrets.yaml

# Decrypt for editing
helm secrets edit values-secrets.yaml

RBAC para Operações de Helm

# helm-deployer-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: helm-deployer
  namespace: production
rules:
  - apiGroups: ["", "apps", "batch", "networking.k8s.io"]
    resources: ["deployments", "services", "configmaps", "secrets", "ingresses", "jobs"]

…
Perguntas frequentes

O que são 'charts' no Kubernetes?

Charts são pacotes de aplicativos pré-configurados para o Kubernetes, facilitando a instalação e o gerenciamento de softwares.

Por que é importante verificar a assinatura de um chart?

Verificar a assinatura garante que o chart veio de uma fonte confiável e não foi modificado por terceiros mal-intencionados, prevenindo a instalação de software comprometido.

O que são 'contextos de segurança'?

São configurações que definem as permissões e restrições de segurança para os aplicativos que rodam no Kubernetes, como quais arquivos eles podem acessar ou quais comandos podem executar.

Detalhes

Descrição original do autor

Secures Helm chart deployments by verifying chart signatures and provenance, rendering and linting templates for misconfiguration, enforcing pod security contexts through values.yaml, moving secrets into an external store instead of Helm values, and scoping RBAC for Helm operations in CI/CD. Use when deploying charts to Kubernetes or reviewing chart provenance, templates, or release RBAC. Keywords

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6208
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas