En) Proxy-Autorisierung - AWS App Mesh

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

En) Proxy-Autorisierung

Die Proxy-Autorisierung autorisiert den Envoy-Proxy, der innerhalb einer Amazon ECS-Aufgabe, in einem Kubernetes-Pod, der auf Amazon EKS läuft, oder der auf einer Amazon EC2 EC2-Instance ausgeführt wird, dazu, die Konfiguration eines oder mehrerer Mesh-Endpunkte aus dem App Mesh Envoy Management Service zu lesen. Für Kundenkonten, bei denen Envoys bereits vor dem 26.04.2021 mit ihrem App Mesh Mesh-Endpunkt verbunden ist, ist eine Proxy-Autorisierung für virtuelle Knoten, die Transport Layer Security (TLS) verwenden, und für virtuelle Gateways (mit oder ohne TLS) erforderlich. Für Kundenkonten, die Envoys nach dem 26.04.2021 mit ihrem App Mesh Mesh-Endpunkt verbinden möchten, ist eine Proxy-Autorisierung für alle App Mesh Mesh-Funktionen erforderlich. Es wird empfohlen, dass alle Kundenkonten die Proxy-Autorisierung für alle virtuellen Knoten aktivieren, auch wenn sie kein TLS verwenden, um eine sichere und konsistente Erfahrung mit IAM für die Autorisierung für bestimmte Ressourcen zu haben. Die Proxy-Autorisierung erfordert, dass dieappmesh:StreamAggregatedResources Berechtigung in einer IAM-Richtlinie angegeben ist. Die Richtlinie muss an eine IAM-Rolle angehängt sein, und diese IAM-Rolle muss an die Rechenressource angehängt werden, auf der Sie den Proxy hosten.

Erstellen einer IAM-Richtlinie

Wenn Sie möchten, dass alle Mesh-Endpunkte in einem Service-Mesh die Konfiguration für alle Mesh-Endpunkte lesen können, fahren Sie mit fortErstellen einer IAM-Rolle. Wenn Sie die Mesh-Endpunkte einschränken möchten, aus denen die Konfiguration von einzelnen Mesh-Endpunkten gelesen werden kann, müssen Sie eine oder mehrere IAM-Richtlinien erstellen. Es wird empfohlen, die Mesh-Endpunkte, von denen die Konfiguration gelesen werden kann, auf den Envoy-Proxy zu beschränken, der auf bestimmten Rechenressourcen läuft. Erstellen Sie eine IAM-Richtlinie und fügen Sie dieappmesh:StreamAggregatedResources Berechtigung zu der Richtlinie hinzu. Die folgende Beispielrichtlinie ermöglicht die Konfiguration der virtuellen Knoten, die in einem Service-Mesh benanntserviceBv1 undserviceBv2 gelesen werden können. Die Konfiguration kann für keine anderen virtuellen Knoten gelesen werden, die im Service Mesh definiert sind. Weitere Informationen zum Erstellen oder Bearbeiten einer IAM-Richtlinie finden Sie unter Erstellen von IAM-Richtlinien und Bearbeiten von IAM-Richtlinien.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appmesh:StreamAggregatedResources", "Resource": [ "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1", "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2" ] } ] }

Sie können mehrere Richtlinien erstellen, wobei jede Richtlinie den Zugriff auf verschiedene Mesh-Endpunkte einschränkt.

Erstellen einer IAM-Rolle

Wenn Sie möchten, dass alle Mesh-Endpunkte in einem Service-Mesh die Konfiguration für alle Mesh-Endpunkte lesen können, müssen Sie nur eine IAM-Rolle erstellen. Wenn Sie die Mesh-Endpunkte einschränken möchten, aus denen die Konfiguration von einzelnen Mesh-Endpunkten gelesen werden kann, müssen Sie für jede Richtlinie, die Sie im vorherigen Schritt erstellt haben, eine Rolle erstellen. Füllen Sie die Anweisungen für die Rechenressource aus, auf der der Proxy ausgeführt wird.

  • Amazon EKS — Wenn Sie eine einzelne Rolle verwenden möchten, können Sie die vorhandene Rolle verwenden, die bei der Erstellung Ihres Clusters erstellt und den Worker-Knoten zugewiesen wurde. Um mehrere Rollen verwenden zu können, muss Ihr Cluster die Anforderungen erfüllen, die unter Aktivieren von IAM-Rollen für Dienstkonten in Ihrem Cluster definiert sind. Erstellen Sie die IAM-Rollen und ordnen Sie die Rollen den Kubernetes-Dienstkonten zu. Weitere Informationen finden Sie unter Erstellen einer IAM-Rolle und -Richtlinie für Ihr Dienstkonto und Angeben einer IAM-Rolle für Ihr Dienstkonto.

  • Amazon ECS — Wählen Sie AWSService, Elastic Container Service und dann den Anwendungsfall Elastic Container Service Task aus, wenn Sie Ihre IAM-Rolle erstellen.

  • Amazon EC2 — Wählen Sie AWSService, EC2 und dann den EC2-Anwendungsfall aus, wenn Sie Ihre IAM-Rolle erstellen. Dies gilt unabhängig davon, ob Sie den Proxy direkt auf einer Amazon EC2 EC2-Instance oder auf einer Instance auf einer Instance hosten.

Weitere Informationen zum Erstellen einer IAM-Rolle finden Sie unter Erstellen einer Rolle für einenAWS -Service.

Anfügen einer IAM-Richtlinie

Wenn Sie möchten, dass alle Mesh-Endpunkte in einem Service-Mesh die Konfiguration für alle Mesh-Endpunkte lesen können, hängen Sie dieAWSAppMeshEnvoyAccess verwaltete IAM-Richtlinie an die IAM-Rolle an, die Sie in einem vorherigen Schritt erstellt haben. Wenn Sie die Mesh-Endpunkte einschränken möchten, aus denen die Konfiguration von einzelnen Mesh-Endpunkten gelesen werden kann, hängen Sie jede von Ihnen erstellte Richtlinie an jede von Ihnen erstellte Rolle an. Weitere Informationen zum Anhängen einer benutzerdefinierten oder verwalteten IAM-Richtlinie an eine IAM-Rolle finden Sie unter Hinzufügen von IAM-Identitätsberechtigungen.

IAM-Rolle anfügen

Ordnen Sie jede IAM-Rolle der entsprechenden Rechenressource zu:

  • Amazon EKS — Wenn Sie die Richtlinie an die Rolle angehängt haben, die Ihren Worker-Knoten zugewiesen ist, können Sie diesen Schritt überspringen. Wenn Sie separate Rollen erstellt haben, weisen Sie jede Rolle einem separaten Kubernetes-Dienstkonto zu und weisen Sie jedes Dienstkonto einer einzelnen Kubernetes-Pod-Bereitstellungsspezifikation zu, die den Envoy-Proxy enthält. Weitere Informationen finden Sie unter Angeben einer IAM-Rolle für Ihr Servicekonto im Amazon EKS-Benutzerhandbuch und unter Konfigurieren von Servicekonten für Pods in der Kubernetes-Dokumentation.

  • Amazon ECS — Fügen Sie der Aufgabendefinition, die den Envoy-Proxy enthält, eine Amazon ECS-Aufgabenrolle hinzu. Die Aufgabe kann mit dem EC2- oder Fargate-Starttyp ausgeführt werden. Weitere Informationen zum Erstellen einer Amazon ECS-Aufgabenrolle und zum Anhängen an eine Aufgabe finden Sie unter Angeben einer IAM-Rolle für Ihre Aufgaben.

  • Amazon EC2 — Die IAM-Rolle muss der Amazon EC2 EC2-Instance zugeordnet sein, die den Envoy-Proxy hostet. Weitere Informationen zum Anhängen einer Rolle an eine Amazon EC2 EC2-Instance finden Sie unter Ich habe eine IAM-Rolle erstellt und möchte sie jetzt einer EC2-Instance zuweisen.

Bestätigen Sie die Erlaubnis

Vergewissern Sie sich, dass dieappmesh:StreamAggregatedResources Berechtigung der Rechenressource zugewiesen ist, auf der Sie den Proxy hosten, indem Sie einen der Compute-Dienstnamen auswählen.

Amazon EKS

