opção
LarLar Skill Segurança gke-security

gke-security

google/skills google/skills

Reforça a segurança dos clusters do Google Kubernetes Engine (GKE) com o Workload Identity, o Secret Manager, o RBAC, a autorização de binários, as políticas de rede e os padrões de segurança de pods.

...Expandir tudo
16
Tempo atualizado 3 de Setembro de 2026

Segurança do GKE

Esta referência aborda a configuração de segurança para clusters do GKE. O caminho padrão impõe uma postura de segurança reforçada por padrão.

Ferramentas MCP: get_cluster, check_k8s_auth, get_k8s_resource, apply_k8s_manifest, update_cluster

Padrões de segurança do caminho ideal

Configuração Valor do Caminho Ideal Dia 0/1 Observações
workloadIdentityConfig.workloadPool .svc.id.goog Dia 0 Federação de Identidade de Carga de Trabalho para Pods
secretManagerConfig.enabled true Dia 1 Integração com o Google Secret Manager
secretManagerConfig.rotationConfig ativado: true, intervalo de rotação: 120s Dia 1 Rotação automática de segredos
rbacBindingConfig.enableInsecureBindingSystemAuthenticated false Dia 0 Bloqueia ligações do sistema legado : autenticadas
rbacBindingConfig.enableInsecureBindingSystemUnauthenticated false Dia 0 Bloqueia o sistema legado : ligações não autenticadas
nodeConfig.shieldedInstanceConfig.enableSecureBoot true Dia 0 Integridade de inicialização verificável
nodeConfig.shieldedInstanceConfig.enableIntegrityMonitoring true Dia 0 Verificações de integridade em tempo de execução
nodeConfig.workloadMetadataConfig.mode GKE_METADATA Dia 0 Bloqueia a API de metadados legada e aplica a Identidade de Carga de Trabalho
Configurações de cluster privado + Dataplane V2 Consulte a habilidade gke-networking Dia 0 Nós privados, imposição de endpoint privado, ADVANCED_DATAPATH

Federação de Workload Identity

A Workload Identity é a forma recomendada para os pods acessarem as APIs do Google Cloud. Ela elimina a necessidade de chaves estáticas de contas de serviço.

Configuração

# 1. Crie uma conta de serviço do Google (GSA)
gcloud iam service-accounts create  \
  --project  \
  --display-name "Workload Identity SA" \
  --quiet

# 2. Conceda funções do IAM à GSA
gcloud projects add-iam-policy-binding  \
  --member "serviceAccount:@.iam.gserviceaccount.com" \
  --role "" \
  --quiet

# 3. Criar uma conta de serviço do Kubernetes (KSA)
kubectl create namespace 
kubectl create serviceaccount  --namespace 

# 4. Vincular a KSA à GSA
gcloud iam service-accounts add-iam-policy-binding \
  @.iam.gserviceaccount.com \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:.svc.id.goog[/]" \
  --quiet

# 5. Anotar a KSA
kubectl annotate serviceaccount  \
  --namespace  \
  iam.gke.io/gcp-service-account=@.iam.gserviceaccount.com

Consulte assets/workload-identity-pod.yaml para ver um pod de teste.

Verificação

kubectl run workload-identity-test \
  --image=gcr.io/google.com/cloudsdktool/cloud-sdk:slim \
  --serviceaccount= --namespace= \
  --rm -it -- gcloud auth list --quiet

Integração com o Secret Manager

O caminho padrão habilita o Secret Manager com rotação automática. Os segredos são sincronizados com os segredos do Kubernetes.

# Verifique se o Secret Manager está habilitado no cluster
gcloud container clusters describe  --region  \
  --format="value(secretManagerConfig.enabled)" \
  --quiet

# Habilite se ainda não estiver (alteração no Dia 1)
gcloud container clusters update  --region  \
  --enable-secret-manager \
  --secret-manager-rotation-interval=120s \
  --quiet

Montagem de segredos por meio do volume CSI (exemplo de implantação)

Depois que o complemento Secret Manager estiver ativado, as cargas de trabalho poderão montar segredos como volumes usando o driver CSI do Secrets Store. Isso requer duas etapas:

  1. Definir uma `SecretProviderClass ` para especificar quais segredos devem ser recuperados do Secret Manager.
  2. Montar o volume em uma implantação (Deployment) que faça referência a essa classe.

[!IMPORTANTE] Prática recomendada para produção: sempre demonstre integrações de cargas de trabalho (como o Secret Manager CSI) usando manifestosde implantação padrão de produção em vez de manifestos de pod brutos.

Etapa 1: Criar a SecretProviderClass

apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: app-secrets-provider
  namespace: default
spec:
  provider: gke  # Identifica o provedor gerenciado pelo GKE
  parameters:
    secrets: |
      - resourceName: "projects//secrets/db-password/versions/latest"
        fileName: "db-password.txt"

Etapa 2: Montar o segredo em uma Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: secure-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: secure-app
  template:
    metadata:
      labels:
        app: secure-app
    spec:
      serviceAccountName: secure-ksa  # Deve estar vinculado a uma GSA com a função “Secret Accessor” do Secret Manager
      containers:
      - name: app
        image: 
        volumeMounts:
        - name: secrets-volume
          mountPath: "/var/secrets"
          readOnly: true
      volumes:
      - name: secrets-volume
        csi:
          driver: secrets-store.csi.k8s.io
          readOnly: true
          volumeAttributes:
            secretProviderClass: "app-secrets-provider"

Reforço de segurança do RBAC

O caminho padrão desativa ligações RBAC legadas e inseguras que concedem amplo acesso aos grupos `system:authenticated ` e `system:unauthenticated `.

# Verifique se as ligações inseguras estão desativadas
gcloud container clusters describe  --region  \
  --format="yaml(rbacBindingConfig)" \
  --quiet

Práticas recomendadas para RBAC:

  • Utilize funções (Roles) com escopo de namespace em vez de ClusterRoles com escopo de cluster
  • Faça a ligação a grupos ou contas de serviço específicos, nunca a ` system:authenticated`
  • Audite permissões via MCP: check_k8s_auth(parent="...", verb="list", resourceType="pods", namespace="...") (ou kubectl auth can-i --list --as=)
  • Revise as vinculações por meio do MCP: get_k8s_resource(parent="...", resourceType="clusterrolebinding") (ou kubectl get clusterrolebindings,rolebindings --all-namespaces)

Consulte a habilidade gke-multitenancy para planejamento de RBAC corporativo e https://docs.cloud.google.com/kubernetes-engine/docs/best-practices/rbac.md.txt

Autorização de binários

Não está habilitada por padrão no caminho padrão, mas é recomendada para a proveniência de imagens em produção:

# Ativar a autorização binária
gcloud container clusters update  --region  \
  --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE \
  --quiet

Políticas de rede

O Dataplane V2 (caminho padrão) oferece aplicação integrada de políticas de rede. Aplique a política “default-deny” por namespace:

# MCP (preferencial)
apply_k8s_manifest(parent="...", yamlManifest="")

# Recurso alternativo do kubectl
kubectl apply -f ./assets/default-deny-netpol.yaml -n 

Sandbox do GKE (gVisor)

Para executar cargas de trabalho não confiáveis em uma sandbox isolada:

# Ativar no cluster (clusters padrão)
gcloud container clusters update  --region  --enable-gke-sandbox --quiet

# Usar na especificação do pod
# Adicionar: runtimeClassName: gvisor

Padrões de Segurança de Pods (Caminho Padrão)

Os Padrões de Segurança de Pods definem três perfis que restringem o que os pods podem fazer. O perfil“restricted” é o padrão do caminho ideal para namespaces de produção.

Perfil Nível Caso de uso
privilegiado Sem restrições Espaços de nomes do sistema (kube-system),
: : : controladores de infraestrutura :
básico Mínima restrição Espaços de nomes compartilhados/dev, aplicativos legados
: : : em processo de migração :
restrito Caminho ideal Cargas de trabalho de produção — bloqueia
: : : escalonamento de privilégios, acesso ao host, :
: : : root :

Aplicar por meio de rótulos de namespace (Admissão de Segurança de Pod):

apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/audit: restricted

Estratégia de implementação gradual:

  1. Comece com avisos + auditoria nos namespaces existentes para identificar violações
  2. Corrija as cargas de trabalho não conformes (remova privilégios, hostNetwork, usuário root, etc.)
  3. Habilite a aplicação assim que todas as cargas de trabalho forem aprovadas

blocosrestritos: execução como root, escalonamento de privilégios, rede do host/PID/IPC, volumes de caminho do host e a maioria dos recursos. O arquivo de referência workload-identity-pod.yaml já está em conformidade.

Registro de políticas de rede (recomendado)

Com o Dataplane V2 (caminho padrão), você pode habilitar o registro de decisões de política de rede. Não é um padrão do caminho padrão — recomendado para auditoria de segurança.

gcloud container clusters update  --region  \
  --enable-network-policy-logging \
  --quiet

Isso registra as conexões permitidas e negadas, o que é útil para solucionar problemas nas regras da Política de Rede e auditar os fluxos de tráfego.

Funções comuns do IAM

As cinco funções IAM predefinidas mais comuns para o GKE:

Função Finalidade Quando usar
roles/container.admin Controle total sobre administradores da equipe da plataforma
: : clusters e : gerenciamento de clusters :
: : Kubernetes : ciclo de vida :
: : recursos : :
funções/container.clusterAdmin Gerenciam clusters, mas Operadores de cluster
: : não no nível do projeto : que criam/excluem :
: : IAM : clusters :
funções/container.developer Implantar cargas de trabalho Aplicativo
: : (pods, serviços, : desenvolvedores que implantam :
: : implantações) : em clusters existentes :
funções/container.viewer Acesso somente leitura ao Monitoramento,
: : clusters e : auditoria, ou :
: : Kubernetes : painéis somente leitura :
: : recursos : :
funções/container.clusterViewer Listar e obter pipelines de CI/CD que
: : detalhes do cluster : que necessitem do cluster :
: : apenas : metadados :

Princípio do privilégio mínimo: Comece com roles/container.viewer ou roles/container.developer e aumente os privilégios somente quando necessário. Evite conceder roles/container.admin de forma generalizada.

Contas de serviço e agentes

  • Agente de serviço do GKE (service-@container-engine-robot.iam.gserviceaccount.com): Criado automaticamente. Gerencia nós, rede e operações do cluster em seu nome. Não remova nem modifique suas permissões.
  • Conta de serviço do nó: por padrão, os nós usam a conta de serviço padrão do Compute Engine. Para produção, crie uma conta de serviço dedicada com o mínimo de permissões e atribua-a por meio da configuração do pool de nós.
  • Identidade de carga de trabalho: a maneira recomendada para os pods acessarem as APIs do Google Cloud. Mapeia uma conta de serviço do Kubernetes para uma conta de serviço do Google IAM — consulte a configuração da identidade de carga de trabalho acima.

Padrões de autenticação entre serviços

Padrões comuns para conceder às cargas de trabalho do GKE acesso a outros serviços do Google Cloud :

# Conceda acesso a uma carga de trabalho do GKE ao Cloud Storage
gcloud projects add-iam-policy-binding  \
  --member "serviceAccount:@.iam.gserviceaccount.com" \
  --role "roles/storage.objectViewer" \
  --quiet

# Conceder acesso ao Cloud SQL a uma carga de trabalho do GKE
gcloud projects add-iam-policy-binding  \
  --member "serviceAccount:@.iam.gserviceaccount.com" \
  --role "roles/cloudsql.client" \
  --quiet

# Conceder acesso ao Pub/Sub a uma carga de trabalho do GKE
gcloud projects add-iam-policy-binding  \
  --member "serviceAccount:@.iam.gserviceaccount.com" \
  --role "roles/pubsub.subscriber" \
  --quiet

Em todos os casos, a GSA deve estar vinculada a uma KSA por meio da Workload Identity (consulte a configuração acima). O pod então usa a KSA para se autenticar como a GSA.

Ver no GitHub
---
name: gke-security
description: Hardens Google Kubernetes Engine (GKE) clusters with Workload Identity, Secret Manager, RBAC, Binary Authorization, Network Policies, and Pod Security Standards.
---

# GKE Security

This reference covers security configuration for GKE clusters. The golden path
enforces a hardened security posture by default.

> **MCP Tools:** `get_cluster`, `check_k8s_auth`, `get_k8s_resource`,
> `apply_k8s_manifest`, `update_cluster`

## Golden Path Security Defaults

Setting                                                        | Golden Path Value                       | Day-0/1 | Notes
-------------------------------------------------------------- | --------------------------------------- | ------- | -----
`workloadIdentityConfig.workloadPool`                          | `<PROJECT>.svc.id.goog`                 | Day-0   | Workload Identity Federation for Pods
`secretManagerConfig.enabled`                                  | `true`                                  | Day-1   | Google Secret Manager integration
`secretManagerConfig.rotationConfig`                           | `enabled: true, rotationInterval: 120s` | Day-1   | Automatic secret rotation
`rbacBindingConfig.enableInsecureBindingSystemAuthenticated`   | `false`                                 | Day-0   | Blocks legacy `system:authenticated` bindings
`rbacBindingConfig.enableInsecureBindingSystemUnauthenticated` | `false`                                 | Day-0   | Blocks legacy `system:unauthenticated` bindings
`nodeConfig.shieldedInstanceConfig.enableSecureBoot`           | `true`                                  | Day-0   | Verifiable boot integrity
`nodeConfig.shieldedInstanceConfig.enableIntegrityMonitoring`  | `true`                                  | Day-0   | Runtime integrity checks
`nodeConfig.workloadMetadataConfig.mode`                       | `GKE_METADATA`                          | Day-0   | Blocks legacy metadata API, enforces Workload Identity
Private cluster + Dataplane V2 settings                        | See the `gke-networking` skill          | Day-0   | Private nodes, private endpoint enforcement, ADVANCED_DATAPATH

## Workload Identity Federation

Workload Identity is the recommended way for pods to access Google Cloud APIs.
It eliminates the need for static service account keys.

### Setup

```bash
# 1. Create a Google Service Account (GSA)
gcloud iam service-accounts create <GSA_NAME> \
  --project <PROJECT_ID> \
  --display-name "Workload Identity SA" \
  --quiet

# 2. Grant IAM roles to the GSA
gcloud projects add-iam-policy-binding <PROJECT_ID> \
  --member "serviceAccount:<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
  --role "<ROLE>" \
  --quiet

# 3. Create Kubernetes Service Account (KSA)
kubectl create namespace <NAMESPACE>
kubectl create serviceaccount <KSA_NAME> --namespace <NAMESPACE>

# 4. Bind KSA to GSA
gcloud iam service-accounts add-iam-policy-binding \
  <GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:<PROJECT_ID>.svc.id.goog[<NAMESPACE>/<KSA_NAME>]" \
  --quiet

# 5. Annotate KSA
kubectl annotate serviceaccount <KSA_NAME> \
  --namespace <NAMESPACE> \
  iam.gke.io/gcp-service-account=<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com
```

> See [assets/workload-identity-pod.yaml](./assets/workload-identity-pod.yaml)
> for a test pod.

### Verification

```bash
kubectl run workload-identity-test \
  --image=gcr.io/google.com/cloudsdktool/cloud-sdk:slim \
  --serviceaccount=<KSA_NAME> --namespace=<NAMESPACE> \
  --rm -it -- gcloud auth list --quiet
```

## Secret Manager Integration

The golden path enables Secret Manager with automatic rotation. Secrets are
synced to Kubernetes Secrets.

```bash
# Verify Secret Manager is enabled on cluster
gcloud container clusters describe <CLUSTER_NAME> --region <REGION> \
  --format="value(secretManagerConfig.enabled)" \
  --quiet

# Enable if not already (Day-1 change)
gcloud container clusters update <CLUSTER_NAME> --region <REGION> \
  --enable-secret-manager \
  --secret-manager-rotation-interval=120s \
  --quiet
```

### Mounting Secrets via CSI Volume (Deployment Example)

Once the Secret Manager add-on is enabled, workloads can mount secrets as
volumes using the Secrets Store CSI driver. This requires two steps:

1.  **Define a `SecretProviderClass`** to specify which secrets to retrieve from
    Secret Manager.
2.  **Mount the volume in a `Deployment`** referencing that class.

