View a markdown version of this page

Verwenden Sie VPC-Bedingungsschlüssel, um den Verbundzugriff zu steuern - AWS Identitäts- und Zugriffsverwaltung

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.

Verwenden Sie VPC-Bedingungsschlüssel, um den Verbundzugriff zu steuern

Verbundbenutzer können Rollen mithilfe AssumeRoleWithSAML oder AssumeRoleWithWebIdentity über einen VPC-Endpunkt übernehmen. In diesem Fall können Sie VPC-specific Bedingungsschlüssel in der Vertrauensrichtlinie der Rolle oder in den Ressourcenkontrollrichtlinien (RCPs) verwenden, um einzuschränken, woher diese Anfragen stammen können. Dadurch wird zusätzlich zu den Kontrollen auf Identitätsebene in der Vertrauensrichtlinie eine Grenze auf Netzwerkebene geschaffen.

So funktionieren VPC-Bedingungsschlüssel für Verbundanfragen

Die im Anforderungskontext verfügbaren Bedingungsschlüssel hängen vom Netzwerkpfad der Verbundanforderung ab.

Verfügbarkeit des VPC-Bedingungsschlüssels nach Netzwerkpfad

Bedingungsschlüssel

Über den VPC-Endpunkt

Über das öffentliche Internet

Description

aws:SourceVpc

Ja

Nein

VPC-ID, die die Anfrage durchläuft

aws:SourceVpcArn

Ja

Nein

ARN der VPC, die die Anfrage durchläuft

aws:SourceVpce

Ja

Nein

VPC-Endpunkt-ID, die die Anfrage durchläuft

aws:VpcSourceIp

Ja

Nein

Private IP-Adresse des Anrufers innerhalb der VPC

aws:SourceIp

Nein

Ja

Öffentliche IP-Adresse des Anrufers

Wenn Ihre Vertrauensrichtlinie aws:SourceVpcaws:SourceVpcArn, oder aws:SourceVpce in einer Allow Anweisung verwendet und die Anfrage nicht über einen VPC-Endpunkt kommt, entspricht die Bedingung nicht und die Anfrage wird AWS implizit abgelehnt. Dies setzt effektiv voraus, dass föderierte Anfragen den VPC-Endpunkt durchqueren, um erfolgreich zu sein.

Wichtig

Für Anfragen, die über einen VPC-Endpunkt gestellt werden, aws:SourceIp ist nicht gefüllt. Verwenden Sie es stattdessen aws:VpcSourceIp für IP-based Einschränkungen.

Wir empfehlen, Richtlinien aws:SourceVpcArn anstelle von aws:SourceVpc Vertrauensrichtlinien zu verwenden. VPC-IDs sind regional eindeutig, aber nicht global eindeutig, aws:SourceVpcArn umfassen jedoch die Region und das Konto, sodass die VPC weltweit eindeutig identifiziert werden kann.

Anmerkung

In den folgenden OIDC-Beispielen wird der Wert audience (aud) verwendetsts.amazonaws.com, was der Standard für Amazon EKS ist. Bei anderen OIDC-Anbietern ersetzen Sie diesen Wert durch den Zielgruppenwert, der für Ihre Anwendung konfiguriert ist (z. B. eine Client-ID oder eine Anwendungs-URI).

Beispiel: Beschränken Sie den OIDC-Verbund auf eine bestimmte VPC

Die folgende Vertrauensrichtlinie ermöglicht es einem OIDC-Anbieter, die Rolle nur zu übernehmen, wenn die Anfrage von einer bestimmten VPC über einen VPC-Endpunkt stammt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

AWS lehnt implizit Anfragen von außerhalb der angegebenen VPC ab, da die aws:SourceVpcArn Bedingung nicht erfüllt ist. Es ist keine ausdrückliche Deny-Anweisung erforderlich.

Beispiel: Beschränken Sie den SAML-Verbund auf einen bestimmten VPC-Endpunkt

Die folgende Vertrauensrichtlinie ermöglicht es einem SAML-Anbieter, die Rolle nur zu übernehmen, wenn die Anfrage über einen bestimmten VPC-Endpunkt eingeht.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromVpce", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpce": "vpce-0abcdef1234567890" } } } ] }

Die Verwendung von aws:SourceVpce instead of aws:SourceVpc bietet eine detailliertere Steuerung, wenn Sie mehrere VPC-Endpunkte in derselben VPC haben und den Zugriff auf einen bestimmten Endpunkt einschränken möchten.

Beispiel: Beschränken Sie den OIDC-Verbund nach einem privaten IP-Bereich innerhalb einer VPC

Die folgende Vertrauensrichtlinie beschränkt den Verbund auf Anfragen, die aus einem bestimmten Subnetz innerhalb der VPC stammen. Wird aws:VpcSourceIp für IP-based Einschränkungen bei Anfragen verwendet, die über einen VPC-Endpunkt gestellt werden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromSubnet", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "IpAddress": { "aws:VpcSourceIp": "10.0.1.0/24" } } } ] }
Wichtig

Nicht aws:SourceIp mit privaten IP-Bereichen für Anfragen über einen VPC-Endpunkt verwenden. Der aws:SourceIp Schlüssel ist für VPC-Endpunktanfragen nicht verfügbar. Verwenden Sie stattdessen aws:VpcSourceIp.

Beispiel: Beschränken Sie den SAML-Verbund auf mehrere VPCs

Die folgende Vertrauensrichtlinie ermöglicht es einem SAML-Anbieter, die Rolle von einer von mehreren VPCs aus zu übernehmen. Dies ist nützlich, wenn Ihre Organisation über mehrere VPCs in verschiedenen Umgebungen oder Regionen verfügt, die Verbundzugriff auf dieselbe Rolle benötigen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromMultipleVpcs", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpcArn": [ "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111aaa11", "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-222bbb22" ] } } } ] }

Beispiel: Kombinieren Sie VPC- und anbieterspezifische Bedingungen

Sie können VPC-Bedingungsschlüssel mit anbieterspezifischen Bedingungen wie Audience (aud) und Subject (sub) kombinieren, um eine differenzierte Zugriffskontrolle zu gewährleisten. Die folgende Vertrauensrichtlinie beschränkt die Rollenübernahme auf einen bestimmten Verbundbenutzer und verlangt, dass die Anfrage von einer bestimmten VPC stammt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCUserFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "idp.example.com:sub": "user123", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

Dies kombiniert Kontrollen auf Identitätsebene (Beschränkung auf einen bestimmten Verbundbenutzer) mit Kontrollen auf Netzwerkebene (Beschränkung auf eine bestimmte VPC) und bietet so einen umfassenden Schutz.

Beispiel: Verwenden Sie ein RCP, um den Verbundzugriff auf eine bestimmte VPC einzuschränken

Die folgende Resource Control Policy (RCP) lehnt AssumeRoleWithSAML AssumeRoleWithWebIdentity Anfragen ab, sofern sie nicht von einer bestimmten VPC stammen. Im Gegensatz zu Vertrauensrichtlinien, die pro Rolle gelten, gilt eine Resource Control Policy (RCP) für alle Rollen in den Zielkonten. Dadurch wird eine zentralisierte Netzwerkgrenze geschaffen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyFederatedAccessOutsideVpc", "Effect": "Deny", "Principal": "*", "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:AssumeRoleWithSAML" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "Null": { "aws:SourceVpcArn": "false" } } } ] }

Die Null Bedingung stellt sicher, dass die Ablehnung nur gilt, wenn sie aws:SourceVpcArn im Anforderungskontext vorhanden ist (d. h. die Anfrage kam über einen VPC-Endpunkt, aber von der falschen VPC). Ohne sie würden Anfragen über das öffentliche Internet (wo sie nicht vorhanden aws:SourceVpcArn ist) ebenfalls von abgelehnt werden. StringNotEquals Wenn Sie das Null Häkchen entfernen, gilt die Ablehnung auch für Anfragen, die keinen VPC-Endpunkt durchqueren, einschließlich Anfragen über das öffentliche Internet. Wir empfehlen, die Prüfung in Produktionsumgebungen gründlich zu testen, bevor Null Sie die Prüfung entfernen.