Eine benutzerdefinierte Richtlinie kann der Rolle zugewiesen werden, die den Worker-Knoten, einzelnen Pods oder beiden zugewiesen ist. Es wird jedoch empfohlen, die Richtlinie nur einzelnen Pods zuzuweisen, sodass Sie den Zugriff einzelner Pods auf einzelne Mesh-Endpunkte beschränken können. Wenn die Richtlinie an die Rolle angehängt ist, die den Worker-Knoten zugewiesen ist, wählen Sie die Registerkarte Amazon EC2 aus und führen Sie die dort aufgeführten Schritte für Ihre Worker-Knoten-Instances aus. Gehen Sie wie folgt vor, um zu ermitteln, welche IAM-Rolle einem Kubernetes-Pod zugewiesen ist.

  1. Sehen Sie sich die Details einer Kubernetes-Bereitstellung an, die den Pod enthält, dem Sie bestätigen möchten, dass ein Kubernetes-Dienstkonto zugewiesen ist. Mit dem folgenden Befehl werden die Details für ein Deployment mit dem Namen my-deployment angezeigt.

    kubectl describe deployment my-deployment

    Notieren Sie sich in der zurückgegebenen Ausgabe den Wert rechts vonService Account:. Wenn eine Zeile, die mit beginnt, nichtService Account: existiert, ist der Bereitstellung derzeit kein benutzerdefiniertes Kubernetes-Dienstkonto zugewiesen. Sie müssen einen zuweisen. Weitere Informationen finden Sie unter Konfigurieren von Dienstkonten für Pods in der Kubernetes-Dokumentation.

  2. Sehen Sie sich die Details des im vorherigen Schritt zurückgegebenen Dienstkontos an. Mit dem folgenden Befehl werden die Details eines Dienstkontos mit dem Namen angezeigt my-service-account.

    kubectl describe serviceaccount my-service-account

    Vorausgesetzt, das Kubernetes-Dienstkonto ist mit einerAWS Identity and Access Management Rolle verknüpft, sieht eine der zurückgegebenen Zeilen dem folgenden Beispiel ähnlich.

    Annotations:         eks.amazonaws.com/role-arn=arn:aws:iam::123456789012:role/my-deployment

    Im vorherigen Beispielmy-deployment ist dies der Name der IAM-Rolle, mit der das Dienstkonto verknüpft ist. Wenn die Ausgabe des Dienstkontos keine Zeile enthält, die dem obigen Beispiel ähnelt, ist das Kubernetes-Dienstkonto keinemAWS Identity and Access Management Konto zugeordnet und Sie müssen es einem Konto zuordnen. Weitere Informationen finden Sie unter Angeben einer IAM-Rolle für Ihr Servicekonto.

  3. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  4. Klicken Sie im linken Navigationsbereich auf die Option Rollen. Wählen Sie den Namen der IAM-Rolle aus, den Sie in einem vorherigen Schritt notiert haben.

  5. Vergewissern Sie sich, dass entweder die zuvor erstellte benutzerdefinierte Richtlinie oder dieAWSAppMeshEnvoyAccess verwaltete Richtlinie aufgeführt ist. Wenn keine der Richtlinien angehängt ist, fügen Sie der IAM-Rolle eine IAM-Richtlinie hinzu. Wenn Sie eine benutzerdefinierte IAM-Richtlinie anhängen möchten, aber noch keine haben, müssen Sie eine benutzerdefinierte IAM-Richtlinie mit den erforderlichen Berechtigungen erstellen. Wenn eine benutzerdefinierte IAM-Richtlinie angehängt ist, wählen Sie die Richtlinie aus und bestätigen Sie, dass sie enthält"Action": "appmesh:StreamAggregatedResources". Ist dies nicht der Fall, müssen Sie diese Berechtigung zu Ihrer benutzerdefinierten IAM-Richtlinie hinzufügen. Sie können auch überprüfen, ob der entsprechende Amazon-Ressourcennamen (ARN) für einen bestimmten Mesh-Endpunkt aufgeführt ist. Wenn keine ARNs aufgeführt sind, können Sie die Richtlinie bearbeiten, um die aufgelisteten ARNs hinzuzufügen, zu entfernen oder zu ändern. Weitere Informationen finden Sie unter Bearbeiten von IAM-Richtlinien undErstellen einer IAM-Richtlinie.

  6. Wiederholen Sie die vorherigen Schritte für jeden Kubernetes-Pod, der den Envoy-Proxy enthält.

Amazon ECS
  1. Wählen Sie in der Amazon ECS-Konsole die Option Aufgabendefinitionen aus.

  2. Wählen Sie Ihre Amazon ECS-Aufgabe aus.

  3. Wählen Sie auf der Seite „Name der Aufgabendefinition“ Ihre Aufgabendefinition aus.

  4. Wählen Sie auf der Seite Aufgabendefinition den Link mit dem Namen der IAM-Rolle aus, der sich rechts neben der Aufgabenrolle befindet. Wenn eine IAM-Rolle nicht aufgeführt ist, müssen Sie eine IAM-Rolle erstellen und sie Ihrer Aufgabe zuordnen, indem Sie Ihre Aufgabendefinition aktualisieren.

  5. Vergewissern Sie sich auf der Übersichtsseite auf der Registerkarte Berechtigungen, dass entweder die zuvor erstellte benutzerdefinierte Richtlinie oder dieAWSAppMeshEnvoyAccess verwaltete Richtlinie aufgeführt ist. Wenn keine der Richtlinien angehängt ist, fügen Sie der IAM-Rolle eine IAM-Richtlinie hinzu. Wenn Sie eine benutzerdefinierte IAM-Richtlinie anhängen möchten, aber keine haben, müssen Sie die benutzerdefinierte IAM-Richtlinie erstellen. Wenn eine benutzerdefinierte IAM-Richtlinie angehängt ist, wählen Sie die Richtlinie aus und bestätigen Sie, dass sie enthält"Action": "appmesh:StreamAggregatedResources". Ist dies nicht der Fall, müssen Sie diese Berechtigung zu Ihrer benutzerdefinierten IAM-Richtlinie hinzufügen. Sie können auch überprüfen, ob der entsprechende Amazon-Ressourcennamen (ARN) für bestimmte Mesh-Endpunkte aufgeführt ist. Wenn keine ARNs aufgeführt sind, können Sie die Richtlinie bearbeiten, um die aufgelisteten ARNs hinzuzufügen, zu entfernen oder zu ändern. Weitere Informationen finden Sie unter Bearbeiten von IAM-Richtlinien undErstellen einer IAM-Richtlinie.

  6. Wiederholen Sie die vorherigen Schritte für jede Aufgabendefinition, die den Envoy-Proxy enthält.

Amazon EC2
  1. Klicken Sie in der Amazon EC2 EC2-Konsole auf die Option Instances im linken Navigationsbereich.

  2. Wählen Sie eine Ihrer Instances aus, die den Envoy-Proxy hostet.

  3. Wählen Sie auf der Registerkarte Beschreibung den Link mit dem Namen der IAM-Rolle aus, der sich rechts neben der IAM-Rolle befindet. Wenn eine IAM-Rolle nicht aufgeführt ist, müssen Sie eine IAM-Rolle erstellen.

  4. Vergewissern Sie sich auf der Übersichtsseite auf der Registerkarte Berechtigungen, dass entweder die zuvor erstellte benutzerdefinierte Richtlinie oder dieAWSAppMeshEnvoyAccess verwaltete Richtlinie aufgeführt ist. Wenn keine der Richtlinien angehängt ist, hängen Sie die IAM-Richtlinie an die IAM-Rolle an. Wenn Sie eine benutzerdefinierte IAM-Richtlinie anhängen möchten, aber keine haben, müssen Sie die benutzerdefinierte IAM-Richtlinie erstellen. Wenn eine benutzerdefinierte IAM-Richtlinie angehängt ist, wählen Sie die Richtlinie aus und bestätigen Sie, dass sie enthält"Action": "appmesh:StreamAggregatedResources". Ist dies nicht der Fall, müssen Sie diese Berechtigung zu Ihrer benutzerdefinierten IAM-Richtlinie hinzufügen. Sie können auch überprüfen, ob der entsprechende Amazon-Ressourcennamen (ARN) für bestimmte Mesh-Endpunkte aufgeführt ist. Wenn keine ARNs aufgeführt sind, können Sie die Richtlinie bearbeiten, um die aufgelisteten ARNs hinzuzufügen, zu entfernen oder zu ändern. Weitere Informationen finden Sie unter Bearbeiten von IAM-Richtlinien undErstellen einer IAM-Richtlinie.

  5. Wiederholen Sie die vorherigen Schritte für jede Instanz, auf der Sie den Envoy-Proxy hosten.