Help us shape the future of Go! Take the 2026 Go Developer Survey

jit

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

* Package jit, geçici erişimin yaşam döngüsü: bir hedefte süreli hesap * açmak, süresi dolunca oturumlarını kesip hesabı sökmek, ve olmadıysa * olmadığını yüksek sesle söylemek. * * ⚠️ BU PAKET HEDEFTE ROOT'LA İŞ YAPIYOR. Her giriş yolu iki kural * taşıyor: denetim satırı BAĞLANMADAN ÖNCE yazılıyor ve yazılamazsa * bağlanılmıyor (httpapi/terminate.go ile aynı gerekçe); hedefe giden her * komut provision'ın planından geçiyor, burada komut kurulmuyor.

Index

Constants

View Source
const (
	/*
	 * MinDuration / MaxDuration, bir hakkın süresinin sınırları.
	 *
	 * ⚠️ ALT SINIR SÜPÜRÜCÜNÜN TURUNDAN UZUN. Süpürücü dakikada bir
	 * bakıyor; bir dakikalık hak, daha uygulanmadan geri alınmaya
	 * başlayabilirdi. ÜST SINIR "geçici"nin anlamını koruyor: otuz günden
	 * uzun bir hak kalıcı erişimdir ve o rol/hedef bağıyla verilmeli.
	 */
	MinDuration = 5 * time.Minute
	MaxDuration = 30 * 24 * time.Hour
)

Variables

View Source
var (
	ErrNotEnabled = errors.New("jit: management is not enabled on this bastion")
	ErrRevoked    = errors.New("jit: the grant has already been revoked")
)

Functions

This section is empty.

Types

type Outcome

type Outcome struct {
	Grant  store.JITGrant
	Report provision.Report
	// Terminated, geri almada kesilen açık oturum sayısı.
	Terminated int
}

Outcome, bir grant ya da revoke koşusunun sonucu: kayıt ve hedefte adım adım ne olduğu.

type Request

type Request struct {
	// Username, postern kullanıcısı; hedefteki hesap onun os_user'ı.
	Username string
	Target   string
	Groups   []string
	Sudo     *sudoers.Rule
	Duration time.Duration
	// CleanupGroups, geri almada postern'in bu hak için açtığı gruplardan
	// boş kalanları silme izni. Panelin onay kutusu; varsayılan evet.
	CleanupGroups bool
}

Request, istenen hak.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service, hakların yaşam döngüsünü yürütür.

func New

func New(db *store.Store, authority *ca.CA, live *proxy.Live, logger *slog.Logger) *Service

New, hizmeti kurar. live nil olabilir: o zaman süresi dolan hakkın açık oturumları kesilmez (yalnızca hesap sökülür) ve bu loglanır.

func (*Service) Grant

func (s *Service) Grant(ctx context.Context, req Request, actor string) (Outcome, error)

* Grant, hedefte süreli hesap açar. * * Sıra: doğrula → denetim satırı → bağlan → yeteneği ölç → durumu oku → * planla → KAYDI YAZ → uygula → sonucu yaz. Kayıt uygulamadan önce * yazılıyor (bkz. store.CreateJITGrant); plan uygulamadan önce reddederse * (yönetilemeyen makine, önceden var olan hesap, kötü ad) hedefe hiç * dokunulmadığı için kayıt da yok.

func (*Service) Revoke

func (s *Service) Revoke(ctx context.Context, id, actor, via string) (Outcome, error)

* Revoke, hakkı geri alır: açık oturumlar kesilir, hesap ve dosyaları * sökülür. Elle ve otomatik geri alma bu tek yoldan geçiyor. * * ⚠️ OTURUMLAR ÖNCE, HESAP SONRA. Hesap silinirken oturum açık kalsaydı, * kabuk sahipsiz bir UID ile koşmaya devam ederdi; sökme planı süreçleri * öldürüyor ama bastion'daki oturum kaydı ancak burada kapanıyor.

func (*Service) Run

func (s *Service) Run(ctx context.Context)

Run, süpürücüyü bağlam bitene kadar koşturur; açılışta bir tur yapıyor ki yeniden başlatma sırasında dolan haklar bir dakika daha beklemesin.

func (*Service) Sweep

func (s *Service) Sweep(ctx context.Context) (revoked, failed int)

* Sweep, süresi dolmuş hakları geri alır. Her turda her hak için ayrı bir * bağlantı; başarısızlık bir sonraki hakkı durdurmuyor.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL