Sikkerhetsgrupper
En sikkerhetsgruppe er en tilstandsbevisst brannmur koblet til instanser og lastbalanserere. Regler tillater trafikk; alt som ikke eksplisitt er tillatt, nektes. Fordi grupper er tilstandsbevisste, tillates returtrafikk for en tillatt forbindelse automatisk — du legger ikke til en tilsvarende omvendt regel.
Opprett en gruppe og regler
Opprett en gruppe avgrenset til en VPC, og legg deretter til regler. Hver regel har:
- Retning —
ingress(inngående) elleregress(utgående). - Protokoll —
tcp,udp,icmpellerany. - Portområde — f.eks.
443, eller et område (utelat for ICMP /any). - Kilde / destinasjon — en CIDR (f.eks.
0.0.0.0/0for hvor som helst) eller en referanse til en annen sikkerhetsgruppe (tillat trafikk fra medlemmer av den gruppen, nyttig for lagdelte apper). - Handling —
allow(standard) ellerdeny, med en prioritet (lavere vinner).
fm network security-group create --name web --vpc my-vpc
fm network security-group add-rule web \
--direction ingress --protocol tcp --port 443 --source 0.0.0.0/0resource "frostmoln_security_group" "web" {
vpc_id = frostmoln_vpc.main.id
name = "web"
}
resource "frostmoln_security_group_rule" "https" {
security_group_id = frostmoln_security_group.web.id
direction = "ingress"
protocol = "tcp"
port_range_min = 443
port_range_max = 443
remote_cidr = "0.0.0.0/0"
}Endre en instans' sikkerhetsgrupper
Du kan erstatte sikkerhetsgruppene på en kjørende instans uten å opprette den på nytt. Det finnes to omfang:
- Enhetlig (det vanlige tilfellet) — ett sett som gjelder hver nettverksport på instansen.
- Per port — et annet sett på enkeltporter på en instans med flere nettverkskort (f.eks. et frontend-nettverkskort åpent mot internett og et administrasjonskort som ikke er det). Bruk dette bare når portene virkelig må være forskjellige; ellers bruk det enhetlige omfanget.
Alle tre klientene bruker erstatningssemantikk: settet du oppgir blir det fullstendige settet — hver gruppe som ikke er oppført, fjernes.
Enhetlig (alle porter)
I portalen åpner du instansen og redigerer sikkerhetsgruppene under fanen Nettverk. Med CLI eller Terraform:
# Erstatt instansens grupper på alle porter (sikkerhetsgruppe-ID-er, ikke navn)
fm compute instance security-groups set <instance-id> \
--security-group <sg-id> --security-group <sg-id>
# Vis gjeldende grupper (lister oppdelingen per port når portene er forskjellige)
fm compute instance security-groups get <instance-id>resource "frostmoln_instance" "web" {
# ... navn, flavor, image, subnett ...
security_groups = [
frostmoln_security_group.web.id,
frostmoln_security_group.ssh.id,
]
}Per port (flere nettverkskort, forskjellige sett)
Portalen viser en per-port-editor når en instans' porter bærer forskjellige sett. Finn port-ID-en i utdataene fra ... security-groups get (den lister portene når de er forskjellige), og målrett deretter én port — de andre lates urørt.
# Målrett én enkelt port via dens port-ID
fm compute instance security-groups set <instance-id> \
--port <port-id> --security-group <sg-id>resource "frostmoln_instance_port_security_groups" "frontend_nic" {
instance_id = frostmoln_instance.web.id
port_id = "b1e0f6c2-1234-4a5b-9c8d-abcdef012345" # port-ID-en fra per-port-listen
security_groups = [frostmoln_security_group.web.id]
}Administrer en gitt port via enten frostmoln_instance.security_groups (enhetlig) eller en per-port-ressurs — ikke begge.
Verdt å vite
- Endringen er asynkron. Portalen og CLI-en returnerer umiddelbart og oppdateringen tar effekt i bakgrunnen — kjør
... security-groups getpå nytt for å bekrefte.terraform applyventer til operasjonen er fullført. - Et tomt sett fjerner alle grupper og lar målet stå på VPC-ens default-drop (vanligvis ingen inngående tilgang). CLI-en krever
--clearfor dette; i Terraform setter dusecurity_groups = []. - Å ødelegge en
frostmoln_instance_port_security_groups-ressurs fjerner ikke portens grupper — det stopper bare Terraform fra å administrere dem. For å faktisk tømme en port setter dusecurity_groups = []og kjører apply først, og fjerner deretter ressursen. - En port med portsikkerhet avslått avviser et ikke-tomt sett — du kan ikke koble grupper til en port som har portsikkerheten avslått.
God praksis
- Åpne bare portene du trenger; foretrekk smale kilde-CIDRer fremfor
0.0.0.0/0. - Begrens SSH (22) til kjente administrative adresser.
- Modellér lag ved å referere til grupper — la f.eks.
web-gruppen nådb-gruppen på databaseporten, i stedet for å bruke IP-områder.