Amazon ANS-C01: Automatyzacja, IaC i operacje sieciowe — Przewodnik do nauki

Część AWS Advanced Networking Specialty ANS-C01 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.

Podstawowa koncepcja

Infrastruktura jako kod (Infrastructure as Code) dla sieci w AWS przekształca topologię sieci, polityki bezpieczeństwa i routing w deklaratywne szablony i deterministyczne operacje cyklu życia. Szablony CloudFormation (AWS::EC2::VPC, AWS::EC2::Subnet, AWS::EC2::RouteTable, AWS::EC2::TransitGateway, AWS::EC2::TransitGatewayAttachment, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::EC2::VPCEndpoint, AWS::EC2::NetworkAcl, AWS::EC2::SecurityGroup) kodują pożądany stan, podczas gdy API CloudFormation — operacje CreateStack, UpdateStack, DeleteStack, DescribeStacks i ChangeSet — wprowadzają zmiany w sposób atomowy. Używaj zagnieżdżonych stosów i modularnych szablonów do izolowania domen sieciowych (współdzielone usługi, VPC aplikacji per konto, strefy wejścia/wyjścia) oraz StackSets do propagowania spójnych stosów sieciowych w ramach AWS Organizations. Wykrywanie dryfu (DetectStackDrift) i zestawy zmian (change sets) zapewniają bariery ochronne, dzięki którym automatyzacja może wykrywać zmiany w sieci wprowadzane poza standardowym procesem i wymagać ich ręcznej weryfikacji.

Automatyzacja musi również obejmować te części sieci, których CloudFormation nie może natywnie wyrazić lub które wymagają haków cyklu życia: współdzielenie zasobów między kontami, integracje z infrastrukturą on-premise oraz konfigurację hostów w czasie działania. Niestandardowe zasoby CloudFormation (obsługiwane przez Lambda) lub moduły CloudFormation mogą wywoływać API, takie jak CreateResourceShare (AWS RAM), aby współdzielić Transit Gateway lub podsieć, lub wywoływać Systems Manager (SSM) SendCommand, aby wstrzykiwać certyfikaty lub polityki routingu do instancji. W przypadku Kubernetes w EKS, AWS Load Balancer Controller jest instalowany za pomocą Helm i zarządzany poprzez adnotacje Service; CloudFormation może provisionować rolę IAM, dostawcę OIDC i obiekty HelmRelease za pomocą AWS::EKS::Cluster i zasobów niestandardowych, ale mapowanie w czasie rzeczywistym adresów IP podów na grupy docelowe NLB jest obsługiwane przez ten kontroler.

Kluczowe usługi i konfiguracja

Istnieją podstawowe usługi i API AWS, których będziesz używać wielokrotnie podczas automatyzacji operacji sieciowych: CloudFormation (CreateStack, UpdateStack, DetectStackDrift), AWS Resource Access Manager (CreateResourceShare, AssociateResourceShare), AWS Transit Gateway (CreateTransitGateway, CreateTransitGatewayAttachment, CreateTransitGatewayRoute), Elastic Load Balancing V2 (CreateLoadBalancer, CreateTargetGroup, ModifyTargetGroupAttributes), AWS Lambda (CreateFunction, AddPermission, Invoke), Systems Manager (PutParameter, SendCommand, CreateDocument) oraz AWS Config (PutEvaluations, StartConfigurationRecorder). Te usługi tworzą typowy stos automatyzacji dla bezpiecznej i audytowalnej sieci.

Podczas projektowania szablonów i automatyzacji zwróć uwagę na specyficzne atrybuty zasobów i adnotacje kontrolerów. W przypadku load balancerów wybierz odpowiedni typ i atrybuty: NLB z nasłuchami (listeners) TCP zachowuje źródłowy adres IP i obsługuje Proxy Protocol v2 poprzez CreateLoadBalancer/ModifyTargetGroupAttributes i ustawienie „proxy_protocol_v2.enabled” w grupach docelowych; ALB (Application Load Balancer) terminuje TLS i wstawia nagłówki X-Forwarded-For dla adresów IP klientów oraz obsługuje gRPC/HTTP2, gdy jest skonfigurowany z nasłuchami HTTPS. W EKS używasz adnotacji takich jak service.beta.kubernetes.io/aws-load-balancer-type: “nlb” lub adnotacji Ingress/Service kontrolera AWS Load Balancer Controller, aby kontrolować przekazywanie TLS (passthrough) w przeciwieństwie do jego terminacji oraz aby ustawić typ celu (target type) na ip w celu bezpośredniego kierowania ruchu do podów. Dla współdzielenia między kontami i sieci wielokontowych będziesz używać AWS RAM do współdzielenia Transit Gateways oraz CloudFormation StackSets w połączeniu z delegowanymi rolami administratora, aby tworzyć przyłączenia (attachments) i dostęp na kontach konsumenckich.

Wzorce projektowe i kompromisy

Dwa popularne, kontrastujące wzorce to architektura gwiazdy (hub-and-spoke) z Transit Gateway oraz współdzielone VPC (shared-VPC) za pomocą AWS RAM. Architektura gwiazdy z Transit Gateway centralizuje routing, inspekcję i łączność między VPC; skaluje się, ponieważ przyłączenia (attachments) i tablice routingu pozwalają na segmentację, a TGW można współdzielić za pomocą RAM, dzięki czemu różne konta mogą tworzyć przyłączenia bez przenoszenia pełnej własności. Kompromisem jest propagacja tras i limity tablic routingu: tablice routingu Transit Gateway i limity przyłączeń wymagają planowania i mogą wprowadzać pojedyncze punkty, w których polityka musi być egzekwowana (użyj wielu tablic routingu i AWS Network Firewall do izolowania ruchu). Współdzielone VPC (udostępnianie VPC za pomocą AWS RAM) umieszcza podsieci na koncie hosta i pozwala kontom konsumenckim na uruchamianie zasobów w tych podsieciach, co upraszcza centralne kontrole bezpieczeństwa dla łączności, ale zmniejsza autonomię na poziomie konta i komplikuje izolację sieciową dla poszczególnych jednostek biznesowych, ponieważ własność grup bezpieczeństwa i granice IAM muszą być starannie zarządzane.

Dla ruchu przychodzącego (ingress) i terminacji TLS musisz zrównoważyć potrzebę szyfrowania end-to-end ze skalowalnością i zachowaniem adresu IP klienta. Jeśli wymagasz terminacji TLS na load balancerze (dla WAF, centralizacji certyfikatów i routingu HTTP), ALB jest właściwym narzędziem; dodaje on nagłówek X-Forwarded-For, dzięki czemu logi aplikacji mogą przechwytywać adresy IP klientów, a ALB obsługuje routing oparty na ścieżce i hoście do wielu grup docelowych. Jeśli wymagasz prawdziwego szyfrowania TLS end-to-end lub mTLS, gdzie load balancer nie może deszyfrować ruchu, użyj NLB w trybie TCP, aby przekazać ruch TLS (passthrough) do docelowych punktów końcowych (podów lub instancji) i skonfiguruj target type na ip oraz externalTrafficPolicy: Local w Kubernetes, aby zachować źródłowy adres IP. Dla tysięcy jednoczesnych, dwukierunkowych połączeń gRPC z mTLS, NLB przekazujący surowy ruch TLS do portów podów w połączeniu z podami terminującymi mTLS zapewnia skalowalność i prawdziwe szyfrowanie end-to-end, jednocześnie używając adnotacji AWS Load Balancer Controller do tworzenia odpowiednich nasłuchów (listeners) i grup docelowych NLB.

Częste pułapki i kryteria decyzyjne

Częstą pułapką jest mylenie miejsca terminacji TLS z wymaganiami dotyczącymi adresu IP klienta: ALB dostarcza nagłówek X-Forwarded-For, gdy terminuje TLS, ale nie zachowuje źródłowego adresu IP do celu, tak jak robi to NLB. Jeśli potrzebujesz zarówno funkcji ALB (routing oparty na hoście/ścieżce, WAF), jak i oryginalnego źródłowego adresu IP w backendzie, rozważ użycie ALB do terminacji HTTP i przekierowania ruchu do serwerów reverse proxy lub kontenerów sidecar, które odtwarzają źródłowe adresy IP z nagłówka X-Forwarded-For, lub zastosuj architekturę, w której NLB przekazuje ruch TLS do usług implementujących mTLS i odciążających routing HTTP do proxy wewnątrz klastra. Inną pułapką jest błędna konfiguracja uprawnień między kontami: podczas udostępniania Transit Gateway lub innego zasobu sieciowego za pomocą RAM, upewnij się, że używasz jawnego udostępniania zasobów (resource share) oraz poprawnej roli IAM i principalu RAM; niezastosowanie się do tego prowadzi do niejasnych błędów „permission denied”.

W kwestii automatyzacji zgodności, nie przechowuj kluczy prywatnych ani materiałów CA w postaci niezaszyfrowanego, jawnego tekstu. Użyj SSM Parameter Store SecureString z kluczem KMS, który ma minimalną politykę klucza (key policy) zezwalającą na dostęp tylko tym rolom i principalom, które go wymagają. Używaj zarządzanych reguł AWS Config (na przykład vpc-flow-logs-enabled, restricted-common-ports, security-group-rule-check), a tam, gdzie zarządzane reguły nie pokrywają Twoich kryteriów, zaimplementuj reguły Config oparte na Lambda, które wywołują PutEvaluations. Naprawa (remediation) powinna być zautomatyzowana za pomocą dokumentów SSM Automation lub Systems Manager Run Command, które może wywołać akcja naprawcza Config, ale zawsze zapewnij ścieżkę powiadamiania i zatwierdzania dla zmian o wysokim ryzyku.

Problem praktyczny: Scenariusz użycia

Firma: ApexTelemetrics — wyzwanie: zapewnienie globalnie dostępnej usługi gRPC hostowanej na EKS, która wymaga prawdziwego, wzajemnego TLS end-to-end (klient i serwer uwierzytelniają się za pomocą mTLS), obsługuje tysiące jednoczesnych, długotrwałych połączeń przez TCP 443, musi automatycznie skalować pody i zapewniać, że dystrybucja oraz rotacja certyfikatów są zautomatyzowane i audytowalne.

Podejście:

  1. Stwórz sieć i load balancer za pomocą CloudFormation: utwórz NLB poprzez zasób AWS::ElasticLoadBalancingV2::LoadBalancer skonfigurowany z listenerem TCP na porcie 443 i grupami docelowymi (target groups) z targetType ustawionym na „ip” oraz z health checkami na TCP. Użyj CloudFormation CreateStack/UpdateStack i modułowych, zagnieżdżonych stosów (nested stacks) dla VPC, podsieci i NLB. Użyj adnotacji AWS Load Balancer Controller w usłudze EKS Service (service.beta.kubernetes.io/aws-load-balancer-type: “nlb”, service.beta.kubernetes.io/aws-load-balancer-target-type: “ip”), aby każda usługa Service tworzyła grupę docelową NLB bezpośrednio do podów.
  2. Zapewnij przekazywanie TLS (passthrough) i terminację mTLS na poziomie podów: skonfiguruj usługę EKS Service tak, aby przekazywała ruch TCP 443 bezpośrednio do portów podów; zaimplementuj kontener sidecar lub proxy envoy wewnątrz każdego poda, który wykonuje terminację mTLS z klientem i wymusza wzajemne uwierzytelnianie. Ustaw externalTrafficPolicy: Local w usłudze Service, aby w razie potrzeby zachować źródłowy adres IP, i użyj autoskalowania na poziomie podów (Horizontal Pod Autoscaler) wraz z Cluster Autoscaler, aby skalować węzły i pody razem.
  3. Zautomatyzuj cykl życia i dystrybucję certyfikatów: przechowuj klucze prywatne CA i certyfikatów serwera w SSM Parameter Store SecureString zaszyfrowane kluczem KMS. Utwórz zasób niestandardowy (custom resource) w CloudFormation oparty na AWS Lambda, aby tworzyć parametry SSM podczas tworzenia stosu (CreateFunction z odpowiednią rolą IAM, a następnie zasób niestandardowy CloudFormation do wywołania PutParameter). Użyj SSM Run Command lub niemodyfikowalnego DaemonSet, który pobiera sekrety z SSM za pomocą roli IAM powiązanej z podem (przez IRSA), aby wstrzyknąć certyfikaty do kontenera sidecar. W celu rotacji, zaplanuj funkcje Lambda (CreateFunction + reguła EventBridge) do generowania nowych certyfikatów, wywołania PutParameter i użyj SSM lub Kubernetes Jobs do wykonania restartów kroczących (rolling restarts).
  4. Zgodność i audyt: włącz reguły AWS Config (zarządzane reguły, takie jak vpc-flow-logs-enabled, oraz niestandardowe reguły oparte na Lambda wykorzystujące PutEvaluations), aby zweryfikować, czy listenery NLB są typu TCP i czy żaden ALB nie terminuje TLS dla tej usługi. Skonfiguruj akcje naprawcze (remediation) w Config, aby wywoływały dokumenty SSM Automation w przypadku wykrycia błędnej konfiguracji i wysyłały wyniki (findings) do AWS Security Hub i CloudWatch Events. Uzasadnienie ze strony AWS: NLB w trybie TCP zapewnia prawdziwe przekazywanie TLS (passthrough) wymagane dla mTLS end-to-end i skaluje się do tysięcy jednoczesnych połączeń przy niewielkim obciążeniu CPU na połączenie na poziomie load balancera. Kierowanie ruchu do podów za pomocą targetType=ip eliminuje dodatkowy przeskok (hop) i utrzymuje responsywność autoskalowania. Przechowywanie i rotacja kluczy w SSM Parameter Store zabezpieczonym przez KMS zapewnia scentralizowane, audytowalne zarządzanie sekretami z kontrolą dostępu IAM, a użycie CloudFormation wraz z zasobami niestandardowymi Lambda i EventBridge gwarantuje, że cały cykl życia jest zdefiniowany jako kod (codified), powtarzalny i obserwowalny.

Wydajność sieci i monitorowanie · Wszystkie domeny · Sieci kontenerowe i bezserwerowe

Przećwicz te pytania → · Testy na czas na ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Zdaj egzamin →

Przeglądaj Amazon →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt