Administrer hemmeligheder i GitHub

Fuldført

Hemmeligheder er variabler, du opretter i en organisation, et lager eller et lagermiljø. Hemmelighederne er tilgængelige til brug i arbejdsprocesser for GitHub-handlinger. GitHub-handlinger kan kun læse en hemmelighed, hvis du eksplicit inkluderer hemmeligheden i en arbejdsproces.

For hemmeligheder, der er gemt på organisationsniveau, kan du bruge adgangspolitikker til at styre, hvilke lagre der kan bruge organisationshemmeligheder. Med hemmeligheder på organisationsniveau kan du dele hemmeligheder mellem flere lagre. Dette reducerer behovet for at oprette dublethemmeligheder. Opdatering af en organisationshemmelighed på én placering sikrer også, at ændringen træder i kraft i alle lagerarbejdsprocesser, der bruger denne hemmelighed.

For hemmeligheder, der er gemt på miljøniveau, kan du aktivere påkrævede korrekturlæsere for at styre adgangen til hemmelighederne. Et arbejdsprocesjob kan ikke få adgang til miljøhemmeligheder, medmindre det er godkendt af påkrævede godkendere.

Seddel

Du kan konfigurere dine arbejdsprocesser til at godkende direkte til Azure for at få adgang til ressourcer.

Navngivning af dine hemmeligheder

Følgende regler gælder for hemmelige navne:

  • Navne må kun indeholde alfanumeriske tegn ([a-z], [A-Z], [0-9]) eller understregningstegn (_). Mellemrum er ikke tilladt.
  • Navne må ikke starte med præfikset GITHUB_.
  • Navne må ikke starte med et tal.
  • Der skelnes ikke mellem store og små bogstaver i navne.
  • Navne skal være entydige på det niveau, de oprettes på.

Undgå at bruge strukturerede data som værdier for hemmeligheder for at sikre, at GitHub redigerer din hemmelighed i logge. Undgå f.eks. at oprette hemmeligheder, der indeholder JSON eller kodede Git-blobs.

Adgang til dine hemmeligheder

Angiv hemmeligheden som en input- eller miljøvariabel i arbejdsprocesfilen for at gøre den tilgængelig for en handling. Du kan bruge og læse hemmeligheder i en arbejdsprocesfil, hvis du har adgang til at redigere filen. Du kan finde flere oplysninger ved at gå til Adgangstilladelser til GitHub-.

Organisations- og lagerhemmeligheder læses, når en arbejdsproceskørsel sættes i kø, og miljøhemmeligheder læses, når et job, der refererer til miljøet, starter. Du kan også administrere hemmeligheder ved hjælp af REST-API'en.

Begrænsning af tilladelser til legitimationsoplysninger

Det anbefales, at du tildeler de minimumtilladelser, der er mulige. I stedet for at bruge personlige legitimationsoplysninger kan du f.eks. bruge udrulningsnøgler eller en tjenestekonto. Overvej at tildele skrivebeskyttede tilladelser, hvis det er det eneste, der er nødvendigt, og begræns adgangen så meget som muligt.

Når du opretter et personligt adgangstoken (klassisk), skal du vælge færrest nødvendige områder. Når du genererer et detaljeret personligt adgangstoken, skal du vælge de minimumtilladelser og lageradgang, der kræves.

Oprettelse af hemmeligheder

Hvis du vil oprette hemmeligheder eller variabler på GitHub for et personligt kontolager, skal du være lagerejer. Hvis du vil oprette hemmeligheder eller variabler på GitHub for et organisationslager, skal du have admin adgang. Hvis du vil oprette hemmeligheder eller variabler for et personligt kontolager eller et organisationslager via REST-API'en, skal du have samarbejdspartneradgang.

Hemmeligheder kan oprettes af:

  • Vælg Indstillinger på den øverste navigationslinje i dit lager.
  • I afsnittet Security i venstre navigationsrude skal du vælge rullelisten Hemmeligheder og variabler.
  • Vælg Handlinger for at få adgang til -handlingshemmeligheder og -variabler side.

Brug af hemmeligheder i en arbejdsproces

Hvis du vil angive en handling med en hemmelighed som en input- eller miljøvariabel, kan du bruge konteksten secrets til at få adgang til hemmeligheder, der er oprettet i dit lager. Følgende kode viser et eksempel på adgang til hemmeligheder i en arbejdsproces.

steps:
  - name: Hello world action
    with: # Set the secret as an input
      super_secret: ${{ secrets.SuperSecret }}
    env: # Or as an environment variable
      super_secret: ${{ secrets.SuperSecret }}

Der kan ikke refereres direkte til hemmeligheder i if: betingelser. Overvej at angive hemmeligheder som miljøvariabler på jobniveau og derefter referere til miljøvariabler til betinget kørsel af trin i jobbet.

Hvis værdien af en hemmelighed ikke er angivet, er returværdien for et udtryk, der refererer til hemmeligheden (f.eks. ${{ secrets.SuperSecret }} i eksemplet), en tom streng.