Verkettung von IAM Rollen in Amazon Neptune - Amazon Neptune

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.

Verkettung von IAM Rollen in Amazon Neptune

Wichtig

Die in der Engine-Version 1.2.1.0.R3 eingeführte neue kontoübergreifende Funktion zum Massenladen, die die Vorteile der Verkettung von IAM Rollen nutzt, kann in einigen Fällen zu einer verminderten Leistung beim Massenladen führen. Daher wurden Upgrades auf Engine-Versionen, die dieses Feature unterstützen, vorübergehend ausgesetzt, bis dieses Problem behoben ist.

Wenn Sie Ihrem Cluster eine Rolle anfügen, kann Ihr Cluster diese Rolle annehmen, um auf in Amazon S3 gespeicherte Daten zuzugreifen. Wenn diese Rolle nicht auf alle benötigten Ressourcen zugreifen kann, können Sie ab Engine-Version 1.2.1.0.R3 eine oder mehrere zusätzliche Rollen verketten, die Ihr Cluster annehmen kann, um Zugriff auf andere Ressourcen zu erhalten. Jede Rolle in der Kette nimmt die nächste Rolle in der Kette an, bis Ihr Cluster die Rolle am Ende der Kette angenommen hat.

Zum Verketten von Rollen richten Sie eine Vertrauensstellung zwischen den Rollen ein. Um beispielsweise RoleB mit RoleA zu verketten, muss RoleA eine Berechtigungsrichtlinie für die Annahme von RoleB besitzen. RoleB muss eine Vertrauensrichtlinie besitzen, die die Übergabe der Berechtigungen zurück an RoleA ermöglicht. Weitere Informationen finden Sie unter Rollen verwenden. IAM

Die erste Rolle in einer Kette muss eine dem Cluster angefügte Rolle sein, die Daten lädt.

Die erste und jede folgende Rolle, die die folgende Rolle in der Kette annimmt, muss Folgendes besitzen:

  • Eine Richtlinie, die eine spezifische Aussage zum Allow-Effekt auf die Aktion sts:AssumeRole enthält.

  • Der Amazon-Ressourcenname (ARN) der nächsten Rolle in einem Resource Element.

Anmerkung

Der Amazon S3 S3-Ziel-Bucket muss sich in derselben AWS Region wie der Cluster befinden.

Kontoübergreifender Zugriff mithilfe von Rollen

Sie können einen kontoübergreifenden Zugriff gewähren, indem Sie eine oder mehrere Rollen verketten, die zu einem anderen Konto gehören. Wenn Ihr Cluster vorübergehend eine Rolle annimmt, die zu einem anderen Konto gehört, kann er Zugriff auf die Ressourcen in diesem Konto erhalten.

Angenommen, Konto A möchte auf Daten in einem Amazon-S3-Bucket zugreifen, der zu Konto B gehört:

  • Konto A erstellt eine benannte AWS Servicerolle für Neptune RoleA und ordnet sie einem Cluster zu.

  • Konto B erstellt eine Rolle mit dem Namen RoleB, die zum Zugriff auf die Daten in einem Bucket in Konto B berechtigt ist.

  • Konto A fügt eine Berechtigungsrichtlinie an RoleA an, um RoleB anzunehmen.

  • Konto B fügt eine Vertrauensrichtlinie an RoleB an, um die Rückgabe der Berechtigungen an RoleA zu ermöglichen.

  • Um auf die Daten im Bucket von Konto B zuzugreifen, führt Konto A einen Loader-Befehl mit dem Parameter iamRoleArn aus, der RoleA und RoleB verkettet. Für die Dauer der Loader-Operation nimmt RoleA vorübergehend RoleB an, um auf den Amazon-S3-Bucket in Konto B zuzugreifen.

Diagramm, das den kontoübergreifenden Zugriff mithilfe verketteter Rollen zeigt

Beispielsweise würde RoleA eine Vertrauensrichtlinie besitzen, die eine Vertrauensstellung mit Neptune einrichtet:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

RoleA würde auch eine Berechtigungsrichtlinie besitzen, die die Annahme von RoleB im Besitz von Konto B ermöglicht:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::(Account B ID):role/RoleB" } ] }

Umgekehrt würde RoleB eine Vertrauensrichtlinie für die Einrichtung einer Vertrauensstellung mit RoleA besitzen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::(Account A ID):role/RoleA" } } ] }

RoleB würde auch eine Berechtigung für den Zugriff auf Daten in dem Amazon-S3-Bucket benötigen, der sich in Konto B befindet.

Einen Endpunkt () erstellen AWS Security Token Service STS VPC

Der Neptune-Loader benötigt einen VPC AWS STS Endpunkt für die Verkettung von IAM Rollen für den privaten Zugriff AWS STS APIs über private IP-Adressen. Sie können auf sichere und skalierbare Weise eine direkte Verbindung von einem Amazon VPC zu AWS STS einem VPC Endpunkt herstellen. Wenn Sie einen VPC Schnittstellenendpunkt verwenden, bietet dieser eine bessere Sicherheitslage, da Sie keine Firewalls für ausgehenden Datenverkehr öffnen müssen. Es bietet auch die anderen Vorteile der Verwendung von VPC Amazon-Endpunkten.

Wenn Sie einen VPC Endpunkt verwenden, wird der Datenverkehr AWS STS nicht über das Internet übertragen und verlässt niemals das Amazon-Netzwerk. Ihr Netzwerkverkehr VPC ist sicher und AWS STS ohne Verfügbarkeitsrisiken oder Bandbreitenbeschränkungen verbunden. Weitere Informationen finden Sie unter Verwenden von AWS STS VPC Schnittstellenendpunkten.

So richten Sie den Zugriff für AWS Security Token Service () STS ein
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im Navigationsbereich Endpunkte aus.

  3. Klicken Sie auf Endpunkt erstellen.

  4. Wählen Sie den Servicenamen aus: com.amazonaws.region.sts für den Endpunkt vom Typ Schnittstelle.

  5. Wählen Sie die aus VPC, die Ihre Neptune-DB-Instance und EC2 -Instance enthält.

  6. Aktivieren Sie das Kontrollkästchen neben dem Subnetz, in dem sich Ihre EC2 Instance befindet. Sie können nicht mehrere Subnetze aus derselben Availability Zone auswählen.

  7. Wählen Sie für IP address type (IP-Adressentyp) eine der folgenden Optionen aus:

    • IPv4— Weisen Sie Ihren Endpunkt-Netzwerkschnittstellen IPv4 Adressen zu. Diese Option wird nur unterstützt, wenn alle ausgewählten Subnetze IPv4 Adressbereiche haben.

    • IPv6— Weisen Sie Ihren Endpunkt-Netzwerkschnittstellen IPv6 Adressen zu. Diese Option wird nur unterstützt, wenn es sich bei allen ausgewählten Subnetzen um reine IPv6 Subnetze handelt.

    • Dualstack — Weisen Sie Ihren Endpunkt-Netzwerkschnittstellen IPv4 sowohl IPv6 Adressen als auch Adressen zu. Diese Option wird nur unterstützt, wenn alle ausgewählten Subnetze IPv4 sowohl IPv6 als auch Adressbereiche haben.

  8. Wählen Sie unter Sicherheitsgruppen die Sicherheitsgruppen aus, die den Endpunkt-Netzwerkschnittstellen für den VPC Endpunkt zugeordnet werden sollen. Sie müssten alle Sicherheitsgruppen auswählen, die an Ihre Neptune-DB-Instance und EC2 -Instance angehängt sind.

  9. Wählen Sie für Policy die Option Vollzugriff aus, um alle Operationen aller Principals auf allen Ressourcen über den Endpunkt zuzulassen. VPC Wählen Sie andernfalls Benutzerdefiniert aus, um eine VPC Endpunktrichtlinie anzuhängen, die die Berechtigungen steuert, die Prinzipale für die Ausführung von Aktionen mit Ressourcen über den VPC Endpunkt haben. Diese Option ist nur verfügbar, wenn der Dienst VPC Endpunktrichtlinien unterstützt. Weitere Informationen finden Sie unter Endpunktrichtlinien.

  10. (Optional) Sie fügen ein Tag hinzu, indem Sie Neuen Tag hinzufügen auswählen und Schlüssel und Wert für das Tag eingeben.

  11. Wählen Sie Endpunkt erstellen aus.

Informationen zur Erstellung des Endpoints finden Sie unter VPCEndpoints im VPC Amazon-Benutzerhandbuch. Bitte beachten Sie, dass Amazon STS VPC Endpoint eine erforderliche Voraussetzung für die IAM Rollenverkettung ist.

Nachdem Sie nun Zugriff auf den AWS STS Endpunkt gewährt haben, können Sie sich darauf vorbereiten, Daten zu laden. Weitere Informationen zu unterstützten Formaten finden Sie unter Ladedatenformate.

Verkettung von Rollen innerhalb eines Loader-Befehls

Sie können die Rollenverkettung angeben, wenn Sie einen Loader-Befehl ausführen, indem Sie eine durch Kommas getrennte Rollenliste ARNs in den Parameter aufnehmen. iamRoleArn

Obwohl Sie in der Regel nur zwei Rollen in einer Kette benötigen, ist es durchaus möglich, drei oder mehr Rollen zu verketten. Dieser Loader-Befehl verkettet beispielsweise drei Rollen:

curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'