SXAccessSXAccessDoku
Dashboard öffnen

Registrierungsschlüssel

Wie sich eine Maschine registriert, wenn niemand da ist, der sich anmeldet - mit Ablaufdatum, Nutzungslimit und den Gruppen, denen sie zugeordnet wird.

Mit einem Registrierungsschlüssel registriert sich eine Maschine selbst, ohne dass sich jemand anmeldet. Sie verwenden ihn für Server, Container, CI-Runner, Routing-Geräte und alles andere, was keinen Browser hat und an dem niemand sitzt.

Behandeln Sie den Schlüssel wie ein Passwort: Wer ihn hat, kann Ihrer Organisation ein Gerät hinzufügen - in den Gruppen, die der Schlüssel nennt. Ein mit Schlüssel registriertes Gerät hat keinen Eigentümer und läuft nie ab: Es bleibt, bis Sie es löschen, es sei denn, der Schlüssel erzeugt temporäre Geräte (siehe unten).

Sie legen ihn unter Access → Enrollment keys → Create enrollment key an.

Der Reiter Enrollment keys auf der Seite Access, mit Status, belegten Geräteplätzen, zugewiesenen Gruppen und Ablaufdatum je Schlüssel.
Die Spalte „Used“ ist auf einen Blick lesbar: 0 / 1 ist ein unbenutzter Einmalschlüssel, 1 / 5 ein wiederverwendbarer mit vier verbleibenden Registrierungen.

Was Sie beim Anlegen festlegen

FeldWerteEmpfehlung
NameFreitextBenennen Sie ihn nach dem, was er registriert - ci-runners, filialen - nicht nach der Person, die ihn angelegt hat
Make this key reusableAus: ein Einmalschlüssel. An: ein wiederverwendbarer SchlüsselEin Einmalschlüssel ist mit der ersten Maschine verbraucht, die sich damit registriert
Expires inTage, standardmäßig 7. Leer bedeutet, dass der Schlüssel nie abläuftKürzer ist besser; Sie können jederzeit einen neuen ausstellen
Usage limitNur bei wiederverwendbaren Schlüsseln. Eine Anzahl von Geräten; leer bedeutet unbegrenztZählt jede Registrierung über die gesamte Lebensdauer des Schlüssels; ein gelöschtes Gerät gibt also keine Nutzung zurück. Ein wiederverwendbarer Schlüssel für einen Cluster mit 40 Knoten sollte ein Limit von etwa 40 haben statt gar keines
Temporary devicesAn oder ausMit diesem Schlüssel registrierte Geräte werden nach 10 Minuten offline entfernt. Für automatisch skalierte und Wegwerf-Maschinen
Allow Extra DNS LabelsAn oder ausErlaubt einem mit diesem Schlüssel registrierten Gerät, neben seinem eigenen weitere DNS-Namen zu registrieren. Das Gerät fordert sie bei der Registrierung an: Ergänzen Sie dazu den Befehl sxaccess start, der den Schlüssel verwendet, um --extra-dns-labels, eine Option auf Support-Ebene, die bis zu 32 Labels akzeptiert. Ein Schlüssel ohne diese Einstellung weist ein solches Gerät ab. Ein Gerät behält die Labels, mit denen es registriert wurde
Auto-assigned groupsOptional. Eine oder mehrere Gruppen, nie AllJedes mit diesem Schlüssel registrierte Gerät kommt in diese Gruppen; so erhält eine Maschine ihren Zugriff. Bleibt das Feld leer, sind die Geräte nur in All und erreichen nur, was Zugriffsregeln für All erlauben

Nach dem Anlegen

Ist ein Schlüssel einmal angelegt, lassen sich nur noch zwei Dinge ändern:

  • Seine automatischen Gruppen. Klicken Sie auf die Gruppen in der Zeile des Schlüssels, um sie zu bearbeiten. Die Änderung gilt für Geräte, die sich danach registrieren; bereits registrierte Geräte behalten ihre Gruppen.
  • Widerrufen. Revoke im Zeilenmenü verhindert, dass sich mit dem Schlüssel noch etwas registriert. Der Widerruf ist endgültig und entfernt nicht die Geräte, die der Schlüssel bereits registriert hat - löschen Sie diese gesondert, wenn auch sie verschwinden sollen.