> [!IMPORTANT] **Production Best Practice**: Always demonstrate workload
> integrations (like Secret Manager CSI) using production-standard
> **`Deployment`** manifests rather than raw `Pod` manifests.

#### Step 1: Create the SecretProviderClass

```yaml
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: app-secrets-provider
  namespace: default
spec:
  provider: gke  # Identifies GKE managed provider
  parameters:
    secrets: |
      - resourceName: "projects/<PROJECT_ID>/secrets/db-password/versions/latest"
        fileName: "db-password.txt"
```

#### Step 2: Mount the secret in a Deployment

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: secure-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: secure-app
  template:
    metadata:
      labels:
        app: secure-app
    spec:
      serviceAccountName: secure-ksa  # Must be bound to GSA with Secret Manager Secret Accessor role
      containers:
      - name: app
        image: <IMAGE>
        volumeMounts:
        - name: secrets-volume
          mountPath: "/var/secrets"
          readOnly: true
      volumes:
      - name: secrets-volume
        csi:
          driver: secrets-store.csi.k8s.io
          readOnly: true
          volumeAttributes:
            secretProviderClass: "app-secrets-provider"
```

## RBAC Hardening

The golden path disables insecure legacy RBAC bindings that grant broad access
to `system:authenticated` and `system:unauthenticated` groups.

```bash
# Verify insecure bindings are disabled
gcloud container clusters describe <CLUSTER_NAME> --region <REGION> \
  --format="yaml(rbacBindingConfig)" \
  --quiet
```

**Best practices for RBAC:**

-   Use namespace-scoped Roles over cluster-wide ClusterRoles
-   Bind to specific Groups or ServiceAccounts, never to `system:authenticated`
-   Audit permissions via MCP: `check_k8s_auth(parent="...", verb="list",
    resourceType="pods", namespace="...")` (or `kubectl auth can-i --list
    --as=<user>`)
-   Review bindings via MCP: `get_k8s_resource(parent="...",
    resourceType="clusterrolebinding")` (or `kubectl get
    clusterrolebindings,rolebindings --all-namespaces`)

> See the `gke-multitenancy` skill for enterprise RBAC planning and
> https://docs.cloud.google.com/kubernetes-engine/docs/best-practices/rbac.md.txt

## Binary Authorization

Not enabled in golden path by default but recommended for production image
provenance:

```bash
# Enable Binary Authorization
gcloud container clusters update <CLUSTER_NAME> --region <REGION> \
  --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE \
  --quiet
```

## Network Policies

Dataplane V2 (golden path) provides built-in Network Policy enforcement. Apply
default-deny per namespace:

```
# MCP (preferred)
apply_k8s_manifest(parent="...", yamlManifest="<contents of default-deny-netpol.yaml>")

# kubectl fallback
kubectl apply -f ./assets/default-deny-netpol.yaml -n <NAMESPACE>
```

## GKE Sandbox (gVisor)

For running untrusted workloads in an isolated sandbox:

```bash
# Enable on cluster (Standard clusters)
gcloud container clusters update <CLUSTER_NAME> --region <REGION> --enable-gke-sandbox --quiet

# Use in pod spec
# Add: runtimeClassName: gvisor
```

## Pod Security Standards (Golden Path)

Pod Security Standards define three profiles that restrict what pods can do. The
**`restricted` profile is the golden path default** for production namespaces.

| Profile      | Level                 | Use Case                           |
| ------------ | --------------------- | ---------------------------------- |
| `privileged` | Unrestricted          | System namespaces (`kube-system`), |
:              :                       : infrastructure controllers         :
| `baseline`   | Minimally restrictive | Shared/dev namespaces, legacy apps |
:              :                       : being migrated                     :
| `restricted` | **Golden path**       | Production workloads -- blocks     |
:              :                       : privilege escalation, host access, :
:              :                       : root                               :

**Enforce via namespace labels (Pod Security Admission):**

```yaml
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/audit: restricted
```

**Gradual rollout strategy:**

1.  Start with `warn` + `audit` on existing namespaces to identify violations
2.  Fix non-compliant workloads (remove `privileged`, `hostNetwork`, root user,
    etc.)
3.  Enable `enforce` once all workloads pass

`restricted` blocks: running as root, privilege escalation, host
networking/PID/IPC, host path volumes, and most capabilities. The golden path
`workload-identity-pod.yaml` already complies.

## Network Policy Logging (Recommended)

With Dataplane V2 (golden path), you can enable logging for Network Policy
decisions. **Not a golden path default** -- recommended for security auditing.

```bash
gcloud container clusters update <CLUSTER_NAME> --region <REGION> \
  --enable-network-policy-logging \
  --quiet
```

This logs allowed and denied connections, useful for troubleshooting Network
Policy rules and auditing traffic flows.

## Common IAM Roles

The five most common predefined IAM roles for GKE:

| Role                            | Purpose             | When to Use          |
| ------------------------------- | ------------------- | -------------------- |
| `roles/container.admin`         | Full control over   | Platform team admins |
:                                 : clusters and        : managing cluster     :
:                                 : Kubernetes          : lifecycle            :
:                                 : resources           :                      :
| `roles/container.clusterAdmin`  | Manage clusters but | Cluster operators    |
:                                 : not project-level   : who create/delete    :
:                                 : IAM                 : clusters             :
| `roles/container.developer`     | Deploy workloads    | Application          |
:                                 : (pods, services,    : developers deploying :
:                                 : deployments)        : to existing clusters :
| `roles/container.viewer`        | Read-only access to | Monitoring,          |
:                                 : clusters and        : auditing, or         :
:                                 : Kubernetes          : read-only dashboards :
:                                 : resources           :                      :
| `roles/container.clusterViewer` | List and get        | CI/CD pipelines that |
:                                 : cluster details     : need cluster         :
:                                 : only                : metadata             :

> **Principle of least privilege**: Start with `roles/container.viewer` or
> `roles/container.developer` and escalate only as needed. Avoid granting
> `roles/container.admin` broadly.

## Service Accounts & Agents

-   **GKE Service Agent**
    (`service-<PROJECT_NUMBER>@container-engine-robot.iam.gserviceaccount.com`):
    Automatically created. Manages nodes, networking, and cluster operations on
    your behalf. Do not remove or modify its permissions.
-   **Node Service Account**: By default, nodes use the Compute Engine default
    service account. For production, create a dedicated SA with minimal
    permissions and assign it via node pool config.
-   **Workload Identity**: The recommended way for pods to access Google Cloud
    APIs. Maps a Kubernetes ServiceAccount to a Google IAM ServiceAccount — see
    [Workload Identity setup](#workload-identity-federation) above.

## Cross-Service Authentication Patterns

Common patterns for granting GKE workloads access to other Google Cloud
services:

```bash
# Grant a GKE workload access to Cloud Storage
gcloud projects add-iam-policy-binding <PROJECT_ID> \
  --member "serviceAccount:<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
  --role "roles/storage.objectViewer" \
  --quiet

# Grant a GKE workload access to Cloud SQL
gcloud projects add-iam-policy-binding <PROJECT_ID> \
  --member "serviceAccount:<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
  --role "roles/cloudsql.client" \
  --quiet

# Grant a GKE workload access to Pub/Sub
gcloud projects add-iam-policy-binding <PROJECT_ID> \
  --member "serviceAccount:<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
  --role "roles/pubsub.subscriber" \
  --quiet
```

In all cases, the GSA must be bound to a KSA via Workload Identity (see setup
above). The pod then uses the KSA to authenticate as the GSA.

Todos os arquivos

0 arquivos

Instalar gke-security

Baixe e descompacte os arquivos de habilidades no diretório .claude/skills/.

Baixar ZIP

Clone o repositório e copie os arquivos da habilidade para o seu projeto.

git clone https://github.com/google/skills/tree/main/skills/cloud/gke-security # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuração rápida: Copie a pasta da habilidade para .claude/skills/ O Claude detectará e utilizará automaticamente a habilidade
Repositório google/skills

Habilidades relacionadas

gmgn-portfolio
Tempo atualizado 1 de Julho de 2026
zeroize-audit
Tempo atualizado 1 de Julho de 2026
device-integrity
Tempo atualizado 29 de Junho de 2026
flutter-use-http-package
Tempo atualizado 30 de Junho de 2026
OR