Skip to content

Orbit authentication with Fleet #7109

Closed
@sharvilshah

Description

@sharvilshah

Goal

In order to us to remotely manage osquery flags (CLI flags in osquery which requires restarting osquery on the host), orbit should "enroll" and authenticate with Fleet

Parent Epic

How?

  • Create a new /orbit endpoint on Fleet
    • This new endpoint will be used for all subsequent orbit related API calls (/orbit/enroll, /orbit/<team|host>/flags, etc)
  • EnrollRequest <> EnrollResponse
    • When orbit requests an enroll on the new endpoint, Fleet should create a new orbit_node_key similar to osquery's node_key
    • orbit should use the existing enroll_secret to request an enrollment with Fleet
    • orbit should save the node_key locally (initially on filesystem, later migrate to something like Pebble by CockroachDB (https://pkg.go.dev/github.com/cockroachdb/pebble)
    • re-enrollment and invalidation:
      • Ideally both orbit and osquery node-keys should handle invalidation and reenrollment in tandem (TBD)
      • Failure scenario: what happens when Fleet is unreachable (retry?) (TBD)
  • Extend host MySQL datastore to store the following: host_id, node_key, orbit_node_key
    • orbit and osquery on the same host, shouldn't cause duplicate hosts

Metadata

Metadata

Assignees

Labels

~agentRelated to Fleet's osquery runtime and agent autoupdater (Orbit)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions