Lewati ke isi

Konsol, CLI, dan akses

Konsol dan CLI memakai API JSON yang sama (referensi), sehingga keduanya berbagi autentikasi, peran, dan log audit.

Peran

Peran Dapat
viewer Melihat target, cadangan, diff, ringkasan perubahan, pemulihan, dan sandbox.
operator + cadangkan sekarang, verifikasi sekarang, jeda dan lanjutkan, pulihkan ke sandbox, kueri dan kelola sandbox, baca log audit.
restorer + pulihkan ke basis data baru atau sebagai unduhan.
restorer-admin + pulihkan di tempat, sematkan dan lepas sematan cadangan.

Peran dipetakan dari email dan grup Cloudflare Access di chart:

auth:
  provider: cloudflare-access
  roles:
    viewer: ["*@example.com"]
    operator: ["group:sre"]
    restorer: [alice@example.com]
    restorer-admin: [bob@example.com]
  scopes:                               # optional: limit someone to some orgs or projects
    contractor@example.com: { orgs: [acme] }

Tenax memverifikasi JWT Cf-Access-Jwt-Assertion (team domain dan audience) pada setiap permintaan, sehingga permintaan yang melewati tunnel ditolak. Saat Tenax menerbitkan konsol (lihat di bawah), Tenax menemukan team domain dan audience dengan sendirinya; untuk aplikasi Access yang Anda kelola sendiri, atur auth.cloudflareAccess.teamDomain dan audience. Dengan auth.provider: none (hanya untuk pengembangan lokal), setiap permintaan mendapat auth.devRole.

Menjangkau konsol

Ada dua jalan masuk, dan keduanya dapat dipakai bersamaan:

  • Untuk orang tanpa akses klaster: alamat publik di balik login. Atur hostname, dan Tenax menerbitkan konsol di sana melalui tunnel Cloudflare-nya: aplikasi Access yang mengizinkan orang yang sama seperti rute sandbox (expose.cloudflare.allowEmails / allowGroups), record DNS, dan rute ke tenax-api. Orang-orang membuka https://tenax.example.com di browser, atau menjalankan tenax login --server https://tenax.example.com sekali, lalu login dengan email mereka; mereka tidak pernah memerlukan kubeconfig. Peran mereka berasal dari auth.roles.

    auth:
      provider: cloudflare-access
      roles: { viewer: ["*@example.com"], restorer: [alice@example.com] }
    expose:
      provider: cloudflare
      cloudflare: { zone: example.com, apiTokenSecret: tenax-cloudflare-api, allowEmails: ["*@example.com"] }
      cloudflared: { enabled: true, consoleHostname: tenax.example.com }
    

    Controller menjaga rute tetap ada dan menyimpan team domain serta audience aplikasi di Secret tenax-console-access, yang dibaca tenax-api; sampai Secret itu ada, konsol menjawab "console login not ready". Untuk membaca team domain, token API memerlukan Access: Organizations, Identity Providers, and Groups: Read; tanpanya Tenax membacanya dari redirect login konsol, atau atur auth.cloudflareAccess.teamDomain.

  • Untuk orang dengan akses klaster: tenax console. Perintah ini meneruskan port lokal ke konsol melalui kubeconfig Anda dan membukanya di browser. Perintah ini terus berjalan sampai Ctrl+C; dari terminal lain, perintah lainnya memakainya dengan export TENAX_SERVER=http://127.0.0.1:8080. Dengan auth.provider: cloudflare-access, penerusan ini tidak memerlukan login Access: ia menjangkau port yang dilayani tenax-api hanya di 127.0.0.1 di dalam pod-nya, yang hanya bisa dijangkau oleh kubectl port-forward, sehingga RBAC Kubernetes (pods/portforward di namespace Tenax) yang menentukan siapa yang boleh masuk, dengan peran auth.portForwardRole (bawaan restorer-admin; kosong berarti port dimatikan).

CLI

Cara memasang dan menghubungkannya: Instal CLI. Semua perintah: Referensi CLI.

Log audit

Setiap penulisan (cadangkan sekarang, pemulihan, sematan, perubahan sandbox) dan setiap kueri dicatat beserta pengguna, peran, target, hasil, dan alamat sumbernya, di log terstruktur tenax-api dan di halaman Audit konsol.