Alles andere - Name, Typ, Ablauf, Nutzungslimit und die beiden Schalter - steht fest. Um daran etwas zu ändern, legen Sie einen neuen Schlüssel an und widerrufen den alten. Delete entfernt einen Schlüssel aus der Liste; auch das entfernt seine Geräte nicht.

Einen Schlüssel verwenden

Es gibt drei Wege, den Schlüssel an den CLI-Agenten zu übergeben: als Kommandozeilenoption, aus einer Datei oder aus einer Umgebungsvariable. Die Kommandozeilenoption eignet sich für einen einmaligen Aufruf an einer Maschine, vor der Sie sitzen, doch dann steht der Schlüssel in der ps-Ausgabe und in der Shell-Historie. Automatisierung sollte Datei oder Umgebungsvariable nutzen, denn beide halten das Geheimnis aus der ps-Ausgabe heraus. --enrollment-key (kurz -k) und --enrollment-key-file lassen sich nicht kombinieren.

Der Schlüssel wird nur zum Registrieren gebraucht. Ist die Maschine einmal ein Gerät, verbindet sie sich mit ihrer eigenen Identität, und sxaccess start auf einem bereits verbundenen Gerät gibt This device is already connected aus und ignoriert den Schlüssel.

shell - als Kommandozeilenoption
sxaccess start --enrollment-key 'A6160...'
shell - aus einer Datei
sxaccess start --enrollment-key-file /run/secrets/sxaccess-key
shell - aus der Umgebung
SX_ENROLLMENT_KEY='A6160...' sxaccess start

Auf einem Mac nimmt auch die SXAccess-App einen Schlüssel an: Wählen Sie auf dem ersten Bildschirm I have an enrollment key, fügen Sie den Schlüssel auf dem Anmeldebildschirm in das Feld Enrollment key ein und wählen Sie Enroll with key. Siehe die macOS-App. Mit den Apps für Windows, iOS und Android registrieren Sie ein Gerät nur per Anmeldung.

Temporäre Geräte

Ein CI-Runner, der elf Minuten lebt, sollte keinen Geräteeintrag hinterlassen. Schalten Sie für seinen Schlüssel Temporary devices ein, dann werden Geräte, die mit diesem Schlüssel registriert werden, nach 10 Minuten offline automatisch gelöscht, und die Geräteliste bildet weiterhin ab, was es tatsächlich gibt. In der API heißt diese Einstellung ephemeral.

Verwenden Sie diese Einstellung nicht für einen langlebigen Server, der nur manchmal offline ist - er wird im ausgeschalteten Zustand entfernt und muss sich als neues Gerät mit anderer Adresse erneut registrieren.

Umgang mit Schlüsseln

  • Ein Schlüssel je Zweck. Mit getrennten Schlüsseln für Build-Runner, Filialen und Staging können Sie einen widerrufen, ohne alles neu registrieren zu müssen.
  • Ein realistisches Nutzungslimit setzen. Ein Limit sorgt dafür, dass ein kompromittierter Schlüssel nur begrenzten Schaden anrichten kann.
  • Schlüsseln die engsten automatischen Gruppen geben. Die Gruppen des Schlüssels entscheiden, was diese Maschinen erreichen.
  • Nach Abschluss eines Rollouts widerrufen, statt auf den Ablauf zu warten.

Über die API

Die Schlüssel sind unter https://app.sxaccess.com/api/enrollment-keys erreichbar, mit einem Zugriffstoken im Header Authorization: Token. Die Felder entsprechen denen im Dashboard, mit zwei Unterschieden: type ist one-off oder reusable, und expires_in wird in Sekunden angegeben, wobei 0 bedeutet, dass der Schlüssel nie abläuft. Ein usage_limit von 0 bedeutet unbegrenzt. Den Schlüssel selbst enthält nur die Antwort auf die Anfrage, die ihn anlegt. Um seine Gruppen zu ändern oder ihn zu widerrufen, senden Sie PUT mit auto_groups und revoked. Siehe die API-Referenz.

shell - Schlüssel über die API anlegen
curl -sS -X POST https://app.sxaccess.com/api/enrollment-keys \  -H "Authorization: Token $SXACCESS_TOKEN" \  -H 'Content-Type: application/json' \  -d '{    "name": "ci-runners",    "type": "reusable",    "expires_in": 604800,    "usage_limit": 40,    "ephemeral": true,    "auto_groups": ["<ci-runners-gruppen-id>"]  }'