Saugumo tyrejai rado daugiau nei 135 000 OpenClaw egzemplioriu, kurie internete yra visiskai neapsaugoti. Daugelis ju buvo pazheidzhjami nuotoliniam kodo vykdymui. OpenClaw saugumo krize yra reali: kritines CVE, kenkejishki igudzhiai ir esminis problemos su tuo, kaip dauguma diegimu tvarko autentifikacija. OpenClaw paleidimas VPS su docker run yra paprastas. Saugus paleidimas yra visai kitas uzdavinys.

Kubernetes ishsprendzhia shi problema. Gaunate tinklo izoliacija, ishtekliu apribojimus, automatizuotus paleidimus is naujo ir saugumo numatytuosius nustatymus, kuriu rankinis konfiguravimas uzhimtu valandas. Su OpenClaw Kubernetes Operator visa tai gaunate is vieno YAML failo.

Shis vadovas nuves jus nuo nulio iki gamybai paruoshto OpenClaw agento Kubernetes aplinkoje. Kiekvienas YAML blokas yra paruoshtas kopijavimui ir iklijavimui.

Kodel operatorius

OpenClaw paleidimas Kubernetes aplinkoje yra daugiau nei Deployment ir Service. Jums reikia tinklo izoliacijos, paslapchiu valdymo, nuolatines saugyklos, sveikatos stebesenos, konfiguracijos diegimo ir pasirinktinai narshykles automatizavimo. Viso to teisingas sujungimas rankiniu budu yra nuobodus ir linkses i klaidas.

Kubernetes operatorius uzhkoduoja shiuos reikalavimus i viena tinkinami ishtekli. Jus deklaruojate, ko norite, o operatorius nuolat suderina tai i teisinga Kubernetes objektu rinkini. Su tuo gaunate:

  • Sauguma pagal numatytaji. Kiekvienas agentas veikia kaip UID 1000, visos Linux galimibes pashhalintos, seccomp ijungtas, tik skaitoma shakniné failu sistema ir pagal numatytaji draudzhianti NetworkPolicy, kuri leidzha tik DNS ir HTTPS isheinanchia komunikacija. Jokio rankinio sustiprinjmo nereikia.
  • Automatinius atnaujinimus su atshuakimu. Operatorius tikrina OCI registra del nauju versiju, padaro darbo erdves atsargine kopija, idiegia atnaujinima ir automatishkai atshuaka, jei naujas podas neishlaiko sveikatos patikru.
  • Konfiguracijos diegima. Pakeiskite savo spec.config.raw ir operatorius aptinka, kad turinio maishah pasikéite, ir paleidzhia nuoseklu atnaujinima. Tas pats paslapchiu rotacijai.
  • Atsarginiu kopiju kurima ir atkurima. Automatine darbo erdves atsarginé kopija i S3 suderinama saugykla egzemplioriaus trynimo metu. Atkurimas i nauja egzemplioriu is bet kurio momentinio vaizdo.
  • Vartu autentifikacija. Automatishkai generuoja vartu zhetona kiekvienam egzemplioriui. Jokio rankinio susiejimo, jokio mDNS (kuris Kubernetes aplinkoje vis tiek neveikia).
  • Nuokrypiu aptikima. Kas 5 minutes operatorius patikrina, ar kiekvienas valdomas ishteklius atitinka norima busena. Jei kas nors rankiniu budu redaguoja NetworkPolicy arba ishtrina PDB, tai suderinama atgal.

Butinosios salygos

Jums reikia:

  • Kubernetes klasterio (1.28+). Bet kuri suderinama distribucija veikia: EKS, GKE, AKS, k3s arba vietinis Kind klasteris testavimui.
  • kubectl, sukonfiguruoto komunikacijai su jusu klasteriu.
  • helm v3 idiegto.
  • API rakto jusu AI teikejui (Anthropic, OpenAI arba bet kuris OpenAI suderinamas galinis tashkas).

1 zhingsnis: Idiekite operatoriu

Operatorius pristatomas kaip OCI Helm chart. Viena komanda ji idiegia:

helm install openclaw-operator \
  oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
  --namespace openclaw-operator-system \
  --create-namespace

Patikrinkite, ar jis veikia:

kubectl get pods -n openclaw-operator-system

Turetumete matyti operatoriaus poda busenoje Running. Operatorius taip pat idiegia validuojanti webhook, kuris neleidzhia nesaugiu konfiguaraciju (tokiu kaip paleidimas root teisemis).

2 zhingsnis: Sukurkite savo API rakto paslaptí

