Uusi kehittäjä aloittaa tai alihankkija pääsee töihin, ja ensimmäiseksi hän tarvitsee tiedoston .env, jolla projekti saadaan käyntiin. Tiedostossa on yleensä sekaisin harmittomia asetuksia ja tiimin arkaluonteisimpia arvoja, ja siksi se päätyy niin usein yksityisviestiin tai sähköpostiliitteeksi otsikolla ”config”.
Kun toimitat asetustiedoston kehittäjälle turvallisesti, käsittele sitä kahtena eri asiana: asetuksina, jotka voivat kulkea mitä reittiä tahansa, ja salaisuuksina, jotka kulkevat kerran kanavaa pitkin, joka ei säilytä kopioita. Tässä oppaassa käydään läpi, miten nämä kaksi erotetaan, miten salainen osa lähetetään ja mitä kehittäjälle kannattaa kertoa, jotta tiedosto pysyy turvassa perillä.
Lue tiedosto kuin jokainen rivi olisi julkinen
Avaa tiedosto ja jaa jokainen rivi toiseen kahdesta ryhmästä.
- Asetukset: lokitasot, portit, ominaisuusliput, muut kuin tuotannon päätepisteet ja julkiset asiakastunnisteet (client ID). Ne kuuluvat repositorioon esimerkkitiedostona, ja ne voi lähettää millä tavalla tahansa.
- Salaisuudet: tietokantojen salasanat, API-avaimet, allekirjoitussalaisuudet, yksityiset avaimet, OAuth-asiakassalaisuudet ja kaikki muu, mikä antaa pääsyn johonkin. Hae sanoja
PASSWORD,SECRET,TOKEN,KEYjaPRIVATEja lue sitten loput, koska yhteysmerkkijono, jonka sisällä on salasana, ei ilmoita itsestään.
Kysy sitten, mitä kehittäjä on tekemässä. Paikallinen kehitys staging-ympäristöä vasten tarvitsee stagingin arvot. Se ei tarvitse tuotannon avaimia, eikä se tarvitse maksupalvelun tuotantoavainta vain siksi, että tiedostossa sattuu olemaan sellainen.
Pidä salaisuudet poissa versionhallintaan viedystä tiedostosta
Versionhallintaan viety .env.example kuvaa jokaisen muuttujan paikkamerkillä. Oikeat arvot syötetään ajon aikana ympäristöstä, salaisuuksien hallintapalvelusta tai alustan omasta salaisuusvarastosta. Tämän mallin ansiosta toimitettava tiedosto sisältää vain salaiset arvot, ja kehittäjän paikallinen kopio on ainoa paikka, jossa ne ovat koolla.
# .env.example (committed)
DATABASE_URL=postgres://app:CHANGE_ME@staging-db.internal:5432/app
STRIPE_SECRET_KEY=sk_test_CHANGE_ME
SESSION_SECRET=CHANGE_ME
LOG_LEVEL=debug
Lisää .env tiedostoon .gitignore ennen kuin kenelläkään on oikeaa versiota, ja harkitse pre-commit-koukkua, kuten gitleaksia, jotta vahingossa tehty commit kaatuu heti.
Anna kehittäjälle omat kirjautumistiedot, kun voit
Luovutus on myös tilaisuus lopettaa tunnusten jakaminen. Jos tietokanta tukee henkilökohtaisia käyttäjiä, luo kehittäjälle oma käyttäjä, jolla on hänen työnsä vaatimat oikeudet ja vanhenemispäivä. Jos API tarjoaa rajattuja avaimia, myönnä yksi hänen nimissään. Alihankkijan tietokantatunnusten oppaassa käydään tämä malli läpi. Yhdelle henkilölle luodut kirjautumistiedot voi poistaa yhdeltä henkilöltä.
Näin toimitat salaiset arvot
Kaksi reittiä toimii, eikä kumpikaan jätä tiedostoa viestiin.
Liitä salaiset rivit kertakäyttölinkkiin. Avaa salaisen linkin työkalu, liitä vain rivit, joissa on salaisuuksia, ja luo linkki. Teksti salataan selaimessasi ennen tallennusta, tallennettu kopio tuhotaan, kun linkki avataan ensimmäisen kerran, ja linkki vanhenee tunnin, 24 tunnin tai seitsemän päivän kuluttua, jos kukaan ei avaa sitä. Ilman tiliä mahtuu 10 000 merkkiä, mikä riittää useimmille .env-tiedostoille moninkertaisesti.
Liitä koko tiedosto salaiseen linkkiin. Kirjautuneena LinkPilot-tilillä salaisuuteen voi liittää enintään kolme tiedostoa, kukin enintään 9 Mt. Jokainen tiedosto salataan selaimessasi avaimella, joka johdetaan salaisuuden omasta avaimesta, joten palvelimella ei koskaan ole selväkielistä tiedostoa, ja liite poistetaan sen ainoan latauksen jälkeen. Tämä reitti on parempi, kun tiedoston on tultava perille tavu tavulta samana, esimerkiksi palvelutilin JSON-tiedosto tai avainsäilö.
Kumpaa tahansa käytät:
- Varmista kehittäjän henkilöllisyys rekrytointi- tai sopimuskanavan kautta, älä sen osoitteen kautta, josta tiedostoa pyydettiin.
- Aseta voimassaoloaika sen mukaan, milloin hän oikeasti avaa linkin. Tunti, jos hän odottaa, päivä, jos hän on toisella aikavyöhykkeellä.
- Aseta katselukertojen rajaksi yksi.
- Lisää salalause Pro-tilillä tuotannon arvoille ja lähetä se eri kanavaa pitkin.
- Lähetä linkki yhden rivin saatteella, jossa kerrot, mitä se sisältää ja minne tiedosto kuuluu. Lähetä muut kuin salaiset asetukset erikseen tai viittaa repositorion esimerkkitiedostoon.
Kutsu holviin on parempi reitti, kun kehittäjä on vakituinen työntekijä ja tiimilläsi on jo käytössä salaisuuksien hallintapalvelu, jossa on kehittäjäkohtaiset käyttöoikeudet. Käytä kertakäyttölinkkiä siihen väliin, kunnes käyttöoikeus on järjestetty, ja kaikille, jotka eivät koskaan tule holviin.
Kerro kehittäjälle, minne tiedosto kuuluu
Siistikin toimitus voi päättyä huonosti, jos tiedosto päätyy jaettuun kansioon. Lähetä nämä ohjeet yhteysasetusten mukana:
- Tallenna se nimellä
.envprojektin juureen äläkä minnekään muualle. Tarkista ennen ensimmäistä committia, että tiedosto.gitignorekattaa sen. - Älä liitä arvoja tiketteihin tai chattiin kysyäksesi, ovatko ne oikein. Ilmoita puuttuvasta tai virheellisestä muuttujasta pelkällä nimellä, niin lähettäjä antaa uuden arvon.
- Vaihto lähtiessä. Kun yhteistyö päättyy, tiedoston arvot vaihdetaan. Kerro tämä etukäteen, jotta kukaan ei yllättyisi.
Vahvista ja siivoa jäljet
Pyydä kehittäjää vahvistamaan tiedostonimi, ympäristö ja jokin ei-salainen tunnistetieto, kuten ensimmäisen rivin versiokommentti. Jos kertakäyttölinkki ilmoittaa, että se avattiin ennen kuin kehittäjä ehti avata sen, pidä jokaista sen arvoa paljastuneena ja vaihda ne.
Kun luovutus on valmis, mitätöi linkit, joita ei koskaan avattu, poista tekemäsi väliaikaiset kopiot ja kirjaa, kuka sai minkäkin ympäristön arvot ja milloin. Kirjaus on tarkastusjälki. Itse tiedoston pitäisi olla olemassa vain koneella, joka sitä tarvitsee.
