Hoppa till innehållet
Stackship-dokumentation English

Stackship-plattformenAnvändareMaskinöversatt

Tjänstekonton

Skapa ett tjänstekonto för CI/CD eller en annan integration, ge det roller, hämta en token med dess autentiseringsuppgifter, och rotera eller radera det.

Kräver: rbac/members/write

Ett tjänstekonto är en principal för en maskin snarare än en person — en CI/CD-pipeline, ett skript, ett annat system. Det loggar in med ett klient-ID och en klienthemlighet i stället för ett lösenord, och kan göra exakt det som rollerna det tilldelats tillåter.

För att skapa, rotera och radera tjänstekonton krävs rbac/members/write på boundaryn; Owner och Platform Owner har den. För att lista dem krävs rbac/members/read.

Skapa ett tjänstekonto

  1. Öppna Inställningar → Identitet i sidomenyn och sedan fliken Tjänstekonton. Kontrollera att den boundary som är vald i sidomenyn är den som kontot är till för.
  2. Välj Skapa.
  3. Ange ett Namn, till exempel CI/CD Pipeline, och, om du vill, en Beskrivning (valfritt).
  4. Skapa kontot. Dialogen Autentiseringsuppgifter visar dess Klient-ID och Klienthemlighet.
  5. Kopiera båda och förvara dem där systemet som ska använda dem förvarar sina hemligheter — till exempel i ett valv eller i ditt CI-systems hemlighetslager. Välj sedan Klar.

Viktigt

Klienthemligheten visas bara en gång. Om den tappas bort roterar du hemligheten för att få en ny.

Klient-ID:t har formen sa- följt av en genererad identifierare; namnet du angav är bara kontots visningsnamn. Fliken Tjänstekonton listar också hanterade identiteter — de identiteter som plattformen skapar för arbetslaster; använd typfiltret för att skilja dem åt.

Med CLI:t:

bash
stsh iam sa create --set name=ci-pipeline --set description="Deploys from CI"

Ge det roller

Ett nytt tjänstekonto har inga roller och kan ingenting. Tilldela det roller som för vilken annan principal som helst: i Åtkomstkontroll (IAM) väljer du Lägg till rolltilldelning, söker efter tjänstekontot på dess namn och väljer roll och omfattning — se Tilldela en roll. Ge bara det som integrationen behöver, med den snävaste omfattning som fungerar.

Hämta en token

Ett tjänstekonto hämtar en åtkomsttoken från plattformens identitetsleverantör med OAuth 2.0-flödet client credentials, och skickar den till API:et som en bearer-token:

bash
curl -s https://auth.example.com/realms/stackship/protocol/openid-connect/token \
  -d grant_type=client_credentials \
  -d client_id="$CLIENT_ID" \
  -d client_secret="$CLIENT_SECRET"

Använd access_token från svaret som Authorization: Bearer <token> i anrop till https://api.example.com. Tokens är kortlivade — femton minuter om inte din plattform är konfigurerad annorlunda — så hämta en ny när den har gått ut. Se Autentisera.

CLI:t stsh loggar in som ett tjänstekonto när STACKSHIP_CLIENT_ID och STACKSHIP_CLIENT_SECRET är satta i dess miljö:

bash
export STACKSHIP_CLIENT_ID=sa-...
export STACKSHIP_CLIENT_SECRET=...
stsh whoami

CLI-kontexten behöver ändå identitetsleverantörens adress och realm, som stsh setup frågar efter.

Rotera hemligheten

Välj Rotera hemlighet på kontots rad och bekräfta. Den nya hemligheten visas en gång. Den tidigare hemligheten slutar fungera direkt; tokens som redan utfärdats med den gäller tills de går ut.

bash
stsh iam sa rotate-secret <service-account-id>

Radera ett tjänstekonto

Välj raderingsåtgärden på kontots rad och bekräfta Ta bort tjänstekonto?. Varje system som använder kontot förlorar åtkomsten så snart dess aktuella token går ut.

Att radera kontot tar inte bort dess rolltilldelningar. Ta bort dem i Åtkomstkontroll (IAM) också.

bash
stsh iam sa delete <service-account-id>