Terraform Client VPN leiðir með fleiri CIDR en undirnet
Tenging, leið og heimild eru aðskildir hlutir. Kortið hvert áfangastaðar-CIDR á tengt undirnet í stað þess að indexa styttri undirnetslista.
Fartölva tengist Client VPN endapunkti, og terraform apply mistekst enn á leiðarauðlind. Stillingin hefur venjulega fleiri áfangastaða-CIDR en tengd undirnet, og leiðarblokkin velur skotmark með vísitölu. Það gerir ráð fyrir að safnin tvö séu samsíða. Þau eru það ekki, og bilunin kemur fram við beitingu frekar en við yfirferð.
Nefndu hlutinn sem mistekst
Þrjár auðlindir koma við sögu og hver svarar annarri spurningu. Tengingin setur netviðmót endapunktsins í undirnet. Leiðin segir hvaða áfangastaðarforskeyti er afhent til skotmarksundirnets. Heimildarreglan segir hvaða notendur geta náð hvaða forskeyti. Leið sem bendir á undirnet sem var aldrei tengt mistekst jafnvel þótt báðir hlutirnir séu til, því skotmarkið verður að tilheyra þessum endapunkti.
Teldu upp tengingarnar fyrst: aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0.
Mundu staðbundnu leið VPC
Fyrsta tengingin bætir staðbundinni leið við allt VPC, svo hvert undirnet í því VPC er þegar aðgengilegt án leiðarauðlindar. Fleiri leiðir eru til fyrir jafningja-VPC, Transit Gateway tengingar og on-premises forskeyti sem VPC á ekki. Þess vegna getur endapunktur með þrjár tengingar lögmætlega borið sjö áfangastaðarfærslur.
Teldu áfangastaðina utan VPC áður en þú bætir leiðum við. Ef sú tala er minni en CIDR-listinn, lýsir listinn undirnetum sem þurfa alls enga leið.
Skiptu vísitölunni út fyrir kort
Að vefja vísitölunni inn í modulusvirkja þaggar bilunina og varðveitir líkanvilluna. Áfangastaður sem ekki er hægt að ná í gegnum valið skotmark ber samt enga umferð, hversu hreinlega sem áætlunin er beitt. Geymdu sambandið í staðinn, og leyfðu Terraform að athuga það áður en nokkuð er búið til. Blokkin hér að neðan er til skýringar og notar leiðarviðföng endapunktsins frá þjónustuveitandanum.
variable "client_vpn_destinations" {
description = "Destination CIDR mapped to an associated subnet key"
type = map(string)
}
resource "aws_ec2_client_vpn_route" "this" {
for_each = var.client_vpn_destinations
client_vpn_endpoint_id = aws_ec2_client_vpn_endpoint.this.id
destination_cidr_block = each.key
target_vpc_subnet_id = aws_subnet.private[each.value].id
lifecycle {
precondition {
condition = contains(keys(aws_subnet.private), each.value)
error_message = "Route target must be a subnet key in the associated map."
}
}
}
Þegar kortið stendur við hlið tengingarlistans neyðir það að bæta áfangastað til ákvörðunar um hvaða undirnet ber hann. Það er samtalið sem vísitalan faldi.
Önnur bilun framleiðir ruglingsleg gildi í stað vísitölubilunar. Að senda lágstigsbyggingu þar sem ætlast er til hástigsviðmóts lætur reitina sem API les ófyllta, og CIDR-ið sem verður til er ónothæft. Terraform sýnir sömu mynd þegar strengur berst þar sem ætlast er til hlutar. Athugaðu skema þjónustuveitandans fyrir viðfangstegundina.
Sannaðu það frá biðlara
Keyrðu terraform validate og áætlun gegn raunverulegu ástandi áður en þú beitir. Berðu síðan saman skotmarksnetlista endapunktsins við kortið í stað þess að treysta á árangursríkt apply.
Viðtökuprófið er tengdur biðlari sem nær hverju fyrirhuguðu forskeyti.
Heimildarreglan er þar sem margar uppsetningar stöðvast snemma. Hún er afmörkuð við áfangastaðar-CIDR og hóp, og leið án samsvarandi heimildar framleiðir tengdan biðlara sem kemst ekki að forskeytinu. Athugaðu báða hlutina fyrir hvert forskeyti, því apply sem býr til leiðina og gleymir reglunni virðist fullbúið. Prófaðu með einum notanda innan hópsins og einum utan hans.
Þegar eitt forskeyti mistekst, berðu saman leiðarfærslu þess og heimildarregluna. Vantar heimild og vantar leið líta svipað út í biðlaralogginu og er lagfært í mismunandi auðlindum.