Kontakt os

Nogle gange er det nødvendigt at genopbygge fuldstændigt Amazon-webtjeneste (AWS) infrastruktur, da det kan have strukturelle problemer og sikkerhedsproblemer, der kan føre til ubehagelige situationer.
Jeg gennemgik for nylig hele denne proces, og det tog et stykke tid at gennemføre, da det ikke altid var så intuitivt, som det burde være. For at være sikker på, at du ikke står over for de samme forhindringer, vil jeg her give en trin for trin AWS tutorial der dækker alt, hvad du behøver at vide for at konfigurere infrastrukturstyringen.
Lad os starte helt fra begyndelsen.
Du har lige oprettet din AWS-konto, og nu er det tid til at begynde at bygge din egen infrastruktur. Jeg gætter på, at du gerne vil have et produktionsmiljø og også et testmiljø (QA), ikke?
Hvis det er tilfældet, er det vigtigt at adskille dine miljøer. Brug ikke den samme VPC til begge dele. I stedet skal du oprette forskellige VPC'er med deres eget sæt af undernet, sikkerhedsgrupper, rutetabeller og internetgateways for at sikre, at dine miljøer er uafhængige.
Dette undgår den situation, hvor dit QA-miljø bliver angrebet, og dit produktionsmiljø følger kort efter.
Så lad os oprette den første VPC. Du kan starte med at vælge VPC på hovedinstrumentbrættet:

Klik derefter på Opret VPC:

Du får denne skærm:

Det næste trin er virkelig vigtigt, da det er her, du kan vælge din VPC-konfigurationstype. Forestil dig, at du har en simpel applikation (et simpelt websted som WordPress og MySQL, for eksempel), din bedste VPC-konfiguration ville være den første (med et enkelt offentligt undernet).
Men hvis du har en stor applikation bygget med mikrotjenester, og nogle af dem kræver offentlig adgang, mens andre ikke gør det, er den anden
mulighed er den bedste.
Bare en hurtig forklaring på undernet: de er netværkscontainere (noder) inde i din VPC og giver dig mulighed for at oprette adgangsregler (trafik og offentlig adgang for eksempel).
Lad os nu antage, at du vil oprette en VPC med offentlige og private undernet. Vælg bare den rigtige indstilling (på det forrige billede) og klik på vælg for at se denne skærm.

Du kan konfigurere IP-områderne efter dine behov og også navngive dine undernet. Med hensyn til tilgængelighedszoner og regioner er hver region organiseret efter geografisk område, og hver enkelt indeholder de tilgængelige zoner, der er forbundet.

Med hensyn til NAT Gateway kan du bruge en elastisk allokerings-IP (offentlig IPv4-adresse, som kan nås fra internettet) eller oprette en NAT-forekomst (en EC2-instans med specielt konfigurerede routingtabeller). Personligt ville jeg vælge NAT-gateway, da en EC2-instans normalt har flere stabilitetsproblemer.
Din VPC er nu næsten klar til handling. For det første, som det ses på billederne nedenfor, skal du have et sæt undernet, et privat og et offentligt, et sæt rutetabeller, en internetgateway tilknyttet VPC som standard og en NAT-gateway tilknyttet det offentlige undernet. Alternativt kan du vælge NAT-instansen.
Bemærk venligst, at NAT-gateways er ikke inkluderet i det gratis niveau af AWS.




Bare en sidebemærkning om ruterne: du finder ud af, at en af dem peger på de to undernet for at sikre, at de kan tale til hinanden.
De første trin er færdige, og vi har nu en frisk ny VPC klar til at rocke! Lad os nu dække andre vigtige emner, såsom oprettelse af EC2-instanser.
Skal vi tillade direkte adgang (SSH) til EC2-forekomster? Det burde vi bestemt ikke! Selvom du konfigurerer en anden port, blokerer rodadgangen og kun tillader adgang via privat nøglefil (PEM-fil), er svaret stadig det samme.
Den bedste løsning er at bruge en VPN-adgang til en Bastion-server (en EC2-instans, der kan oprette forbindelse via SSH til alle maskinerne i VPC). Denne Bastion skal kun tilgås med en autoriseret nøgle (PEM-filnøgle genereret af AWS) og konfigureret i en ikke-standard port.
Start med at gå til EC2 (Beregningssektion), og klik derefter på „Start instans“. Vælg den grundlæggende AMI (Amazon Machine Image) og derefter forekomsttype. Derefter når du det tredje trin, og dette er meget vigtigt. Maskinens undernet skal være offentligt.

Vælg bare det offentlige undernet på listen, og skift derefter indstillingen Tildel automatisk offentlig IP til muliggøre. Hvis du ikke har brug for ekstra lagerplads, kan du klikke på det øverste link 6. Konfigurer sikkerhedsgruppe.

Vær særlig opmærksom på gruppens navn og beskrivelse, da dette er et meget vigtigt trin. Jeg råder dig til Brug gode beskrivende navne som for eksempel, test-offentlig-ssh og en genkendelig beskrivelse. Undgå at bruge standardnavne og altid Kontroller, om der allerede er oprettet nogen regel, eller du ender med en masse gentagne regler.
Hvis du vil ændre standardporten, skal du også tilføje en brugerdefineret regel. Bare klik ind Tilføj regel, men bemærk, at du skal gøre dette efter lanceringen af forekomsten, og enhver ændring skal foretages også i EC2-instansen (operativsystem), ellers vil du ikke kunne få adgang til den via SSH.
Fortsæt ved at klikke på Gennemgang og lancering. Du vil bemærke en besked øverst på skærmen.

Du får denne meddelelse, fordi denne maskine tillader offentlig SSH-adgang. Det betyder, at vi er klar til at gå. Bare klik på Lancering knappen, vælg tasterne eller opret et nyt sæt. Opbevar altid dine nøgler et sikkert sted, brug ikke en VCS til at opbevare dem.
Indtil dette tidspunkt har jeg dækket oprettelsen af VPC og oprettelsen af Bastion-serveren. Dernæst opretter vi en forekomst i et privat undernet og konfigurerer SSH-adgangen.
Lad os starte med at klikke på Start forekomst knap:

Her er trinene de samme, vælg en AMI (jeg bruger Ubuntu 14.04 LTS, inkluderet i det gratis niveau):

Derefter vælger du forekomsttypen (jeg bruger en gratis tier-forekomst, t2.micro):

Når du har valgt din forekomsttype, skal du klikke på Næste: Konfigurer oplysninger om forekomst.
Du vil blive præsenteret for følgende skærmbillede:

Denne maskine vil ikke have offentlig adgang, den vil blive brugt til at køre en tjeneste, der ikke burde være tilgængelig for internettet.
Så i subnetindstillingen skal vi bruge det private undernet, der tidligere er oprettet med VPC, og vælge handicappet i indstillingen automatisk tildeling af IP. Hvis du ikke vil ændre lageret eller tilføje tags, kan du klikke på Konfigurer sikkerhedsgruppe på toppen.

Bemærk forskellen mellem denne og sikkerhedsgruppen, der bruges til Bastion, da vi her kun tillader SSH-adgang til det private IP-område (det kan variere afhængigt af dit undernet, sørg for at kontrollere det).
Du kan også tilføj regler efter dine behov (HTTPS, RabbitMQ osv.) For et ønsket IP-interval (her tilføjer jeg reglen for RabbitMQ - port 5672). Hvis du ikke ønsker at tilføje flere regler, skal du bare klikke på Gennemgang og lancering. Det næste skærmbillede vises:

Klik bare på start, vælg din adgangsnøgle, og klik derefter på Start forekomst. AWS begynder at oprette din nye EC2-instans:

Hvis du går til EC2-instrumentbrættet, skal din nye EC2-instans være på listen:

Jeg navngav den nye instans test-kaninmq. Hvis du ser på den offentlige DNS-kolonne, finder du ud af, at den ikke har en offentlig DNS. Det skyldes, at det blev oprettet inden for et privat undernet.
Indtil nu har vi bygget en VPC med et privat og et offentligt undernet, og vi har to maskiner: en, der bruges til SSH-adgang, der opretter forbindelse til den private zone og en maskine i den private zone (RabbitMQ). Så hvordan tester du SSH-adgangen?
Bare gå til EC2-instrumentbrættet, få Bastion IP og gå til din konsol. Glem ikke at tilføje den private nøgle til kommandoen:
Du kan nu oprette forbindelse til din Bastion! Lad os nu gå dybere og prøve at oprette forbindelse til din RabbitMQ-forekomst:
Du kan nu oprette forbindelse til den private instans!
Som du har bemærket, har jeg brugt nogle parametre på kommandoerne ovenfor, men du kan undgå dette ved at konfigurere din konfigurationsfil i.ssh-mappen (i dit hjemmemappe). Du kan også konfigurere konfigurationsfilen i Bastion-serveren.
Så lad os teste internetadgangen i den private EC2-instans:
Alt fungerer korrekt, men bare en note, hvis du bruger en NAT-forekomst i stedet for en NAT-gateway, skal du ikke glemme at ændre sikkerhedsgrupperne, herunder den private maskingruppe i reglerne.

Du bør begrænse SSH-adgangen, oprette offentlige og private undernet, adskille dine miljøer (produktion, udvikling, QA), hvert miljø (VPC) skal have sit eget sæt rutetabeller, undernet osv.
Vær forsigtig med sikkerhedsgrupperne, tillad kun nødvendige protokoller og porte og undgå ekstern adgang, når det er muligt.
Meget mere kunne skrives om AWS, men det er næsten umuligt at dække alt i kun en artikel. Der er stadig nogle afdækkede emner, såsom S3-sikkerhed, Bastion-adgang via VPN og selvfølgelig brug af Ansible til at få tingene i gang. Under alle omstændigheder finder du her alt, hvad du har brug for for at komme i gang med det samme!
Ved Imaginær sky vi arbejder med en bred teknisk stak, inklusive AWS. Hvis du har brug for hjælp til denne teknologi eller lignende i dit softwareudviklingsprojekt, har vi et team af eksperter, der venter på dig! Send os en linje her!

Fandt du denne artikel nyttig? Du kan måske også lide disse!

Udvikler @Imaginary Cloud, dedikeret til at skabe enestående softwareløsninger, forpligtet til innovation og omfavne banebrydende teknologier.
People who read this post, also found these interesting: