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 ketenax-api. Orang-orang membukahttps://tenax.example.comdi browser, atau menjalankantenax login --server https://tenax.example.comsekali, lalu login dengan email mereka; mereka tidak pernah memerlukan kubeconfig. Peran mereka berasal dariauth.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 aturauth.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 denganexport TENAX_SERVER=http://127.0.0.1:8080. Denganauth.provider: cloudflare-access, penerusan ini tidak memerlukan login Access: ia menjangkau port yang dilayani tenax-api hanya di127.0.0.1di dalam pod-nya, yang hanya bisa dijangkau olehkubectl port-forward, sehingga RBAC Kubernetes (pods/portforwarddi namespace Tenax) yang menentukan siapa yang boleh masuk, dengan peranauth.portForwardRole(bawaanrestorer-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.