Instanssiyhteys
Avaa interaktiivinen pääte omalla instanssillasi komennolla fm shell. Instanssin agentti soittaa ulos Frostmolniin ja pääte kulkee sitä yhteyttä pitkin, joten tämä reitti ei tarvitse julkista IP:tä, avointa porttia, mitään instanssilla kuuntelevaa eikä sinun avaintasi — eikä se avaa yhtään sisääntuloa.
Tämä ei ole SSH: se ei käytä porttia 22, avainta ei tarvita, eikä sinun tarvitse avata mitään suojausryhmässä — siksi komento on fm shell eikä fm ssh (sekä fm ssh että fm session toimivat yhä aliaksina). Tämä ei muuta itse instanssia mitenkään: mitä se kuuntelee, sitä se kuuntelee edelleen, ja SSH omaan instanssiisi toimii ennallaan ja on täysin tuettu. Instanssiyhteys on lisätapa päästä sisään, hyödyllinen juuri silloin kun SSH ei ole: instanssi ilman julkista IP:tä, suojausryhmä joka sulkee sinut ulos, avain jota sinulla ei enää ole.
Se valitaan instanssia luotaessa
Sitä ei voi lisätä olemassa olevaan instanssiin
Instanssiin pääsee tällä tavalla vain, jos se luotiin instanssiyhteys käytössä. Agentti saa identiteettinsä instanssilta ensimmäisellä käynnistyksellä, eikä ole mitään reittiä rekisteröidä jo käynnissä olevaa instanssia. Jos haluat päätteen olemassa olevalle instanssille, luo se uudelleen.
Ota se käyttöön luontihetkellä, komentoriviltä tai Terraformista. Portaalin luontilomake ei tarjoa sitä vielä.
fm compute instance create \
--name web-1 \
--image <image-id> \
--flavor gp1.small \
--instance-accessresource "frostmoln_instance" "web" {
name = "web-1"
instance_access = true
# ...
}Terraformissa instance_access on asetettavissa vain luonnissa. Sen muuttaminen, asennetaanko agentti, pakottaa korvaamisen (false ja asettamatta jättäminen tarkoittavat molemmat ei agenttia, joten niiden välillä siirtyminen ei pakota). API ei palauta sitä ja terraform import jättää sen asettamatta, joten instance_access = true tuodulle instanssille suunnittelee korvaamisen.
Levykuvan on pystyttävä ajamaan agentti, ja instanssin on jatkuvasti tavoitettava Frostmoln ulospäin niin kauan kuin haluat päätteen. Alustan levykuvat tekevät jo molemmat. Jos käynnistät oman levykuvasi, katso Omat levykuvat: siinä kerrotaan mitä asennus tarvitsee ja kaksi tapaa, joilla rekisteröinti epäonnistuu hiljaa.
Instanssiyhteys on vain x86_64-Linuxille: agentti tarvitsee sen arkkitehtuurin sekä systemd-järjestelmän ja cloud-init-ohjelman, joten Windows-instanssit eivät voi käyttää sitä. Tavoita ne konsolin kautta.
Avaa pääte
fm shell 9b6b2d0e-1f4c-4a7e-9c3d-2b8f5e6a1d04Argumentti on instanssin id, ei sen nimi. Kirjoita jommankumman alku, niin tab-täydennys täyttää id:n.
Lisää komento ---merkkien jälkeen, niin se suoritetaan päätteen avaamisen sijaan:
fm shell 9b6b2d0e-... -- systemctl is-active nginxTämä muoto on skriptiturvallinen — tulostetta ei rivinvaihtomuunneta, ja komennon oma paluukoodi tulee fm:n paluukoodiksi. Yksi asia uudelleenohjauksesta: komennon stdout ja stderr saapuvat yhdistettyinä fm:n stdoutiin, joten fm shell … -- cmd > out.txt nappaa molemmat. Lisää --tty, jos tarvitset päätteen silti.
Mikä käyttäjä sinusta tulee
Päädyt levykuvan oletuskäyttäjäksi — debian Debianilla, ubuntu Ubuntulla ja niin edelleen. Alustan levykuvilla se on sama käyttäjä, jonka SSH antaa. Kirjaudu joksikin muuksi valitsimella --user:
fm shell 9b6b2d0e-... --user deployOma levykuva ilman käyttökelpoista oletuskäyttäjää antaa root-päätteen
Kirjautumiskäyttäjä päätellään levykuvasta, kun instanssi luodaan, ja jokainen tapa, jolla tuo päättely voi epäonnistua, vie sinut root-käyttäjäksi — hiljaa. Se epäonnistuu, kun levykuva ei ilmoita oletuskäyttäjää, kun sen jakelu ei ole alustan tuntema, ja kun sen ilmoittama nimi ei kelpaa kirjautumistiliksi. Viimeinen on ansa: isoja kirjaimia sisältävä nimi, kuten MyUser, hyväksytään levykuvaa ladattaessa ja näytetään kirjautumiskäyttäjänä, mutta istunto ajetaan silti root-käyttäjänä.
Jos et halua root-päätettä, anna levykuvalle pienillä kirjaimilla kirjoitettu oletuskäyttäjä ennen kuin luot siitä instansseja, ja tarkista ensimmäisellä kerralla, minä käyttäjänä todella päädyt.
Istunnot ovat aikarajattuja
Istunto päättyy 10 minuutin toimettomuuden jälkeen tai 1 tunnin kuluttua kaikkiaan, kumpi tulee ensin. Paluukoodi 255 tarkoittaa, että istunto kuoli — raja täyttyi, yhteys katkesi tai fm itse tapettiin. Jos fm ei saa avattua istuntoa lainkaan, se lopettaa koodilla 1 ja kertoo syyn stderriin. Mikä tahansa muu paluukoodi on oman komentosi.
Mikä rajaa pääsyä
- Oman organisaatiosi instanssit. Voit avata päätteen instansseille niissä tenanteissa, jotka organisaatiosi omistaa. Kaikki muu on ei löydy — sama vastaus riippumatta siitä, onko instanssia olemassa vai eikö se ole sinun.
- Vain siellä, missä otit sen käyttöön. Instanssiyhteys on instanssikohtainen ja valitaan luontihetkellä. Ilman sitä luotuun instanssiin ei pääse tällä tavalla lainkaan, kukaan.
- Aikarajattu. Yksikään istunto ei pysy auki loputtomiin.
Jäsenkohtaista rajausta ei vielä ole — eikä tenant ole aita
Kuka tahansa organisaatiosi aktiivinen jäsen voi avata päätteen mille tahansa instanssille, jolla instanssiyhteys on käytössä, roolistaan riippumatta, ja missä tahansa organisaatiosi omistamassa tenantissa — ei vain siinä, jossa hän normaalisti työskentelee. Älä siis pidä erillistä tenanttia pääsyrajana tässä: arkaluontoisen kuorman siirtäminen omaan tenanttiinsa ei pidä muita jäseniäsi siitä poissa. Myös mikä tahansa kyseisen tenantin API-avain voi avata istunnon.
Mikään asetus ei rajaa tätä tiettyihin henkilöihin, eikä mikään käyttöoikeuskäytäntö aitaa sitä.
Siihen asti luontihetken valinta on raja: jätä instanssiyhteys pois niiltä instansseilta, joilla sillä on merkitystä, ja tavoita ne SSH:lla, jossa sinä päätät kenellä on avain.
Erityisesti API-avaimille sessions:pty on se käyttöoikeus, joka tulee rajaamaan tätä, eikä mikään muu aja sen asiaa — ei compute:* eikä jokerimerkki, jota avain ei saa pitää. Myönnä se jo nyt avaimille, jotka ajavat fm shell -komentoa, niin ne ovat valmiiksi oikein. Älä kuitenkaan luota siihen rajana vielä: sitä ei tarkisteta istuntoa avattaessa, joten tänään avain ilman sitä avaa istunnon silti. Katso API-avaimet.
Mitä käyttöönotto tuo instanssille
Hyvä tietää ennen kuin otat sen käyttöön, sillä kone on sinun:
- Agentti ajetaan
root-käyttäjänä, ja tarkoituksella ilman sitä hiekkalaatikointia, jota alusta käyttää omilla hallituilla instansseillaan — sen on pystyttävä käynnistämään pääte millä tahansa pyytämälläsi käyttäjällä. - Sen identiteettitieto on luettavissa mille tahansa instanssin prosessille, sama asetelma kuin instanssiroolin tunnuksilla muissa pilvissä.
- Rekisteröidyn instanssin tilannevedos tai levykuva kantaa tuon identiteetin, ja siitä palautettu voi toimia alkuperäisenä. Käsittele rekisteröidystä instanssista otettua levykuvaa arkaluontoisena, ja rakenna levykuvat mieluummin instansseista, joilla instanssiyhteys ei ole koskaan ollut käytössä.
- Istunnot eivät luo kirjautumismerkintää, joten
who,lastjautmpeivät näytä niitä. Kerää oma auditointi instanssin sisällä, jos tarvitset jäljen.
Kun se ei toimi
Mitä fm kertoo | Mitä teet |
|---|---|
| instance not found or instance access not enabled | Id on väärä, instanssi ei kuulu tähän tenanttiin, tai se luotiin ilman instanssiyhteyttä. Juuri luodulla instanssilla agentti voi olla vielä asentumassa. |
| this instance can't do terminal sessions | Instanssilla on agentti, mutta ei sellainen joka palvelee päätteitä. fm ehdottaa myös agentin päivittämistä; päivityspolkua ei vielä ole, joten uudelleenluonti on ainoa tie. |
| the instance's agent is offline | Instanssi on pysäytetty, käynnistyy yhä, tai on menettänyt ulospäin suuntautuvan yhteytensä Frostmolniin. Yritä hetken kuluttua uudelleen. |
| the instance agent is up and at its session limit | Instanssilla on liian monta istuntoa auki yhtä aikaa. Sulje yksi — pelkkä uudelleenyritys ei auta. Jos tilanne jatkuu vaikka sinulla ei ole yhtään auki, ota yhteys tukeen. |
| session ended by the platform | Toimettomuus- tai kokonaisaikaraja tuli täyteen, tai yhteys katkesi. Avaa uusi istunto. |
Jos aivan uusi instanssi ei koskaan hyväksy istuntoa, rekisteröinti epäonnistui: instanssilla /var/log/frostmoln-managed-agent-install.log ja /var/log/cloud-init-output.log kertovat syyn. Jos se toimi ja lakkasi sitten, tarkista että instanssi yhä tavoittaa Frostmolnin ulospäin. Omat levykuvat kattaa molemmat kokonaan, mukaan lukien sen, mitä riisutusta levykuvasta yleensä puuttuu.
Rajoitukset
- Vain luonnissa. Instanssiyhteyttä ei voi kytkeä päälle eikä pois olemassa olevalta instanssilta.
- Vain komentorivi ja Terraform. Portaali ei voi ottaa sitä käyttöön eikä tarjoa päätettä.
- Vain
x86_64-Linux — agentti tarvitsee sen arkkitehtuurin,systemd-järjestelmän jacloud-init-ohjelman. - Ei käynnistysmalleille eikä skaalausryhmille — kummallakaan ei ole instanssiyhteysasetusta, joten niiden luomille instansseille ei koskaan tule päätettä.
- 10 minuuttia toimettomana, 1 tunti kaikkiaan istuntoa kohden, ja rajallinen määrä samanaikaisia istuntoja instanssia kohden.
- Ei vielä jäsen- tai avainkohtaista rajausta (katso yllä).