Forbered en seriell gjenopprettingsvei før du endrer VPN på GCE
Å endre VPN-ruter på en Compute Engine-VM kan låse deg ute. Bevis skytillatelse, seriell utdata og en gjestelogin før du rører rutene.
Et ekstra SSH-vindu på samme grensesnitt er ikke en gjenopprettingsvei. Det deler ruten, brannmurregelen og daemonen du er i ferd med å endre, så det svikter nøyaktig i det øyeblikket du trenger det. Før du redigerer VPN-ruter på en Compute Engine-VM, må du bevise tre separate ting: at du kan bruke seriekonsollen, at du kan lese utdataene fra den, og at gjesten faktisk gir deg en innlogging. Kontrollene nedenfor kjøres i den rekkefølgen, billigst først, slik at en manglende tillatelse oppdages før den betyr noe.
Trinn 1: bekreft tillatelsen på skysiden
Navngi den nøyaktige VM-en, prosjektet og sonen, og kontroller deretter organisasjonens godkjente policy for seriell tilgang. Administratoren trenger den relevante tillatelsen, og interaktiv seriell tilgang må være aktivert for den instansen under prosjekt- og organisasjonskontrollene som gjelder.
Ikke svekk en organisasjonspolicy eller slå på konsoltilgang for et helt prosjekt for å forberede én maskin. Be eieren ordne den tillatte mekanismen før eksperimentet, ikke under avbruddet.
Trinn 2: bevis at du kan lese utdata
Å lese serielle utdata er den billigste kontrollen, og den øver transporten uten å røre gjestens innlogging:
gcloud compute instances get-serial-port-output VM_NAME \
--project PROJECT_ID --zone ZONE --port 1
Erstatt identifikatorene og bruk den tillatte porten. Oppstartsmeldinger og konsolprat forteller deg at kanalen virker. De beviser ikke at du kan få et shell. Derfor er dette trinnet atskilt fra det neste.
Trinn 3: bevis at du kan få en interaktiv innlogging
Tilkoblingskommandoen åpner en ekte sesjon, ikke en forhåndsvisning:
gcloud compute connect-to-serial-port VM_NAME \
--project PROJECT_ID --zone ZONE --port 1
Behandle den som en levende konsoll. Bekreft endepunktet før du skriver inn påloggingsinformasjon, fordi hvert tastetrykk lander på instansen.
Det er her en plan som så komplett ut, faller fra hverandre. Skytillatelse er én grense og Linux-innloggingsprompten er en annen, og å passere den første sier ingenting om den andre.
Trinn 4: forbered påloggingsinformasjon som gjesten godtar
Linux-avbildninger fra Google aktiverer ikke lokal passordbasert innlogging som standard. En seriell sesjon kan derfor nå en innloggingsprompt og stoppe der, og vente på påloggingsinformasjon som ingen har satt.
En godkjent gjenopprettingskonto, eller hvilken som helst dokumentert gjestelogginnmetode distribusjonen din bruker, må finnes og være testet. En SSH-nøkkel som virker over nettverket oppfyller ikke automatisk en passordprompt i konsollen, så kontroller den faktiske OS Login- og nøkkelordningen i stedet for å anta at den dekker dette tilfellet.
Hold gjenopprettingsopplysninger private. Et root-passord limt inn i et offentlig startup-script-eksempel er en annen hendelse som venter på å skje.
Trinn 5: registrer eieren og tilbakerullingen
Før du endrer noe, bevar den fungerende nettverkskonfigurasjonen og skriv ned hvem som administrerer den, hvilken VPN-tjeneste som er involvert og hvordan en tilbakerulling utføres. Fra en fungerende sesjon, ta vare på gjeldende ruter, regler og tjenestetilstand.
Det er registreringen som gjør en gjenopprettingskanal til en reparasjon, fordi konsollen bare gir deg en prompt. Skriv den før endringen, ikke senere fra hukommelsen. En tilbakerulling kopiert fra en wiki er ikke en tilbakerulling. Det er en gjetning med et versjonsnummer.
Trinn 6: verifiser etter endringen
En eksisterende SSH-sesjon kan overleve en policy som blokkerer nye, så test med en fersk normal administrasjonssesjon. Test deretter VPN-atferden du endret, separat.
Hold gjenopprettingskanalen åpen til begge kontrollene består, og lukk den deretter i henhold til tilgangspolicyen. Hvis SSH allerede er tapt og ingen konsollinnlogging er forberedt, slutt å behandle seriell tilgang som et sikkerhetsnett og start den autoriserte arbeidsflyten for kontogjenoppretting eller instansreparasjon. Å reise en ekstra VM som jump host reparerer verken gjestens vei eller de manglende påloggingsdataene.