Issaugokite savo AI teikejo API rakta Kubernetes Secret. Operatorius ji ives i agento konteineri:

kubectl create namespace openclaw

kubectl create secret generic openclaw-api-keys \
  --namespace openclaw \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here

OpenAI ar kitiems teikejams naudokite atitinkama aplinkos kintamojo pavadinima (OPENAI_API_KEY, OPENROUTER_API_KEY ir kt.). I ta pachi Secret galite itraukti kelis teikejus.

Patarimas: Gamybai apsvarstykite External Secrets Operator naudojima raktams sinchronizuoti is AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager ar Azure Key Vault. Operatoriaus dokumentacijoje yra detalus pavyzdzhiai.

3 zhingsnis: Idiekite pirma agenta

Sukurkite faila pavadinimu my-agent.yaml:

apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
  name: my-agent
  namespace: openclaw
spec:
  envFrom:
    - secretRef:
        name: openclaw-api-keys
  config:
    raw:
      agents:
        defaults:
          model:
            primary: "anthropic/claude-sonnet-4-20250514"
  storage:
    persistence:
      enabled: true
      size: 10Gi

Pritaikykite ji:

kubectl apply -f my-agent.yaml

Shis vienas ishteklius sukuria StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy ir vartu zhetono Secret. Operatorius visa tai suderina.

4 zhingsnis: Patikrinkite, ar jis veikia

Stebékite egzemplioriaus paleidima:

kubectl get openclawinstances -n openclaw -w
NAME       PHASE        READY   AGE
my-agent   Provisioning False   10s
my-agent   Running      True    45s

Kai faze rodo Running ir Ready yra True, jusu agentas yra aktyvus. Patikrinkite zhurnalus:

kubectl logs -n openclaw statefulset/my-agent -f

Noredami bendrauti su agentu, peradresuokite vartu prievada:

kubectl port-forward -n openclaw svc/my-agent 18789:18789

Tada atidarykite http://localhost:18789 narshykleje.

5 zhingsnis: Prijunkite kanala

OpenClaw palaiko Telegram, Discord, WhatsApp, Signal ir kitus zinuciu kanalus. Kiekvienas kanalas konfiguruojamas per aplinkos kintamuosius. Pridekite atitinkama zhetona prie savo Secret:

kubectl create secret generic openclaw-channel-keys \
  --namespace openclaw \
  --from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here

Tada nurodykite ji savo egzemplioriuje:

spec:
  envFrom:
    - secretRef:
        name: openclaw-api-keys
    - secretRef:
        name: openclaw-channel-keys

OpenClaw automatishkai aptinka zhetona ir ijungia kanala. Jokios papildomos konfiguracijos nereikia.


Tuo pagrindai aprépti. Jusu agentas veikia, yra apsaugotas ir pasiekiamas. Likusi shio vadovo dalis apima pasirinktines funkcijas, kurias galite ijungti, kai busite pasiruoshe.

Narshykles automatizavimas

OpenClaw gali narshyti internete, daryti ekrano kopijas ir saveikaut su puslapiais. Operatorius tai padaro vienos eilutes priedu. Jis paleidzhia sustipinta Chromium shalutini konteineri tame pachiame pode, sujungta per localhost:

spec:
  chromium:
    enabled: true
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
      limits:
        cpu: 1000m
        memory: 2Gi

Operatorius automatishkai iveda aplinkos kintamaji CHROMIUM_URL i pagrindini konteineri. Shalutinis konteineris veikia kaip UID 1001 su tik skaitoma shaknine failu sistema ir savo saugumo kontekstu.

Igudzhiai ir vykdymo laiko priklausomybes

OpenClaw igudzhius is ClawHub galima diegti deklaratyviai. Operatorius paleidzhia inicializacijos konteineri, kuris atsisiunchia kiekviena igudzi pries agento paleidima:

spec:
  skills:
    - "@anthropic/mcp-server-fetch"
    - "@anthropic/mcp-server-filesystem"

Jei jusu igudzhiams ar MCP serveriams reikia pnpm ar Python, ijunkite integruotus vykdymo laiko priklausomybiu inicializacijos konteinerius:

spec:
  runtimeDeps:
    pnpm: true    # Installs pnpm via corepack
    python: true  # Installs Python 3.12 + uv

Inicializacijos konteineriai idiegia shiuos irankius i duomenu PVC, todel jie ishlieka tarp paleidimu is naujo nepuchiand konteinerio atvaizdzho.

Automatiniai atnaujinimai

OpenClaw dazhni leidzhia naujas versijas. Operatorius gali jas automatishkai sekti, pries atnaujindamas padaryti atsarginé kopija ir atshuokti, jei kas nors nepavyksta:

spec:
  autoUpdate:
    enabled: true
    checkInterval: "12h"
    backupBeforeUpdate: true
    rollbackOnFailure: true
    healthCheckTimeout: "10m"

Kai registre pasirodo nauja versija, operatorius:

  1. Sukuria darbo erdves PVC atsarginé kopija S3 suderinams saugykloje
  2. Atnaujina atvaizdzio zyme StatefulSet
  3. Laukia iki healthCheckTimeout, kol podas ishlaiko parengties patikras
  4. Jei podas nesugeba tapti paruoshtu, atkuria ankstesne atvaizdzio zyme ir atsarginé kopija

Po 3 iš eilés nesekminku atshaukimu operatorius sustabdo automatinius atnaujinimus ir nustato salyga, kad galetumete ishtirti.

Pastaba: Automatinis atnaujinimas nieko nedaro su maishah prisegtais atvaizdzhiais (spec.image.digest). Jei prisegate maishah, atnaujinimus valdote rankiniu budu.

Gamybinis sustiprinimas

Operatorius pagal numatytaji yra saugus. Shtai papildomi nustatymai gamybiniams diegimams.

Stebesena su Prometheus

Ijunkite ServiceMonitor operatoriaus ir egzemplioriu metriku rinkimui:

spec:
  observability:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        interval: "30s"

Operatorius atskleidzhia openclaw_reconcile_total, openclaw_reconcile_duration_seconds, openclaw_instance_phase ir automatiniu atnaujinimu skaitiklius.

Planavimas skirtuose mazguose

Jei paleidzhiate mishru klasteri, naudokite nodeSelector ir tolerations agentu prisegimui prie skirtu mazgu:

spec:
  availability:
    nodeSelector:
      openclaw.rocks/nodepool: openclaw
    tolerations:
      - key: openclaw.rocks/dedicated
        value: openclaw
        effect: NoSchedule

Tinkintu isheineanchios komunikacijos taisykliu pridéjimas

Numatytoji NetworkPolicy leidzha tik DNS (prievadas 53) ir HTTPS (prievadas 443). Jei jusu agentas turi pasiekti kitas paslaugas (duomenu baze, zinuciu eile, vidini API), pridekite isheineanchios komunikacijos taisykles:

spec:
  security:
    networkPolicy:
      additionalEgress:
        - to:
            - ipBlock:
                cidr: 10.0.0.0/8
          ports:
            - port: 5432
              protocol: TCP

Debesies teikejo tapatibe

AWS IRSA ar GCP Workload Identity atveju anotuokite valdoma ServiceAccount:

spec:
  security:
    rbac:
      serviceAccountAnnotations:
        eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"

Korporatyviniai tarpiniai serveriai ir privatias CA

Jei jusu klasteris naudoja TLS perstipimanti tarpini serveri, iveskite CA paketa:

spec:
  security:
    caBundle:
      configMapName: corporate-ca-bundle
      key: ca-bundle.crt

Operatorius primontuoja CA paketa i visus konteinerius ir automatishkai nustato NODE_EXTRA_CA_CERTS.

GitOps

OpenClawInstance CRD yra paprastas YAML failas. Tai reishkia, kad jis tiesiogiai telpa i GitOps darbo eiga. Saugokite savo agentu manifestus git saugykloje ir leiskite ArgoCD ar Flux sinchronizuoti juos i jusu klasteri.

Tipine saugyklos struktura:

gitops/
└── agents/
    ├── kustomization.yaml
    ├── namespace.yaml
    ├── agent-a.yaml
    └── agent-b.yaml

Kiekvienas pakeitimas eina per suliejimo uzhklausa. Jusu komanda perzhiuri skirtuma. Suliejate su main ir ArgoCD ji pritaiko. Jokiu kubectl apply is nesziojamuju kompiuteriu, jokio konfiguracijos nuokrypio, pilnas audito pedsakas.

Operatoriaus konfiguracijos maishah funkcija padaro tai ypatc sklandzhiai. Kai ArgoCD sinchronizuoja pakeista spec.config.raw, operatorius aptinka, kad turinio maishah pasikéite, ir automatishkai paleidzhia nuoseklu atnaujinima. Tas pats paslapchiu rotacijai: operatorius stebi nurodytas paslaptis ir paleidzhia podus is naujo, kai jos pasikeichia.

Atsarginiu kopiju kurimas ir atkurimas

Operatorius palaiko S3 suderinamas atsargines kopijas. Kai ishtriniate egzemplioriu, operatorius automatishkai sukuria darbo erdves PVC atsarginé kopija pries pashhalinima.

Noredami atkurti agenta is atsargines kopijos i nauja egzemplioriu:

apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
  name: my-agent-restored
  namespace: openclaw
spec:
  restoreFrom: "s3://bucket/path/to/backup.tar.gz"
  envFrom:
    - secretRef:
        name: openclaw-api-keys
  storage:
    persistence:
      enabled: true
      size: 10Gi

Operatorius atsisiunchia momentini vaizda, ishpakuoja ji i PVC ir paleidzhia agenta su visais ankstesniais darbo erdves duomenimis, igudzhiais ir pokalbiu istorija.

Vietinis ishvedimas su Ollama

Jei norite, kad agentai naudotu vietinius modelius (del privatumo, delsos ar kashtu), operatorius turi pirmos klases Ollama palaikyma. Nereikia rankiniu budu nustatyti shalutinio konteinerio. spec.ollama tvarko konteineri, modeliu ishankstini atsisiuntima, saugykla ir GPU paskirstyma:

spec:
  ollama:
    enabled: true
    models:
      - "llama3.2"
      - "nomic-embed-text"
    gpu: 1
    resources:
      requests:
        cpu: "2"
        memory: 4Gi
      limits:
        cpu: "4"
        memory: 8Gi
    storage:
      sizeLimit: 30Gi

Kai ijungtas, operatorius:

  1. Prideda Ollama shalutini konteineri prie podo
  2. Paleidzhia inicializacijos konteineri, kuris ishanksto atsisiunchia ivardjntus modelius pries agento paleidima
  3. Iveda OLLAMA_HOST=http://localhost:11434 i pagrindini konteineri
  4. Paskiria prashoma NVIDIA GPU per nvidia.com/gpu ishtekliu apribojimus

Pagal numatytaji modeliai saugomi emptyDir tome su konfiguruojamu dydzho apribojimu. Nuolatiniam modeliu saugojimui tarp paleidimu is naujo (kad modeliai nebutu parsiunchiami kiekviena karta) naudokite esama PVC:

spec:
  ollama:
    enabled: true
    models: ["llama3.2"]
    storage:
      existingClaim: ollama-models-pvc

Tailscale integracija

Atskleizkite savo agenta savo tailnet be Ingress, apkrovos balansavimo ar vieshuju IP adresu. Operatoriaus spec.tailscale laukas tvarko autentifikacijos rakto ivedima, konfiguracijos praturtinima ir NetworkPolicy taisykles:

spec:
  tailscale:
    enabled: true
    mode: serve       # or "funnel" for public internet access
    authKeySecretRef:
      name: tailscale-authkey
    hostname: my-agent

Sukurkite autentifikacijos rakto paslaptí su laikinuoju, pakartotinai naudojamu raktu is Tailscale administravimo konsoles:

kubectl create secret generic tailscale-authkey \
  --namespace openclaw \
  --from-literal=authkey=tskey-auth-...

Rezhime serve (numatytasis) tik jusu tailnet nariai gali pasiekti agenta. Rezhime funnel Tailscale ji atskleidzhia vieshajam internetui su automatiniu HTTPS.

Operatorius automatishkai:

  • Iveda aplinkos kintamuosius TS_AUTHKEY ir TS_HOSTNAME
  • Sulieja gateway.tailscale.mode ir gateway.tailscale.resetOnExit i OpenClaw konfiguaracija
  • Prideda STUN ir WireGuard isheineanchios komunikacijos taisykles i NetworkPolicy

SSO prisijungimui be slaptazhodzho tailnet nariams, ijunkite authSSO:

spec:
  tailscale:
    enabled: true
    mode: serve
    authKeySecretRef:
      name: tailscale-authkey
    authSSO: true

Tai nustato gateway.auth.allowTailscale=true OpenClaw konfiguaracijoje, kad tailnet nariai galetu pasiekti agenta be atskiro vartu zhetono.

Tinkinti shalutiniai ir inicializacijos konteineriai

Naudojimo atvejams, virshhijantiems integruota Ollama ir Tailscale palaikyma, operatorius priima savavaliushkus shalutinius ir inicializacijos konteinerius. Paleiskite Cloud SQL Proxy duomenu bazes prieigai, zhurnalu persiunteja ar bet kuri kita pagelbini shalia savo agento:

spec:
  sidecars:
    - name: cloudsql-proxy
      image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2
      args: ["--structured-logs", "project:region:instance"]
      resources:
        requests:
          cpu: 100m
          memory: 128Mi

Tinkinti inicializacijos konteineriai paleidzhiami po operatoriaus savo inicializacijos vamzdyno (konfiguracijos nustatymas, pnpm, Python, igudzhiai):

spec:
  initContainers:
    - name: fetch-data
      image: curlimages/curl:8.5.0
      command: ["sh", "-c", "curl -o /data/dataset.json https://..."]
      volumeMounts:
        - name: data
          mountPath: /data

Konfiguracijos suliejimo rezhimas

Pagal numatytaji operatorius perrasho konfiguracijos faila kiekviename podo paleidime is naujo. Jei jusu agentas keicia savo konfiguaracija vykdymo metu (per igudzhius ar savaimini modifikavima), nustatykite mergeMode: merge giliam operatoriaus konfiguracijos suliejimui su esama PVC konfiguaracija:

spec:
  config:
    mergeMode: merge
    raw:
      agents:
        defaults:
          model:
            primary: "anthropic/claude-sonnet-4-20250514"

Suliejimo rezhime operatoriaus nurodyti raktai laimi, bet raktai, kuriuos agentas pridejo pats, ishlieka tarp paleidimu is naujo.

Pilnas pavyzdys

Shtai gamybai paruoshtas manifestas, jungiantis viska is shio vadovo:

apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
  name: production-agent
  namespace: openclaw
spec:
  envFrom:
    - secretRef:
        name: openclaw-api-keys

  config:
    mergeMode: merge
    raw:
      agents:
        defaults:
          model:
            primary: "anthropic/claude-sonnet-4-20250514"

  skills:
    - "@anthropic/mcp-server-fetch"

  runtimeDeps:
    pnpm: true

  chromium:
    enabled: true
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
      limits:
        cpu: 1000m
        memory: 2Gi

  ollama:
    enabled: true
    models: ["llama3.2"]
    gpu: 1
    resources:
      requests:
        cpu: "2"
        memory: 4Gi

  tailscale:
    enabled: true
    mode: serve
    authKeySecretRef:
      name: tailscale-authkey
    authSSO: true

  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 2000m
      memory: 4Gi

  storage:
    persistence:
      enabled: true
      size: 10Gi

  autoUpdate:
    enabled: true
    checkInterval: "24h"
    backupBeforeUpdate: true
    rollbackOnFailure: true

  observability:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true

  # Remove or adjust these if you don't use dedicated nodes
  availability:
    nodeSelector:
      openclaw.rocks/nodepool: openclaw
    tolerations:
      - key: openclaw.rocks/dedicated
        value: openclaw
        effect: NoSchedule

Pritaikykite ji ir turite sustiprinita, automatishkai atnaujinama, narshykles galimibes turinti AI agenta su vietiniu ishvedimu, tailnet priega, stebesena, atsarginemis kopijomis ir tinklo izoliacija. Vienas kubectl apply.

Ka gaunate is karto

Nepalietus ne vieno saugumo nustatymo, kiekvienas operatoriaus idiegtas agentas pristatomnas su:

  • Ne-root vykdymu (UID 1000)
  • Tik skaitoma shaknine failu sistema
  • Visos Linux galimibes pashhalintos
  • Seccomp RuntimeDefault profiliu
  • Pagal numatytaji draudzhianchia NetworkPolicy (tik DNS + HTTPS isheineanti komunikacija)
  • Kiekvieno egzemplioriaus ServiceAccount be automatinio zhetono prijungimo
  • PodDisruptionBudget
  • Gyvybikhhumo, parengties ir paleidimo zondai
  • Automatishkai sugeneruotas vartu autentifikacijos zhetonas
  • 5 minuciu nuokrypiu suderinimas

Validuojantis webhook blokuoja bandymus paleisti root teisemis ir perspeja apie ishungtas NetworkPolicy, trukstama TLS Ingress ir neaptiktus AI teikejo raktus.

Kiti zhingsniai

Jei kyla problemu ar turite atsiliépimu, atidarykite problema GitHub. Suliejimo uzhklausos taip pat laukiamos.

Jei nenorite patys valdyti Kubernetes, OpenClaw.rocks visa tai sutvarko uzh jus. Pasirinkite plana, prijunkite kanala ir jusu agentas yra aktyvus per sekundes.