Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

Tietoturvaopas

Rahti-sovellukset ovat näkyvissä internetiin, ja niiden tietoturvaan tulee suhtautua asianmukaisella huolellisuudella. Käyttäjä, jonka tunnuksella palvelu toimii Rahti-palvelussa, vastaa sen tietoturvasta. Katso vastuita koskevat tarkemmat tiedot käyttöehdoista.

Tätä opasta tulee pitää perustasona, joka on otettava huomioon, eikä täydellisen tietoturvan tarkistuslistana.

Rahti-palvelussa toimivien palveluiden tietoturvaa parantavat toimenpiteet voidaan jakaa karkeasti alla kuvattuihin kategorioihin.

Klusterin ehdot

Oletuksena Rahti soveltaa seuraavia ehtoja:

  • Root-käyttö estetty: tämä tarkoittaa, että kontti ei voi toimia root-oikeuksilla. Sen käynnistys epäonnistuu.

  • Satunnainen UID/GID: kun Podisi otetaan käyttöön Rahti-palvelussa, sille määritetään automaattisesti UID Rahti-projektillesi varatulta alueelta. Numero on yleensä esimerkiksi 1000620000. Et voi määrittää UID/GID:tä tämän alueen ulkopuolelta, esimerkiksi 1001, koska se vaatii erityisoikeuksia.

  • Restricted-v2-käytäntö:

    • allowPrivilegeEscalation-arvoa ei voi asettaa arvoon true. Jätä se tyhjäksi tai aseta arvoksi false.
    • Kaikki capabilityt on poistettava asettamalla capabilities.drop arvoon ALL. Ainoa capability, joka voidaan lisätä takaisin, on NET_BIND_SERVICE.
    • Jätä joko seccompProfile tyhjäksi tai aseta seccompProfile.type arvoon RuntimeDefault.
  • Podien oletusresurssirajat

Reittien suojaaminen

Ota käyttöön reittien TLS-salaus. Reititin tukee moderneja ja turvallisia TLS-versioita, TLS v1.3:a ja TLS v1.2:ta. TLS v1.1:tä ja sitä vanhempia versioita ei enää pidetä turvallisina. Jos palvelusi DNS-nimi kuuluu aliverkkotunnuksiin *.rahtiapp.fi tai *.2.rahtiapp.fi (esim. coolservice.rahtiapp.fi), Rahti-palvelun tarjoamaa oletusarvoista wildcard-TLS-varmennetta voidaan käyttää suoraan. Muussa tapauksessa sinun on lisättävä varmenteesi tiedot route-objektiin, kuten on kuvattu sivulla Mukautetut verkkotunnukset.

Palveluihin pääsy tulisi rajoittaa valittuihin verkkoihin sallittujen listalla aina kun se on sovellettavissa, kuten on kuvattu kohdassa IP-sallittujen lista. Tämä on olennaista aina, kun pääsyä voidaan rajoittaa IP-osoitteiden perusteella.

Suojatut reitit estävät salakuunteluhyökkäyksiä, jotka kohdistuvat esimerkiksi palvelun salasanoihin ja käyttäjätunnuksiin sekä muuhun internetin kautta lähetettävään kriittiseen dataan.

On suositeltavaa ottaa käyttöön HSTS-otsake. HTTP Strict-Transport-Security -vastausotsake (lyhyesti HSTS) kertoo selaimelle, että tietylle Routelle tulee aina käyttää HTTPS:ää eikä koskaan HTTP:tä. Se voidaan ottaa käyttöön suorittamalla tämä komento:

oc annotate route test-route haproxy.router.openshift.io/hsts_header="max-age=31536000;includeSubDomains;preload"

Annotaation arvo on itse otsake, ja max-age sekunteina on pakollinen. Otsake tulee voimaan vain Routeissa, joissa TLS päätetään, eli reiteissä, joissa käytetään edge- tai re-encrypt-päätettä.

On myös suositeltavaa määrittää julkisille Routeillesi nopeusrajoitukset. Näin voit hallita, kuinka monta pyyntöä asiakas voi lähettää reitin kautta julkaistulle sovelluksellesi tietyn ajanjakson aikana. Tätä käytetään tyypillisesti suojaamaan sovelluksia väärinkäytöltä, tahattomalta ylikuormitukselta tai palvelunestotilanteilta. Lisää seuraavat annotaatiot Routeesi:

oc annotate route <route-name> \
  haproxy.router.openshift.io/rate-limit-connections="true" \
  haproxy.router.openshift.io/rate-limit-connections.concurrent-tcp="10" \
  haproxy.router.openshift.io/rate-limit-connections.rate-http="50"
  • Annotaatiolla rate-limit-connections=true otetaan käyttöön yhteyksien nopeusrajoitus reitittimessä.
  • Annotaatiolla rate-limit-connections.concurrent-tcp=10 sallitaan yhdelle asiakas-IP:lle enintään 10 samanaikaista TCP-yhteyttä.
  • Annotaatiolla rate-limit-connections.rate-http=50 sallitaan yhdelle asiakas-IP:lle enintään 50 HTTP-pyyntöä 3 sekunnin aikana. TCP-yhteyksien vastaava annotaatio on rate-limit-connections.rate-tcp.

Konttikuvien tietoturva

Vanhentuneet konttikuvat ovat alttiita tietoturvahaavoittuvuuksien hyväksikäytölle, ja tuntemattomat kuvat voivat sisältää haitallista koodia. Näistä syistä tiettyä konttikuvaa tulisi käyttää vain, jos:

  1. Se on peräisin tunnetusta ja luotetusta lähteestä, jolloin tunnetut tietoturvahaavoittuvuudet on paikattu ja voit luottaa siihen, ettei se sisällä haitallista koodia.
  2. Olet tarkistanut sen Dockerfile-rakennusmäärityksen, ja sen pohjakuva täyttää ehdon 1 tai on tarkistettu samalla tavalla.

Muita huomioitavia asioita:

  • Käytä kuratoituja kuvia.
  • Suosi kuvia, jotka saavat säännöllisesti tietoturvapäivityksiä.
  • Käytä staattisia konttikuvien analysointityökaluja, jos niitä on saatavilla. Tuen osalta ota yhteyttä paikalliseen IT-tukeesi.
  • Mitä pienempi kuva on, sitä vähemmän siinä on hyökkäyspinta-alaa:
    • Hyödynnä kuvissasi builder-mallia, jos käytät käännettäviä ohjelmointikieliä: rakenna binaari eri kuvassa kuin siinä, johon sovellus otetaan käyttöön. Dockerissa tämä voidaan toteuttaa monivaiherakennuksilla, ja OKD:ssä muiden kuvien hakemistoja voidaan liittää rakennusprosessin aikana ketjutetuilla rakennuksilla. Näin lopullisessa kuvassa on mukana vain ohjelmiston olennaiset osat.
    • Jos sovellus on kirjoitettu tulkattavalla kielellä, käytä kieleen perustuvia kuvia. Sen sijaan, että asentaisit Node.js:n Alpine-kuvan päälle, käytä esimerkiksi kuvaa node:22-alpine.

IP-osoitteet palomuurin avauksia varten

Kaiken ulosmenevän asiakasliikenteen IP-osoite on 86.50.229.150. Avaamalla palomuurin tälle IP-osoitteelle sallit kaiken liikenteen mistä tahansa Rahti-projektista, et vain omastasi. Siksi on suositeltavaa olla luottamatta pelkkään IP-suodatukseen, vaan käyttää sitä toissijaisena keinona yhdessä tunnistautumisjärjestelmän, kuten OAuthin, kanssa.

Jos sovelluksesi täytyy tunnistautua omalla yksittäisellä IP-osoitteellaan, Rahti-projektille voidaan pyytää oma dedikoitu egress-IP. Katso lisätiedot sivulta Egress-IP-osoitteet sekä tieto siitä, miten IP voi muuttua tulevaisuudessa.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta