Gemeinsames Transit Gateway: Wem gehören die Routen in AWS RAM
RAM-Freigabe lässt ein anderes Konto eine VPC anhängen, aber Routentabellen, Assoziationen und Propagierungen bleiben beim Gateway-Eigentümer. Hier ist die Grenze.
Ein Transit Gateway mit Resource Access Manager zu teilen bewirkt eine konkrete Sache: Es erlaubt einem anderen Konto, eine definierte Menge von Attachment-APIs gegen eine Ressource aufzurufen, die es nicht besitzt. Es überträgt weder das Gateway noch seine Routentabellen oder das Recht zu entscheiden, wie Traffic weitergeleitet wird. Viele nehmen das Gegenteil an, weil das Attachment in der Konsole des Empfängers auftaucht und sofort funktioniert, was sich wie Eigentum anfühlt. Der Mechanismus dahinter ist eine Berechtigungserteilung auf einer gemeinsam genutzten Ressource, und jedes untergeordnete Objekt bleibt innerhalb der Kontogrenze des Eigentümers. Diese Trennung erklärt die meisten Zugriff-verweigert-Tickets rund um gemeinsamen Transit.
Was die Freigabe tatsächlich delegiert
Eine Ressourcenfreigabe benennt eine Ressource, einen Principal und eine verwaltete Berechtigung. Die Berechtigung listet die Aktionen auf, die dieser Principal ausführen darf, und für ein Transit Gateway deckt diese Liste Attachment-Operationen auf der freigegebenen Ressource ab.
Alles außerhalb der Liste scheitert an der API statt in der Konsole, weshalb der Fehler oft beim ersten Lauf eines Skripts auftaucht.
Routentabellen, Assoziationen und Propagierungen bleiben beim Eigentümer
Die Weiterleitung entscheiden drei untergeordnete Objekte: mit welcher Routentabelle ein Attachment assoziiert ist, in welche Tabellen es propagiert und welche Routen diese Tabellen enthalten. Die Freigabedokumentation von AWS stellt fest, dass ein Empfänger über die Freigabe keine Transit-Gateway-Routentabellen oder deren Assoziationen und Propagierungen erstellen, ändern oder löschen kann. Diese Aufrufe gehören dem Eigentümerkonto. Ein Empfänger, der eine neue Assoziation braucht, beantragt eine administrative Änderung und übt keine Berechtigung aus, die er zu aktivieren vergessen hat.
Die folgende Tabelle ist die Aufteilung, die ich in Designdokumente schreibe, weil sie Personalwechsel übersteht.
| Role | What it controls |
|---|---|
| Transit Gateway owner | The gateway, its route tables, associations and propagations; the Site-to-Site VPN attachment is created here. |
| VPC owner using the share | Its own attachment, subnet route tables and security policy for the workloads. |
| Shared-subnet participant | Workload traffic only, following routes the VPC owner already set. |
Lesen Sie die mittlere Zeile sorgfältig: Der VPC-Eigentümer steuert seine Subnetzrouten, der Gateway-Eigentümer steuert die zentrale Weiterleitungsentscheidung, und ein funktionierender Pfad braucht beides. Keines der beiden Konten kann es allein abschließen.
Ein Pfad, zwei Konten
Verfolgen Sie ein Paket von einer Spoke-VPC zu einem lokalen Präfix. Die Spoke-Subnetzroutentabelle muss dieses Präfix an das Transit-Gateway-Attachment senden, was der VPC-Eigentümer ändern kann. Das Gateway muss dann in der assoziierten Tabelle des Attachments eine Route haben, die auf das VPN-Attachment zeigt, was nur der Eigentümer ändern kann. Rückverkehr braucht das Spiegelbild von beidem. Fehlt eine Seite, erhalten Sie einen halb installierten Pfad, der wie ein Firewall-Problem aussieht.
Schreiben Sie beide Änderungen in ein Ticket mit zwei Zuständigen, sonst werden sie in verschiedenen Wochen erledigt.
Verwenden Sie Availability-Zone-IDs, wenn die Platzierung zählt
Zonennamen sind kontolokale Aliase. us-east-1a in einem Konto ist nicht garantiert dieselbe physische Zone wie us-east-1a in einem anderen. Wenn das Design ein Attachment und eine Arbeitslast in derselben Zone benötigt, vergleichen Sie AZ-IDs und halten Sie sie fest.
Der Vergleich von Namen erzeugt ein Diagramm, das richtig aussieht, und ein Latenzprofil, das es nicht ist. Prüfen Sie es, während das Diagramm noch gezeichnet wird, nicht nachdem jemand den Unterschied gemessen hat.
Das Aufheben der Freigabe kappt den Datenpfad nicht
Das Entfernen der Freigabe fühlt sich wie ein Widerruf an und ist kein sofortiger Traffic-Stopp. AWS dokumentiert, dass ein Attachment funktionsfähig bleibt, wenn das Gateway nicht mehr freigegeben ist. Die Berechtigung zur Verwaltung der Ressource verschwindet, während das bereits bestehende Attachment weiterleitet, bis jemand es löscht oder deaktiviert. Planen Sie den Widerruf in zwei Schritten: Entfernen Sie die Freigabe, dann das Attachment, wobei der Eigentümer den zweiten Schritt ausführt.
Wenn die Freigabe Ihre einzige Kontrolle ist, haben Sie keine Kontrolle.
Halten Sie den Freigabedatensatz und den Routingdatensatz zusammen
Zwei Artefakte beantworten zwei verschiedene Fragen. Der Freigabedatensatz sagt, wer mit der Ressource arbeiten darf. Die Routentabellen sagen, welche Netzwerke tatsächlich miteinander sprechen können. Bewahren Sie beide mit derselben Eigentümerliste auf, sonst beginnt der nächste Vorfall damit, dass jemand eine Berechtigung nachweist, die nie das Problem war.
Testen Sie dann einen Fluss in jede Richtung und ein Präfix, das unerreichbar bleiben soll.