AWS Globale Bedingungskontextschlüssel
Wenn ein Auftraggeber eine Anforderung an AWS stellt, erfasst AWS Anforderungsinformationen in einem Anforderungskontext. Sie können das Condition-Element einer JSON-Richtlinie verwenden, um Schlüssel im Anforderungskontext mit Schlüsselwerten zu vergleichen, die Sie in Ihrer Richtlinie angeben. Informationen werden von verschiedenen Quellen bereitgestellt, darunter der Prinzipal, der die Anfrage stellt, die Ressource, an die sich die Anfrage richtet, und die Metadaten zur Anfrage selbst.
Globale Bedingungsschlüssel können für alle AWS-Services verwendet werden. Obwohl diese Bedingungsschlüssel in allen Richtlinien verwendet werden können, ist der Schlüssel nicht in jedem Anforderungskontext verfügbar. Beispielsweise ist der Bedingungsschlüssel aws:SourceAccount nur verfügbar, wenn der Aufruf Ihrer Ressource direkt von einem AWS-Service-Prinzipal erfolgt. Weitere Informationen zu den Umständen, unter denen ein globaler Schlüssel in den Anfragekontext aufgenommen wird, finden Sie in den Informationen zur Verfügbarkeit für jeden Schlüssel.
Einige einzelne Services erstellen ihre eigenen Bedingungsschlüssel, die im Anfragekontext für andere Services verfügbar sind. Serviceübergreifende Bedingungsschlüssel sind eine Art globaler Bedingungsschlüssel, die ein Präfix enthalten, das mit dem Namen des Services übereinstimmt, z. B. ec2: oder lambda:, aber auch für andere Services verfügbar sind.
Servicespezifische Bedingungsschlüssel werden für die Verwendung mit einem einzelnen AWS-Service definiert. Beispielsweise können Sie mit Amazon S3 eine Richtlinie mit dem Bedingungsschlüssel s3:VersionId schreiben, um den Zugriff auf eine bestimmte Version eines Amazon-S3-Objekts zu beschränken. Dieser Bedingungsschlüssel ist für den Service eindeutig, d. h. er funktioniert nur bei Anfragen an den Amazon-S3-Service. Servicespezifische Bedingungsschlüssel finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS-Services. Wählen Sie den Service aus, dessen Schlüssel Sie anzeigen möchten.
Anmerkung
Wenn Sie Bedingungsschlüssel verwenden, die nur unter bestimmten Umständen verfügbar sind, können Sie die IfExists-Versionen der Bedingungsoperatoren verwenden. Wenn die entsprechenden Bedingungsschlüssel im Kontext einer Anforderung fehlen, kann die Richtlinienauswertung fehlschlagen. Verwenden Sie beispielsweise den folgenden Bedingungsblock mit ...IfExists-Operatoren, um abzugleichen, ob eine Anforderung aus einem bestimmten IP-Bereich oder von einer bestimmten VPC stammt. Wenn einer oder beide Schlüssel nicht im Anforderungskontext enthalten sind, gibt die Bedingung weiterhin zurück true. Die Werte werden nur überprüft, wenn der angegebene Schlüssel im Anforderungskontext enthalten ist. Weitere Informationen zur Auswertung einer Richtlinie, wenn ein Schlüssel für andere Operatoren nicht vorhanden ist, finden Sie unter Bedingungsoperatoren.
"Condition": {
"IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
"StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]}
}Wichtig
Um Ihre Bedingung mit einem Anforderungskontext mit mehreren Schlüsselwerten zu vergleichen, müssen Sie die Set-Operatoren ForAllValues oder ForAnyValue verwenden. Verwenden Sie Satz-Operatoren nur mit mehrwertigen Bedingungsschlüssel. Verwenden Sie keine Satz-Operatoren mit einzelwertigen Bedingungsschlüssel. Weitere Informationen finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
| Eigenschaften des Prinzipals | Eigenschaften einer Rollensitzung | Eigenschaften des Netzwerks | Eigenschaften der Ressource | Eigenschaften der Anfrage |
|---|---|---|---|---|
Vertrauliche Bedingungsschlüssel
Die folgenden Bedingungsschlüssel werden als vertraulich betrachtet. Für die Verwendung von Platzhaltern in diesen Bedingungsschlüsseln gibt es keine gültigen Anwendungsfälle, selbst wenn eine Teilzeichenfolge des Schlüsselwerts einen Platzhalter enthält. Dies liegt daran, dass der Platzhalter den Bedingungsschlüssel mit jedem beliebigen Wert abgleichen kann, was ein Sicherheitsrisiko darstellen könnte.
Eigenschaften des Prinzipals
Verwenden Sie die folgenden Bedingungsschlüssel, um Details über den Prinzipal, der die Anfrage stellt, mit den Prinzipaleigenschaften zu vergleichen, die Sie in der Richtlinie angeben. Eine Liste der Prinzipale, die Anfragen stellen können, finden Sie unter So legen Sie einen Prinzipal fest.
aws:PrincipalArn
Verwenden Sie diesen Schlüssel, um den Amazon-Ressourcennamen (ARN) des Auftraggebers, von dem die Anforderung stammt, mit dem ARN zu vergleichen, den Sie in der Richtlinie angeben. Bei IAM-Rollen gibt der Anforderungskontext den ARN der Rolle zurück, nicht den ARN des Benutzers, der die Rolle übernommen hat.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext aller signierten Anforderungen enthalten. Anonyme Anforderungen enthalten diesen Schlüssel nicht. In diesem Bedingungsschlüssel können Sie die folgenden Arten von Prinzipals angeben:
-
IAM-Rolle
-
IAM-Benutzer
-
Verbundbenutzer-Prinzipal von AWS STS
-
AWS-Konto-Root-Benutzer
-
-
Datentyp – ARN
AWS empfiehlt, beim Vergleich von ARNs ARN-Operatoren anstelle von Zeichenfolgen-Operatoren zu verwenden.
-
Werttyp - Einzelwertig
-
Beispielwerte Die folgende Liste zeigt den Anforderungskontextwert, der für verschiedene Arten von Prinzipalen zurückgegeben wird, die Sie im
aws:PrincipalArn-Bedingungsschlüssel angeben können:-
IAM-Rolle – Der Anforderungskontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn. Geben Sie den ARN der angenommenen Rollensitzung nicht als Wert für diesen Bedingungsschlüssel an. Weitere Informationen über die angenommene Rollen des Sitzungs-Prinzipals finden Sie unter Rollensitzungsgsprinzipale.arn:aws:iam::123456789012:role/role-name -
IAM-Benutzer – Der Anforderungskontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn.arn:aws:iam::123456789012:user/user-name -
Verbundbenutzer-Prinzipale von AWS STS – Der Anfragekontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn.arn:aws:sts::123456789012:federated-user/user-name -
AWS-Konto-Root-Benutzer – Der Anforderungskontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn. Wenn Sie den Root-Benutzer-ARN als Wert für den Bedingungsschlüsselaws:PrincipalArnangeben, werden die Berechtigungen nur für den Root-Benutzer des AWS-Konto eingeschränkt. Dies unterscheidet sich von der Angabe des Root-Benutzer-ARN im Prinzipal-Element einer ressourcenbasierten Richtlinie, die die Autorität an die AWS-Konto delegiert. Weitere Informationen zur Angabe des Root-Benutzer-ARN im Prinzipal-Element einer ressourcenbasierten Richtlinie finden Sie unter AWS-Konto-Prinzipale.arn:aws:iam::123456789012:root
-
Sie können den Root-Benutzer-ARN als Wert für den Bedingungsschlüssel aws:PrincipalArn in AWS Organizations-Service-Kontrollrichtlinien (SCPs) angeben. SCPs sind eine Art von Organisationsrichtlinien, die zum Verwalten von Berechtigungen in Ihrer Organisation verwendet werden und sich nur auf Mitgliedskonten in der Organisation auswirken. Ein SCP beschränkt die Berechtigungen für IAM-Benutzer und -Rollen in Mitgliedskonten, einschließlich des Stammverzeichnisses des Mitgliedskonten. Weitere Informationen zu den Auswirkungen von SCPs auf Berechtigungen finden Sie unter SCP-Auswirkungen auf Berechtigungen im AWS Organizations-Benutzerhandbuch.
aws:PrincipalAccount
Verwenden Sie diesen Schlüssel, um das Konto, zu dem der anfordernde Auftraggeber gehört, mit der Konto-ID zu vergleichen, die Sie in der Richtlinie angeben. Bei anonymen Anforderungen gibt der Anforderungskontext anonymous zurück.
-
Verfügbarkeit – Dieser Schlüssel wird in den Anforderungskontext für alle Anforderungen, einschließlich anonymer Anforderungen, aufgenommen.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Im folgenden Beispiel wird der Zugriff verweigert, mit Ausnahme von Auftraggebern mit der Kontonummer 123456789012.
aws:PrincipalOrgPaths
Verwenden Sie diesen Schlüssel, um den AWS Organizations-Pfad für den Auftraggeber zu vergleichen, der die Anforderung an den Pfad in der Richtlinie stellt. Dieser Prinzipal kann ein IAM-Benutzer, eine IAM-Rolle, ein Verbundbenutzer-Prinzipal von AWS STS oder ein Root-Benutzer des AWS-Kontos sein. In einer Richtlinie stellt dieser Bedingungsschlüssel sicher, dass der Anforderer ein Kontomitglied innerhalb des angegebenen Organisationsstammes oder der Organisationseinheiten in ist AWS Organizations. Ein AWS Organizations-Pfad ist eine Textdarstellung der Struktur einer AWS Organizations-Entität. Weitere Informationen zum Verwenden und Verstehen von Pfaden finden Sie unter . Der AWS Organizations-Entitätspfad.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Auftraggeber Mitglied einer Organisation ist. Anonyme Anforderungen enthalten diesen Schlüssel nicht.
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Anmerkung
Organisations-IDs sind global eindeutig, Organisationeinheiten-IDs und Stamm-IDs sind jedoch nur innerhalb einer Organisation eindeutig. Dies bedeutet, dass keine zwei Organisationen dieselbe Organisations-ID verwenden. Eine andere Organisation verfügt jedoch möglicherweise über eine Organisationseinheit oder ein Stammverzeichnis mit derselben ID wie Ihre. Es wird empfohlen, immer die Organisations-ID anzugeben, wenn Sie eine Organisationseinheit oder ein Stammverzeichnis angeben.
Beispielsweise gibt die folgende Bedingung true für Auftraggeber in Konten zurück, die direkt an die ou-ab12-22222222-Organisationseinheit angefügt sind, aber nicht an die untergeordneten Organisationseinheiten.
"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Die folgende Bedingung gibt true für Auftraggeber in einem Konto zurück, das direkt an die Organisationseinheit oder eine ihrer untergeordneten Organisationseinheiten angefügt ist. Wenn Sie einen Platzhalter hinzufügen, müssen Sie den StringLike-Bedingungsoperator verwenden.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"] }}
Die folgende Bedingung gibt true für Auftraggeber in einem Konto zurück, das direkt an die Organisationseinheit oder eine ihrer untergeordneten Organisationseinheiten angefügt ist. Die vorherige Bedingung gilt für die Organisationseinheit oder für untergeordnete Elemente. Die folgende Bedingung gilt nur für untergeordnete Elemente (und für untergeordnete Elemente dieser Kinder).
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"] }}
Die folgende Bedingung ermöglicht den Zugriff für jeden Auftraggeber in der o-a1b2c3d4e5-Organisation, unabhängig von der übergeordneten Organisationseinheit.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"] }}
aws:PrincipalOrgPaths ist ein mehrwertiger Bedingungsschlüssel. Mehrwertige Bedingungsschlüssel können im Anforderungskontext mehrere Werte haben. Wenn Sie mehrere Werte mit dem ForAnyValue-Bedingungsoperator verwenden, muss der Pfad des Auftraggebers mit einem der in der Richtlinie aufgeführten Pfade übereinstimmen. Weitere Hinweise zu mehrwertigen Bedingungsschlüsseln finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }
aws:PrincipalOrgID
Verwenden Sie diesen Schlüssel, um den Bezeichner der Organisation in AWS Organizations, zu der der anfordernde Auftraggeber gehört, mit dem in der Richtlinie angegebenen zu vergleichen.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Auftraggeber Mitglied einer Organisation ist. Anonyme Anforderungen enthalten diesen Schlüssel nicht.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Dieser globale Schlüssel stellt eine Alternative zum Auflisten aller Konto-IDs für alle AWS-Konten in einer Organisation dar. Sie können diesen Bedingungsschlüssel verwenden, um das Angeben des Elements Principal in einer resource-based-Richtlinie zu vereinfachen. Sie können die Organisations-ID im Bedingungselement angeben. Wenn Sie Konten hinzufügen und entfernen, schließen Richtlinien, die den aws:PrincipalOrgID-Schlüssel enthalten, automatisch die richtigen Konten ein und müssen nicht manuell aktualisiert werden.
Mit der folgenden Amazon S3-Bucket-Richtlinie können beispielsweise Mitglieder aller Konten in der Organisation o-xxxxxxxxxxx ein Objekt in den Bucket amzn-s3-demo-bucket einfügen.
Anmerkung
Diese globale Bedingung gilt auch für das Masterkonto einer AWS-Organisation. Diese Richtlinie verhindert, dass alle Hauptbenutzer außerhalb der angegebenen Organisation auf den Amazon-S3-Bucket zugreifen können. Dies umfasst alle AWS-Services, die mit Ihren internen Ressourcen interagieren, wie AWS CloudTrailSenden von Protokolldaten an Ihre Amazon-S3-Buckets. Um zu erfahren, wie Sie sicher Zugriff auf AWS-Services gewähren können, siehe aws:PrincipalIsAWSService.
Weitere Informationen zu AWS Organizations finden Sie unter Was ist AWS Organizations? im AWS Organizations-Benutzerhandbuch.
aws:PrincipalTag/tag-key
Verwenden Sie diesen Schlüssel, um das Tag, das dem Auftraggeber angefügt ist, der die Anforderung stellt, mit dem Tag zu vergleichen, das Sie in der Richtlinie angeben. Wenn dem Auftraggeber mehr als ein Tag angefügt ist, enthält der Anforderungskontext einen aws:PrincipalTag-Schlüssel für jeden angefügten Tag-Schlüssel.
-
Availability (Verfügbarkeit) – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Auftraggeber ein IAM-Benutzer mit angefügten Tags ist. Er ist für einen Auftraggeber enthalten, der eine IAM-Rolle mit angefügten Tags oder Sitzungs-Tags verwendet. Anonyme Anforderungen enthalten diesen Schlüssel nicht.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Sie können einem Benutzer oder einer Rolle benutzerdefinierte Attribute in Form eines Schlüssel-Wert-Paares hinzufügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Tags für AWS Identity and Access Management-Ressourcen. Sie können aws:PrincipalTag für die Zugriffskontrolle für AWS-Auftraggeber einsetzen.
Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die es Benutzern mit dem Tag department=hr erlaubt, IAM-Benutzer, -Gruppen oder -Rollen zu verwalten. Um diese Richtlinie zu verwenden, ersetzen Sie den kursiv gedruckten Platzhaltertext in der Beispielrichtlinie durch Ihre eigenen Informationen. Befolgen Sie dann die Anweisungen unter Erstellen einer Richtlinie oder Bearbeiten einer Richtlinie.
aws:PrincipalIsAWSService
Verwenden Sie diesen Schlüssel, um zu prüfen, ob der Aufruf Ihrer Ressource direkt von einem AWS-Dienstauftraggeber vorgenommen wird. Zum Beispiel verwendet AWS CloudTrail den Service-Prinzipal cloudtrail.amazonaws.com, um Protokolle in Ihr Amazon S3-Bucket zu schreiben. Der Anforderungskontextschlüssel wird auf true festgelegt, wenn ein Dienst einen Dienstauftraggeber verwendet, um eine direkte Aktion für Ihre Ressourcen auszuführen. Der Kontextschlüssel wird auf false gesetzt, wenn der Dienst die Anmeldeinformationen eines IAM-Auftraggeber verwendet, um eine Anforderung im Namen des Auftraggeber zu stellen. Sie wird auch verweigert, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext aller signierten API-Anforderungen vorhanden, dieAWS-Anmeldeinformationen. Anonyme Anforderungen enthalten diesen Schlüssel nicht.
-
Datentyp – boolesch
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf Ihre vertrauenswürdigen Identitäten und erwarteten Netzwerkstandorte zu beschränken und gleichzeitig den Zugriff auf AWS-Services.
Im folgenden Beispiel für eine Amazon S3-Bucket-Richtlinie wird der Zugriff auf den Bucket eingeschränkt, es sei denn, die Anforderung stammt von vpc-111bbb22 oder von einem Dienstauftraggeber, wie CloudTrail.
Im folgenden Video erfahren Sie mehr darüber, wie Sie den Bedingungsschlüssel aws:PrincipalIsAWSService in einer Richtlinie verwenden können.
aws:PrincipalServiceName
Verwenden Sie diesen Schlüssel, um den Dienstauftraggeber-Namen in der Richtlinie mit dem Dienstauftraggeber zu vergleichen, der Anforderungen an Ihre Ressourcen stellt. Sie können diesen Schlüssel verwenden, um zu überprüfen, ob dieser Aufruf von einem bestimmten Dienstauftraggeber erfolgt. Wenn ein Dienstauftraggeber eine direkte Anforderung an Ihre Ressource stellt, enthält der aws:PrincipalServiceName-Schlüssel den Namen des Dienstauftraggebers. Beispielsweise ist AWS CloudTrail der cloudtrail.amazonaws.com-CodeArtifact-Dienstauftraggeber.
-
Verfügbarkeit – Dieser Schlüssel ist in der Anforderung vorhanden, wenn der Aufruf durch eine erfolgtAWSDienstauftraggeber. Dieser Schlüssel ist in keiner anderen Situation vorhanden, einschließlich der folgenden:
-
Sie wird auch verweigert, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen.
-
Wenn der Dienst die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um eine Anforderung im Namen des Auftraggebers zu stellen.
-
Wenn der Anruf direkt von einem IAM-Auftraggeber getätigt wird.
-
Wenn der Anruf von einem anonymen Antragsteller getätigt wird.
-
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf Ihre vertrauenswürdigen Identitäten und erwarteten Netzwerkstandorte zu beschränken und gleichzeitig den Zugriff auf AWS-Services.
Im folgenden Amazon S3 Bucket-Richtlinienbeispiel ist der Zugriff auf den Bucket eingeschränkt, es sei denn, die Anforderung stammt vonvpc-111bbb22oder stammt von einem Dienstauftraggeber wie CloudTrail.
aws:PrincipalServiceNamesList
Dieser Schlüssel enthält eine Liste aller-DienstauftraggeberNamen, die zum Dienst gehören. Dies ist ein erweiterter Bedingungsschlüssel. Sie können damit den Service daran hindern, nur von einer bestimmten Region aus auf Ihre Ressource zuzugreifen. Einige Dienste können regionale Dienstauftraggeber erstellen, um eine bestimmte Instance des Dienstes innerhalb einer bestimmten Region anzugeben. Sie können den Zugriff auf eine Ressource auf eine bestimmte Instance des Dienstes beschränken. Wenn ein Dienstauftraggeber eine direkte Anforderung an Ihre Ressource stellt, enthält der aws:PrincipalServiceNamesList eine ungeordnete Liste aller Dienst-Auftraggebernamen, die mit der regionalen Instance des Dienstes verbunden sind.
-
Verfügbarkeit – Dieser Schlüssel ist in der Anforderung vorhanden, wenn der Anruf von einem Auftraggeber des AWS-Dienstes getätigt wird. Dieser Schlüssel ist in keiner anderen Situation vorhanden, einschließlich der folgenden:
-
Sie wird auch verweigert, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen.
-
Wenn der Dienst die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um eine Anforderung im Namen des Auftraggebers zu stellen.
-
Wenn der Anruf direkt von einem IAM-Auftraggeber getätigt wird.
-
Wenn der Anruf von einem anonymen Antragsteller getätigt wird.
-
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
aws:PrincipalServiceNamesList ist ein mehrwertiger Bedingungsschlüssel. Mehrwertige Bedingungsschlüssel können im Anforderungskontext mehrere Werte haben. Sie müssen die Set-Operatoren ForAnyValue oder ForAllValues zusammen mit String-Bedingungsoperatoren für diesen Schlüssel verwenden. Weitere Hinweise zu mehrwertigen Bedingungsschlüsseln finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
aws:PrincipalType
Verwenden Sie diesen Schlüssel, um den Typ des Auftraggebers, der die Anforderung stellt, mit dem Auftraggebertyp zu vergleichen, den Sie in der Richtlinie angeben. Weitere Informationen finden Sie unter So legen Sie einen Prinzipal fest. Für konkrete Beispiele von principal-Schlüsselwerten, siehe Auftraggeber-Schlüsselwerte.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext für alle Anforderungen, einschließlich anonymer Anforderungen, enthalten.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
aws:userid
Verwenden Sie diesen Schlüssel, um die Auftraggeber-ID des Anforderers mit der ID zu vergleichen, die Sie in der Richtlinie angeben. Bei IAM-Benutzern ist der Anforderungskontextwert die Benutzer-ID. Bei IAM-Rollen kann dieses Werteformat variieren. Weitere Informationen dazu, wie die Informationen für verschiedene Auftraggeber angezeigt werden, finden Sie unter So legen Sie einen Prinzipal fest. Für konkrete Beispiele von principal-Schlüsselwerten, siehe Auftraggeber-Schlüsselwerte.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext für alle Anforderungen, einschließlich anonymer Anforderungen, enthalten.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
aws:username
Verwenden Sie diesen Schlüssel, um den Benutzernamen des Anforderers mit dem Benutzernamen zu vergleichen, den Sie in der Richtlinie angeben. Weitere Informationen dazu, wie die Informationen für verschiedene Auftraggeber angezeigt werden, finden Sie unter So legen Sie einen Prinzipal fest. Für konkrete Beispiele von principal-Schlüsselwerten, siehe Auftraggeber-Schlüsselwerte.
-
Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext für IAM-Benutzer enthalten. Anonyme Anforderungen und Anforderungen, die über Root-Benutzer des AWS-Kontos oder IAM-Rollen gestellt werden, enthalten diesen Schlüssel nicht. Anforderungen, die mit IAM Identity Center-Anmeldeinformationen gestellt werden, enthalten diesen Schlüssel nicht im Kontext.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Eigenschaften einer Rollensitzung
Verwenden Sie die folgenden Bedingungsschlüssel, um Eigenschaften der Rollensitzung zum Zeitpunkt der Sitzungsgenerierung zu vergleichen. Diese Bedingungsschlüssel sind nur verfügbar, wenn eine Anfrage von einem Prinzipal mit Rollensitzungs- oder Verbundbenutzer-Prinzipal-Anmeldeinformationen gestellt wird. Die Werte für diese Bedingungsschlüssel sind im Sitzungstoken der Rolle eingebettet.
Eine Rolle ist eine Art Prinzipal. Sie können die Bedingungsschlüssel aus dem Abschnitt Eigenschaften des Prinzipals auch verwenden, um die Eigenschaften einer Rolle auszuwerten, wenn eine Rolle eine Anfrage stellt.
aws:AssumedRoot
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Anfrage mit AssumeRoot erfolgt ist. AssumeRoot gibt kurzfristige Anmeldeinformationen für eine privilegierte Root-Benutzer-Sitzung zurück, die Sie verwenden können, um privilegierte Aktionen für Mitgliedskonten in Ihrer Organisation auszuführen. Weitere Informationen finden Sie unter Root-Zugriff für Mitgliedskonten zentral verwalten.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann in den Anfragekontext aufgenommen, wenn der Prinzipal die Anmeldeinformationen von AssumeRoot verwendet, um die Anfrage zu stellen.
-
Datentyp – boolesch
-
Werttyp - Einzelwertig
Im folgenden Beispiel wird bei Verwendung als Service-Kontrollrichtlinie die Verwendung der langfristigen Anmeldeinformationen eines Root-Benutzers in einem Mitgliedskonto von AWS Organizations verweigert. Die Richtlinie verhindert nicht, dass AssumeRoot-Sitzungen die von einer AssumeRoot-Sitzung zugelassenen Aktionen ausführen.
aws:FederatedProvider
Verwenden Sie diesen Schlüssel, um die Auftraggeber-ID des Anforderers (IdP) mit der ID zu vergleichen, die Sie in der Richtlinie angeben. Dies bedeutet, dass eine IAM-Rolle mit dem AssumeRoleWithWebIdentity AWS STS-Vorgang übernommen wurde. Wenn die temporären Anmeldeinformationen der resultierenden Rollensitzung verwendet werden, um eine Anforderung zu stellen, identifiziert der Anforderungskontext den IdP, der die ursprüngliche Verbundidentität authentifiziert hat.
-
Verfügbarkeit – Dieser Schlüssel ist in der Rollensitzung einer Rolle vorhanden, die mithilfe eines OpenID Connect (OIDC)-Anbieters übernommen wurde, sowie in der Rollenvertrauensrichtlinie, wenn ein OIDC-Anbieter zum Aufrufen von
AssumeRoleWithWebIdentityverwendet wird. -
Datentyp – Zeichenfolge*
-
Werttyp - Einzelwertig
* Der Datentyp hängt von Ihrem IDP ab:
-
Wenn Sie einen integrierten AWS-IDP wie Amazon Cognito verwenden, ist der Schlüsselwert eine Zeichenfolge. Der Schlüsselwert kann wie folgt aussehen:
cognito-identity.amazonaws.com. -
Wenn Sie einen IDP verwenden, der nicht in AWS integriert ist, wie z. B. GitHub
oder Amazon EKS, ist der Schlüsselwert ARN. Der Schlüsselwert kann wie folgt aussehen: arn:aws:iam::.111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID
Weitere Informationen zu externen IDPs und AssumeRoleWithWebIDentity finden Sie unter Gängige Szenarien. Weitere Informationen finden Sie unter Rollensitzungsgsprinzipale.
aws:TokenIssueTime
Verwenden Sie diesen Schlüssel, um das Datum und die Uhrzeit der Ausstellung der Sicherheitsanmeldeinformationen mit dem Datum und der Uhrzeit zu vergleichen, das bzw. die Sie in der Richtlinie angeben.
-
Availability – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Auftraggeber temporäre Anmeldeinformationen für die Anforderung verwendet. Der Schlüssel ist in AWS CLI-, AWS-API- oder AWS-SDK-Anforderungen, die mit Zugriffsschlüsseln gestellt werden, nicht vorhanden.
-
Datentyp – Datum
-
Werttyp - Einzelwertig
Informationen darüber, welche Services die Verwendung von temporären Anmeldeinformationen unterstützen, finden Sie unter AWS-Services, die mit IAM funktionieren.
aws:MultiFactorAuthAge
Verwenden Sie diesen Schlüssel, um die Anzahl der Sekunden, die seit dem Zeitpunkt, zu dem der anfordernde Auftraggeber per MFA autorisiert wurde, verstrichen sind mit der Anzahl, die Sie in der Richtlinie angeben, zu vergleichen. Weitere Informationen zu MFA finden Sie unter AWS-Multi-Faktor-Authentifizierung in IAM.
Wichtig
Dieser Bedingungsschlüssel ist für Verbundidentitäten oder Anfragen, die mit Zugriffsschlüsseln zum Signieren von AWS-CLI-, AWS-API- oder AWS-SDK-Anfragen erfolgen, nicht vorhanden. Weitere Informationen zum Hinzufügen von MFA-Schutz zu API-Operationen mit temporären Sicherheitsanmeldeinformationen finden Sie unter Sicherer API-Zugriff mit MFA.
Um zu überprüfen, ob MFA zur Validierung von IAM-Verbundidentitäten verwendet wird, können Sie die Authentifizierungsmethode von Ihrem Identitätsanbieter als Sitzungs-Tag an AWS übergeben. Details hierzu finden Sie unter Übergeben von Sitzungs-Tags in AWS STS. Um MFA für Identitäten von IAM Identity Center durchzusetzen, können Sie Attribute für die Zugriffskontrolle aktivieren, um einen SAML-Assertionsantrag mit der Authentifizierungsmethode von Ihrem Identitätsanbieter an IAM Identity Center zu übergeben.
-
Verfügbarkeit – Dieser Schlüssel wird nur dann in den Anforderungskontext aufgenommen, wenn der Prinzipal für die Anfrage temporäre Sicherheitsanmeldeinformationen verwendet. Richtlinien mit MFA-Bedingungen können an Folgendes angefügt werden:
-
Einem IAM-Benutzer oder einer IAM-Gruppe
-
Einer Ressource, wie zum Beispiel ein Amazon S3-Bucket, eine Amazon SQS-Warteschlange oder ein Amazon SNS-Thema
-
Die Vertrauensrichtlinie einer IAM-Rolle, die von einem Benutzer übernommen werden kann
-
-
Datentyp – Numerisch
-
Werttyp - Einzelwertig
aws:MultiFactorAuthPresent
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Multi-Faktor-Authentifizierung (MFA) zur Validierung der temporären Sicherheits-Anmeldeinformationen verwendet wurde, über die die Anforderung gestellt wurde.
Wichtig
Dieser Bedingungsschlüssel ist für Verbundidentitäten oder Anfragen, die mit Zugriffsschlüsseln zum Signieren von AWS-CLI-, AWS-API- oder AWS-SDK-Anfragen erfolgen, nicht vorhanden. Weitere Informationen zum Hinzufügen von MFA-Schutz zu API-Operationen mit temporären Sicherheitsanmeldeinformationen finden Sie unter Sicherer API-Zugriff mit MFA.
Um zu überprüfen, ob MFA zur Validierung von IAM-Verbundidentitäten verwendet wird, können Sie die Authentifizierungsmethode von Ihrem Identitätsanbieter als Sitzungs-Tag an AWS übergeben. Details hierzu finden Sie unter Übergeben von Sitzungs-Tags in AWS STS. Um MFA für Identitäten von IAM Identity Center durchzusetzen, können Sie Attribute für die Zugriffskontrolle aktivieren, um einen SAML-Assertionsantrag mit der Authentifizierungsmethode von Ihrem Identitätsanbieter an IAM Identity Center zu übergeben.
-
Availability – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Auftraggeber temporäre Anmeldeinformationen für die Anforderung verwendet. Richtlinien mit MFA-Bedingungen können an Folgendes angefügt werden:
-
Einem IAM-Benutzer oder einer IAM-Gruppe
-
Einer Ressource, wie zum Beispiel ein Amazon S3-Bucket, eine Amazon SQS-Warteschlange oder ein Amazon SNS-Thema
-
Die Vertrauensrichtlinie einer IAM-Rolle, die von einem Benutzer übernommen werden kann
-
-
Datentyp – boolesch
-
Werttyp - Einzelwertig
Temporäre Anmeldeinformationen werden zur Authentifizierung von IAM-Rollen und IAM-Benutzern mit temporären Token von AssumeRole oder GetSessionToken sowie von Benutzern der AWS-Managementkonsole verwendet.
IAM-Benutzerzugriffsschlüssel sind langfristige Berechtigungsnachweise, aber in einigen Fällen erstellt AWS temporäre Berechtigungsnachweise im Namen von IAM-Benutzern, um Operationen durchzuführen. In diesen Fällen ist der Schlüssel aws:MultiFactorAuthPresent in der Anforderung vorhanden und auf einen Wert von false gesetzt werden. Es gibt zwei häufige Fälle, in denen dies passieren kann:
-
IAM-Benutzer in der AWS-Managementkonsole verwenden unwissentlich temporäre Anmeldeinformationen. Benutzer melden sich mit ihrem Benutzernamen und Passwort bei der Konsole an. Dabei handelt es sich um langfristige Anmeldeinformationen. Im Hintergrund erstellt die Konsole jedoch temporäre Anmeldeinformationen für den Benutzer.
-
Wenn ein IAM-Benutzer einen Aufruf an einen AWS-Service sendet, verwendet der Service die Anmeldeinformationen des Benutzers erneut, um eine weitere Anforderung an einen anderen Service zu senden. Zum Beispiel, wenn Sie Athena aufrufen, um auf einen Amazon S3-Bucket zuzugreifen, oder wenn Sie CloudFormation verwenden, um eine Amazon EC2-Instance zu erstellen. Für die nachfolgende Anforderung verwendet AWS temporäre Anmeldeinformationen.
Informationen darüber, welche Services die Verwendung von temporären Anmeldeinformationen unterstützen, finden Sie unter AWS-Services, die mit IAM funktionieren.
Der aws:MultiFactorAuthPresent-Schlüssel ist nie vorhanden, wenn ein API- oder CLI-Befehl mit langfristigen Anmeldeinformationen wie Zugriffsschlüsselpaare eines Benutzers aufgerufen wird. Wir empfehlen daher, beim Prüfen dieses Schlüssels die Versionen ...IfExists der Bedingungsoperatoren zu verwenden.
Beachten Sie, dass das folgende Condition-Element keine zuverlässige Methode ist, um zu überprüfen, ob eine Anforderung über MFA authentifiziert wird.
##### WARNING: NOT RECOMMENDED #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Deny Effekt Bool-Element und false-Wert verweigert Anforderungen, die mit MFA authentifiziert werden können, es aber nicht waren. Dies gilt nur für temporäre Anmeldeinformationen, die die Verwendung von MFA unterstützen. Diese Anweisung verweigert nicht den Zugriff auf Anforderungen, die mit langfristigen Anmeldeinformationen gestellt wurden, oder auf Anforderungen, die per MFA authentifiziert wurden. Verwenden Sie dieses Beispiel mit Vorsicht, da seine Logik kompliziert ist und nicht prüft, ob die MFA-Authentifizierung tatsächlich verwendet wurde.
Verwenden Sie auch nicht die Kombination aus Deny Effekt Null-Element und true, da sie sich genauso verhält und die Logik noch komplizierter ist.
Empfohlene Kombination
Wir empfehlen Ihnen, den Operator BoolIfExists zu verwenden, um zu überprüfen, ob eine Anforderung über MFA authentifiziert wird.
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Deny, BoolIfExists und false verweigert Anforderungen, die nicht mit MFA authentifiziert wurden. Insbesondere lehnt sie Anforderungen von temporären Anmeldeinformationen ab, die keine MFA umfassen. Sie lehnt auch Anforderungen ab, die mit langfristigen Anmeldeinformationen gestellt werden, beispielsweise AWS CLI- oder AWS-API-Operationen über Zugriffsschlüssel. Der Operator *IfExists prüft das Vorhandensein des aws:MultiFactorAuthPresent-Schlüssels und ob er vorhanden sein könnte oder nicht, wie durch seine Existenz angezeigt wird. Verwenden Sie diesen Operator, wenn Sie eine Anforderung ablehnen möchten, die nicht über die MFA authentifiziert wird. Diese Methode ist sicherer, kann jedoch jeglichen Code oder Skripte unterbrechen, die Zugriffsschlüssel für den Zugriff auf die AWS CLI- oder AWS-API verwenden.
Alternative Kombinationen
Sie können auch den BoolIfExists-Operator verwenden, um MFA-authentifizierte Anforderungen und AWS CLI- oder AWS-API-Anforderungen mit langfristigen Anmeldeinformationen zuzulassen.
"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
Diese Bedingung ist erfüllt, wenn der Schlüssel existiert und vorhanden ist oder wenn der Schlüssel nicht vorhanden ist. Diese Kombination aus Allow, BoolIfExists, und true lässt Anforderungen zu, die mit MFA authentifiziert werden, oder Anforderungen, die nicht mit MFA authentifiziert werden können. Das bedeutet, dass AWS CLI-,AWS-API- und AWS-SDK-Operationen zulässig sind, wenn der Anforderer seine langfristigen Zugriffsschlüssel verwendet. Diese Kombination erlaubt keine Anforderungen von temporären Anmeldeinformationen, die MFA umfassen könnten, aber keine MFA enthalten.
Wenn Sie eine Richtlinie mit dem visuellen Editor der IAM-Konsole erstellen und MFA required (MFA erforderlich), auswählen, wird diese Kombination angewendet. Diese Einstellung erfordert zwar MFA für den Konsolenzugriff, ermöglicht jedoch den programmgesteuerten Zugriff ohne MFA.
Alternativ können Sie den Bool-Operator verwenden, damit programmgesteuerte Anforderungen und Konsolenanforderungen nur dann zugelassen werden, wenn sie mit MFA authentifiziert werden.
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
Diese Kombination aus Allow, Bool und true lässt nur mit MFA authentifizierte Anforderungen zu. Dies gilt nur für temporäre Anmeldeinformationen, die die Verwendung von MFA unterstützen. Diese Anweisung erlaubt keinen Zugriff auf Anforderungen, die mit langfristigen Zugriffsschlüsseln gestellt wurden, oder auf Anforderungen, die mit temporären Anmeldeinformationen ohne MFA durchgeführt wurden.
Verwenden Sie keine Richtlinie wie die folgende Beispielrichtlinie, um auf das Vorhandensein des MFA-Schlüssels hin zu prüfen:
##### WARNING: USE WITH CAUTION #####
"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Allow Effekt, Null-Element und false-Wert erlaubt nur Anforderungen, die mit MFA authentifiziert werden können, unabhängig davon, ob die Anforderung tatsächlich authentifiziert ist. Dies ermöglicht alle Anforderungen, die mit temporären Anmeldeinformationen gestellt werden, und verweigert den Zugriff mit langfristigen Anmeldeinformationen. Verwenden Sie dieses Beispiel mit Vorsicht, da es nicht prüft, ob die MFA-Authentifizierung tatsächlich verwendet wurde.
aws:ChatbotSourceArn
Verwenden Sie diesen Schlüssel, um die vom Prinzipal festgelegte Quell-Chat-Konfigurations-ARN mit der Chat-Konfigurations-ARN zu vergleichen, die Sie in der Richtlinie der IAM-Rolle angeben, die Ihrer Kanalkonfiguration zugeordnet ist. Sie können Anfragen basierend auf der von Amazon Q Developer in Chat-Anwendungen initiierten Rollensitzung autorisieren.
-
Verfügbarkeit – Dieser Schlüssel wird vom Amazon Q Developer-Service in Chat-Anwendungen immer dann in den Anfragekontext aufgenommen, wenn eine Rollensitzung angenommen wird. Der Schlüsselwert ist die Chat-Konfigurations-ARN, z. B. bei der Ausführung eines AWS CLI-Befehls aus einem Chat-Kanal.
-
Datentyp – ARN
-
Werttyp - Einzelwertig
-
Beispielwert –
arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel
Die folgende Richtlinie verweigert Amazon-S3-Put-Anfragen für den angegebenen Bucket für alle Anfragen, die von einem Slack-Kanal stammen.
aws:Ec2InstanceSourceVpc
Dieser Schlüssel identifiziert die VPC, an die Amazon-EC2-IAM-Rollen-Anmeldeinformationen übermittelt wurden. Sie können diesen Schlüssel in einer Richtlinie mit dem aws:SourceVPCglobalen Schlüssel verwenden, um zu überprüfen, ob ein Anruf von einer VPC (aws:SourceVPC) aus getätigt wird, die der VPC entspricht, an die die Anmeldeinformation übermittelt wurden (aws:Ec2InstanceSourceVpc).
-
Verfügbarkeit – Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn der Anforderer Anforderungen mit einer Amazon EC2-Rollen-Anmeldeinformation signiert. Er kann in IAM-Richtlinien, Service-Control-Richtlinien, VPC-Endpunkt-Richtlinien und Ressourcenrichtlinien verwendet werden.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Dieser Schlüssel kann mit VPC-Identifikationswerten verwendet werden, ist jedoch am nützlichsten, wenn er als Variable in Kombination mit dem aws:SourceVpc-Kontextschlüssel verwendet wird. Dieser aws:SourceVpc-Kontextschlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anforderer einen VPC-Endpunkt für die Anforderung verwendet. Die Verwendung von aws:Ec2InstanceSourceVpc mit aws:SourceVpc ermöglicht eine aws:Ec2InstanceSourceVpc breitere Verwendung, da Werte verglichen werden, die sich normalerweise zusammen ändern.
Im obigen Beispiel wird der Zugriff verweigert, wenn der aws:SourceVpc-Wert nicht dem aws:Ec2InstanceSourceVpc-Wert entspricht. Die Richtlinienerklärung ist nur auf Rollen beschränkt, die als Amazon EC2-Instance-Rollen verwendet werden, indem getestet wird, ob der ec2:SourceInstanceARN-Bedingungsschlüssel vorhanden ist.
Die Richtlinie nutzt aws:ViaAWSService, um es AWS zu ermöglichen, Anforderungen zu autorisieren, wenn Anforderungen im Namen Ihrer Amazon EC2-Instance-Rollen gestellt werden. Wenn Sie beispielsweise eine Anforderung von einer Amazon EC2-Instance an einen verschlüsselten Amazon S3-Bucket stellen, ruft Amazon S3 in Ihrem Namen AWS KMS auf. Einige der Schlüssel sind nicht vorhanden, wenn die Anfrage an AWS KMS gestellt wird.
aws:Ec2InstanceSourcePrivateIPv4
Dieser Schlüssel identifiziert die private IPv4-Adresse der primären elastischen Netzwerk-Schnittstelle, an die die Amazon EC2-IAM-Rollen-Anmeldeinformation übermittelt wurde. Sie müssen diesen Bedingungsschlüssel zusammen mit dem zugehörigen Schlüssel aws:Ec2InstanceSourceVpc verwenden, um sicherzustellen, dass Sie über eine global eindeutige Kombination aus VPC-ID und privater Quell-IP verfügen. Verwenden Sie diesen Schlüssel mit aws:Ec2InstanceSourceVpc, um sicherzustellen, dass eine Anfrage von derselben privaten IP-Adresse aus gestellt wurde, an die die Anmeldeinformation übermittelt wurde.
-
Verfügbarkeit – Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn der Anforderer Anforderungen mit einer Amazon EC2-Rollen-Anmeldeinformation signiert. Er kann in IAM-Richtlinien, Service-Control-Richtlinien, VPC-Endpunkt-Richtlinien und Ressourcenrichtlinien verwendet werden.
-
Datentyp – IP-Adresse
-
Werttyp - Einzelwertig
Wichtig
Dieser Schlüssel sollte nicht alleine in einer Allow-Anweisung verwendet werden. Private IP-Adressen sind per Definition nicht global eindeutig. Sie sollten den aws:Ec2InstanceSourceVpc-Schlüssel jedes Mal verwenden, wenn Sie den aws:Ec2InstanceSourcePrivateIPv4-Schlüssel verwenden, um die VPC anzugeben, von der aus Ihre Amazon EC2-Instance-Anmeldeinformation verwendet werden kann.
Das folgende Beispiel zeigt eine Service-Kontrollrichtlinie (SCP), die den Zugriff auf alle Ressourcen verweigert, es sei denn, die Anfrage trifft über einen VPC-Endpunkt in derselben VPC wie die Rollen-Anmeldeinformationen ein. In diesem Beispiel beschränkt aws:Ec2InstanceSourcePrivateIPv4 die Quelle der Anmeldeinformationen auf eine bestimmte Instance basierend auf der Quell-IP.
aws:SourceIdentity
Verwenden Sie diesen Schlüssel, um die Queltidentität, die vom Auftraggeber festgelegt wurde, mit der Quellidentität zu vergleichen, die Sie in der Richtlinie angeben.
-
Verfügbarkeit – Dieser Schlüssel wird im Anforderungskontext enthalten, nachdem eine Quellidentität festgelegt wurde, wenn eine Rolle mit einem AWS STSassume-role CLI-Befehl oder AWS STS
AssumeRoleAPI-Operation. -
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Sie können diesen Schlüssel in einer Richtlinie verwenden, um Aktionen in AWS von Auftraggebern zu erlauben, die bei der Übernahme einer Rolle eine Quellidentität festgelegt haben. Die Aktivität für die angegebene Quellidentität der Rolle erscheint in AWS CloudTrail. Auf diese Weise können Administratoren leichter feststellen, welcher Benutzer eine bestimmte Aktion in ausgeführt hat AWS.
Im Gegensatz zu sts:RoleSessionName, nachdem die Quellidentität festgelegt wurde, kann der Wert nicht geändert werden. Es ist im Kontext der Anforderung aller Aktionen vorhanden, die von der Rolle ausgeführt werden. Wenn Sie die Sitzungsanmeldeinformationen verwenden, bleibt der Wert in nachfolgenden Rollensitzungen bestehen, um eine andere Rolle anzunehmen. Die Annahme einer Rolle von einer anderen wird als Rollenverkettung bezeichnet.
Diests:SourceIdentity-Schlüssel ist in der Anforderung vorhanden, wenn der Auftraggeber zunächst eine Quellidentität festlegt, während er eine Rolle mit einemAWS STSassume-role CLI-Befehl oderAWS STS AssumeRoleAPI-Operation. Der Schlüssel aws:SourceIdentity ist in der Anforderung für alle Aktionen vorhanden, die mit einer Rollensitzung durchgeführt werden, für die eine Quellidentität festgelegt wurde.
Die folgende Rollen-Vertrauensrichtlinie für CriticalRole im Konto 111122223333 enthält eine Bedingung für aws:SourceIdentity, die verhindert, dass ein Auftraggeber ohne eine Quellidentität, die auf Saanvi oder Diego eingestellt ist, die Rolle übernehmen kann.
Weitere Informationen zur Verwendung von Quellidentitätsinformationen finden Sie unter Überwachen und Steuern von Aktionen mit übernommenen Rollen.
ec2:RoleDelivery
Verwenden Sie diesen Schlüssel, um die Version des Instance-Metadaten-Service in der signierten Anfrage mit den Anmeldeinformationen für die IAM-Rolle für Amazon EC2 zu vergleichen. Der Instance-Metadaten-Service unterscheidet zwischen IMDSv1- und IMDSv2-Anforderungen, je nachdem, ob bei einer bestimmten Anforderung der PUT- oder GET-Header (die IMDSv2-spezifisch sind) vorhanden ist.
-
Verfügbarkeit – Dieser Schlüssel wird in den Anforderungskontext aufgenommen, wenn die Rollensitzung von einer Amazon-EC2-Instance erstellt wird.
-
Datentyp – Numerisch
-
Werttyp - Einzelwertig
-
Beispielwerte – 1.0, 2.0
Sie können den Instance Metadata Service (IMDS) auf jeder Instance so konfigurieren, dass lokaler Code oder Benutzer IMDSv2 verwenden müssen. Wenn Sie angeben, dass IMDSv2 verwendet werden muss, funktioniert IMDSv1 nicht mehr.
-
Instance-Metadaten-Service Version 1 (IMDSv1) – Ein Anfrage/Antwort-Verfahren
-
Instance-Metadatenservice Version 2 (IMDSv2) – Ein sitzungsorientiertes Verfahren
Informationen zum Konfigurieren Ihrer Instance für die Verwendung von IMDSv2 finden Sie unter Konfigurieren der Instance-Metadaten-Optionen.
Im folgenden Beispiel wird der Zugriff verweigert, wenn der ec2:RoleDelivery-Wert im Anforderungskontext 1,0 (IMDSv1) lautet. Diese Richtlinienanweisung kann allgemein angewendet werden, da sie keine Auswirkungen hat, wenn die Anfrage nicht mit Amazon-EC2-Rollen-Anmeldeinformationen signiert ist.
Weitere Informationen finden Sie unter Beispielrichtlinien für die Arbeit mit Instance-Metadaten.
ec2:SourceInstanceArn
Verwenden Sie diesen Schlüssel, um den ARN der Instance zu vergleichen, aus der die Sitzung der Rolle generiert wurde.
-
Verfügbarkeit – Dieser Schlüssel wird in den Anforderungskontext aufgenommen, wenn die Rollensitzung von einer Amazon-EC2-Instance erstellt wird.
-
Datentyp – ARN
-
Werttyp - Einzelwertig
-
Beispielwert – arn:aws::ec2:us-west-2:111111111111:instance/instance-id
Richtlinienbeispiele finden Sie unter Erlauben einer bestimmten Instance, Ressourcen in anderen AWS-Services anzuzeigen.
glue:RoleAssumedBy
Der AWS Glue-Service legt diesen Bedingungsschlüssel für jede AWS-API-Anfrage fest, bei der AWS Glue eine Anfrage mithilfe einer Servicerolle im Namen des Kunden trifft (nicht durch einen Auftrag oder einen Entwickler-Endpunkt, sondern direkt durch den AWS Glue-Service). Verwenden Sie diesen Schlüssel, um zu überprüfen, ob eine AWS-Ressource über den AWS Glue-Service aufgerufen wurde.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext enthalten, wenn AWS Glue eine Anfrage über eine Servicerolle im Auftrag des Kunden stellt.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert – Dieser Schlüssel ist immer auf
glue.amazonaws.comfestgelegt.
Das folgende Beispiel fügt eine Bedingung hinzu, die es dem AWS Glue-Service ermöglicht, ein Objekt aus einem Amazon-S3-Bucket abzurufen.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }
glue:CredentialIssuingService
Der AWS Glue-Service legt diesen Schlüssel für jede AWS-API-Anfrage mithilfe einer Servicerolle fest, die von einem Auftrags- oder Entwicklerendpunkt stammt. Verwenden Sie diesen Schlüssel, um zu überprüfen, ob eine AWS-Ressource von einem AWS Glue-Auftrags- oder Entwicklerendpunkt aus aufgerufen wurde.
-
Verfügbarkeit – Dieser Schlüssel ist im Anfragekontext enthalten, wenn AWS Glue eine Anfrage stellt, die von einem Auftrag oder einem Entwicklerendpunkt stammt.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert – Dieser Schlüssel ist immer auf
glue.amazonaws.comfestgelegt.
Im folgenden Beispiel wird eine Bedingung hinzugefügt, die an eine IAM-Rolle angefügt wird, die von einem AWS Glue-Auftrag verwendet wird. Dies stellt sicher, dass bestimmte Aktionen erlaubt/verweigert werden, basierend darauf, ob die Rollensitzung für eine AWS Glue-Auftragsausführungsumgebung verwendet wird.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }
lambda:SourceFunctionArn
Verwenden Sie diesen Schlüssel, um die ARN der Lambda-Funktion zu identifizieren, an die die IAM-Rollen-Anmeldeinformationen übermittelt wurden. Der Lambda-Service legt diesen Schlüssel für jede AWS-API-Anfrage fest, die aus der Ausführungsumgebung Ihrer Funktion stammt. Verwenden Sie diesen Schlüssel, um zu überprüfen, ob ein Aufruf einer AWS-Ressource aus dem Code einer bestimmten Lambda-Funktion stammt. Lambda legt diesen Schlüssel auch für einige Anfragen fest, die von außerhalb der Ausführungsumgebung stammen, z. B. das Schreiben von Protokollen in CloudWatch und das Senden von Nachverfolgungen an X-Ray.
-
Verfügbarkeit – Dieser Schlüssel ist in den Anfrageskontext enthalten, wenn der Lambda-Funktionscode aufgerufen wird.
-
Datentyp – ARN
-
Werttyp - Einzelwertig
-
Beispielwert – arn:aws:lambda:us-east-1:123456789012:function:TestFunction
Das folgende Beispiel ermöglicht einer bestimmten Lambda-Funktion den s3:PutObject-Zugriff auf den angegebenen Bucket.
Weitere Informationen finden Sie unter Arbeiten mit Anmeldeinformationen für die Lambda-Ausführungsumgebung im Entwicklerhandbuch zu AWS Lambda.
ssm:SourceInstanceArn
Verwenden Sie diesen Schlüssel, um den ARN der von AWS Systems Manager verwalteten Instance zu identifizieren, an den die Anmeldeinformationen der IAM-Rolle übermittelt wurden. Dieser Bedingungsschlüssel ist nicht vorhanden, wenn die Anfrage von einer verwalteten Instance mit einer IAM-Rolle stammt, die einem Amazon-EC2-Instance-Profil zugeordnet ist.
-
Verfügbarkeit – Dieser Schlüssel ist in der Anfrage enthalten, wenn Anmeldeinformationen für eine Rolle an eine von AWS Systems Manager verwaltete Instance übermittelt werden.
-
Datentyp – ARN
-
Werttyp - Einzelwertig
-
Beispielwert – arn:aws::ec2:us-west-2:111111111111:instance/instance-id
identitystore:UserId
Verwenden Sie diesen Schlüssel, um die Mitarbeiteridentität des IAM Identity Center in der signierten Anfrage mit der in der Richtlinie angegebenen Identität zu vergleichen.
-
Verfügbarkeit – Dieser Schlüssel ist enthalten, wenn der Anfragesteller ein Benutzer des IAM Identity Center ist.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert – 94482488-3041-7026-18f3-be45837cd0e4
Sie finden die Benutzer-ID eines Benutzers im IAM Identity Center, indem Sie eine Anfrage an die GetUserId-API mithilfe der AWS CLI-, AWS-API oder des AWS-SDK stellen.
Eigenschaften des Netzwerks
Verwenden Sie die folgenden Bedingungsschlüssel, um Details über das Netzwerk, von dem die Anfrage stammt oder über das sie weitergeleitet wurde, mit den Netzwerkeigenschaften zu vergleichen, die Sie in der Richtlinie angeben.
aws:SourceIp
Verwenden Sie diesen Schlüssel, um die IP-Adresse des Anforderers mit der IP-Adresse zu vergleichen, die Sie in der Richtlinie angeben. Der aws:SourceIp-Bedingungsschlüssel kann nur für öffentliche IP-Adressbereiche verwendet werden.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext enthalten, es sei denn, der Anforderer verwendet einen VPC-Endpunkt für die Anforderung.
-
Datentyp – IP-Adresse
-
Werttyp - Einzelwertig
Der aws:SourceIp-Bedingungsschlüssel kann in einer Richtlinie verwendet werden, um Auftraggeber zu erlauben, Anforderungen nur innerhalb eines angegebenen IP-Bereichs zu stellen.
Anmerkung
aws:SourceIp unterstützt IPv4- und IPv6-IP-Adressen oder einen Bereich von IP-Adressen. Eine Liste der AWS-Services, die IPv6 unterstützen, finden Sie unter AWS-Services, die IPv6 unterstützen im Amazon-VPC-Benutzerhandbuch.
Sie können beispielsweise die folgende identitätsbasierte Richtlinie an eine IAM-Rolle anfügen. Mit dieser Richtlinie kann der Benutzer Objekte in den Amazon-S3-Bucket amzn-s3-demo-bucket3 einfügen, wenn er den Aufruf über den angegebenen IPv4-Adressbereich tätigt. Diese Richtlinie erlaubt auch einen AWS-Service, der Forward Access Sessions (FAS) verwendet, um diesen Vorgang in Ihrem Namen auszuführen.
Wenn Sie den Zugriff von Netzwerken einschränken müssen, die sowohl IPv4- als auch IPv6-Adressierung unterstützen, können Sie die IPv4- und IPv6-Adresse oder IP-Adressbereiche in die IAM-Richtlinienbedingung einschließen. Mit der folgenden identitätsbasierten Richtlinie kann der Benutzer Objekte in den Amazon-S3-Bucket amzn-s3-demo-bucket3 einfügen, wenn er den Aufruf von einem der angegebenen IPv4- oder IPv6-Adressbereiche aus tätigt. Bevor Sie IPv6-Adressbereiche in Ihre IAM-Richtlinie aufnehmen, stellen Sie sicher, dass der AWS-Service, mit dem Sie arbeiten, IPv6 unterstützt. Eine Liste der AWS-Services, die IPv6 unterstützen, finden Sie unter AWS-Services, die IPv6 unterstützen im Amazon-VPC-Benutzerhandbuch.
Wenn die Anforderung von einem Host stammt, der einen Amazon VPC-Endpunkt verwendet, ist der Schlüssel aws:SourceIp nicht verfügbar. Sie sollten stattdessen einen VPC-spezifischen Schlüssel wie aws:VpcSourceIp verwenden. Weitere Informationen zur Verwendung von VPC-Endpunkten finden Sie unter Identitäts- und Zugriffsmanagement für VPC-Endpunkte und VPC-Endpunkt-Services im AWS PrivateLink-Leitfaden.
Anmerkung
Wenn AWS-Services in Ihrem Namen Aufrufe an andere AWS-Services tätigen (Service-to-Service-Anrufe), wird bestimmter netzwerkspezifischer Autorisierungskontext entfernt. Wenn Ihre Richtlinie diesen Bedingungsschlüssel mit Deny-Anweisungen verwendet, könnten AWS-Service-Prinzipale unbeabsichtigt blockiert werden. Um die korrekte Funktion von AWS-Services unter Einhaltung Ihrer Sicherheitsanforderungen zu gewährleisten, schließen Sie Service-Prinzipale von Ihren Deny-Anweisungen aus, indem Sie den aws:PrincipalIsAWSService-Bedingungsschlüssel mit dem Wert false hinzufügen.
aws:SourceVpc
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Anfrage durch die VPC läuft, an die der VPC-Endpunkt angefügt ist. In einer Richtlinie können Sie diesen Schlüssel verwenden, um den Zugriff auf nur eine bestimmte VPC zu erlauben. Weitere Informationen finden Sie unter Beschränkung des Zugriffs auf eine bestimmte VPC im Benutzerhandbuch für Amazon Simple Storage Service.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anforderer einen VPC-Endpunkt für die Anforderung verwendet.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
In einer Richtlinie können Sie diesen Schlüssel verwenden, um den Zugriff auf eine bestimmte VPC zuzulassen oder zu beschränken.
Sie können beispielsweise die folgende identitätsbasierte Richtlinie an eine IAM-Rolle anfügen, um PutObject den Zugriff auf den Amazon-S3-Bucket amzn-s3-demo-bucket3 zu verweigern, es sei denn, die Anfrage wird von der angegebenen VPC-ID oder von AWS-Services gestellt, die Forward Access Sessions (FAS) verwenden, um Anfrage im Namen der Rolle zu stellen. Im Gegensatz zu aws:SourceIp müssen Sie aws:ViaAWSService oder aws:CalledVia verwenden, um FAS-Anfragen zuzulassen, da die Quell-VPC der ursprünglichen Anfrage nicht beibehalten wird.
Anmerkung
Diese Richtlinie lässt keine Aktionen zu. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die bestimmte Aktionen zulassen.
Ein Beispiel für die Anwendung dieses Schlüssels in einer ressourcenbasierten Richtlinie finden Sie unter Einschränken des Zugriffs auf eine bestimmte VPC im Benutzerhandbuch zu Amazon Simple Storage Service.
aws:SourceVpce
Verwenden Sie diesen Schlüssel, um die VPC-Endpunkt-ID der Anforderung mit der Endpunkt-ID zu vergleichen, die Sie in der Richtlinie angeben.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anforderer einen VPC-Endpunkt für die Anforderung verwendet.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
In einer Richtlinie können Sie diesen Schlüssel verwenden, um den Zugriff auf einen bestimmten VPC-Endpunkt zu beschränken. Weitere Informationen finden Sie unter Beschränkung des Zugriffs auf eine bestimmte VPC im Benutzerhandbuch für Amazon Simple Storage Service. Ähnlich wie bei der Verwendung von aws:SourceVpc müssen Sie aws:ViaAWSService oder aws:CalledVia verwenden, um Anfragen von AWS-Services mithilfe von Forward Access Sessions (FAS) zuzulassen. Dies liegt daran, dass der Quell-VPC-Endpunkt der ursprünglichen Anfrage nicht beibehalten wird.
aws:VpceAccount
Verwenden Sie diesen Schlüssel, um die AWS-Konto-ID, der der VPC-Endpunkt gehört, über den die Anfrage gestellt wurde, mit der Konto-ID zu vergleichen, die Sie in der Richtlinie angeben. Dieser Bedingungsschlüssel hilft Ihnen bei der Einrichtung von Netzwerkperimeterkontrollen, indem er sicherstellt, dass Anfragen über VPC-Endpunkte erfolgen, die bestimmten Konten zugeordnet sind.
-
Verfügbarkeit – Dieser Schlüssel ist im Anfragekontext enthalten, wenn eine Anfrage über einen VPC-Endpunkt erfolgt. Der Schlüssel ist nicht für Anfragen enthalten, die über öffentliche Service-Endpunkte erfolgen.
Die folgenden Services unterstützen diesen Schlüssel:
-
AWS App Runner (Präfix:
apprunner) -
AWS Application Discovery Service (Präfix:
discovery) -
Amazon Athena (Präfix:
athena) -
AWS Cloud Map (Präfix:
servicediscovery) -
Amazon CloudWatch Application Insights (Präfix:
applicationinsights) -
AWS CloudFormation (Präfix:
cloudformation) -
Amazon Comprehend Medical (Präfix:
comprehendmedical) -
AWS Compute Optimizer (Präfix:
compute-optimizer) -
AWS DataSync (Präfix:
datasync) -
Amazon Elastic Block Store (Präfix:
ebs) -
Amazon EventBridge Scheduler (Präfix:
scheduler) -
Amazon Data Firehose (Präfix:
firehose) -
AWS HealthImaging (Präfix:
medical-imaging) -
AWS HealthLake (Präfix:
healthlake) -
AWS HealthOmics (Präfix:
omics) -
AWS Identity and Access Management (außer für die
iam:PassRole-Aktion) (Präfix:iam) -
AWS IoT FleetWise (Präfix:
iotfleetwise) -
AWS IoT Wireless (Präfix:
iotwireless) -
AWS Key Management Service (Präfix:
kms) -
AWS Lambda (Präfix:
lambda) -
AWS Payment Cryptography (Präfix:
payment-cryptography) -
Amazon Polly (Präfix:
polly) -
AWS Private Certificate Authority (Präfix:
acm-pca) -
AWS-Papierkorb (Präfix:
rbin) -
Amazon Rekognition (Präfix:
rekognition) -
Service Quotas (Präfix:
servicequotas) -
Amazon Simple Storage Service (Präfix:
s3) -
AWS Storage Gateway (Präfix:
storagegateway) -
AWS Systems Manager Incident Manager-Kontakte (Präfix:
ssm-contacts) -
Amazon Textract (Präfix:
textract) -
Amazon Transcribe (Präfix:
transcribe) -
AWS Transfer Family (Präfix:
transfer)
-
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert –
123456789012
Sie können diesen Bedingungsschlüssel verwenden, wenn Sie den Zugriff auf Ressourcen einschränken möchten, sodass Anfragen über VPC-Endpunkte erfolgen müssen, die Ihrem Konto gehören. Das folgende Beispiel für eine Bucket-Richtlinie für Amazon S3 ermöglicht den Zugriff, wenn die Anfrage über einen VPC-Endpunkt erfolgt, der dem angegebenen Konto gehört:
Anmerkung
Dieser Bedingungsschlüssel wird derzeit für eine Reihe von ausgewählten AWS-Services unterstützt. Die Verwendung dieses Schlüssels mit nicht unterstützten Services kann zu unbeabsichtigten Autorisierungsergebnissen führen. Beschränken Sie den Bedingungsschlüssel in Ihren Richtlinien immer auf unterstützte Services.
Einige AWS-Services greifen von ihren Netzwerken aus auf Ihre Ressourcen zu, wenn sie in Ihrem Namen handeln. Wenn Sie solche Services verwenden, müssen Sie das obige Richtlinienbeispiel bearbeiten, damit AWS-Services von außerhalb Ihres Netzwerks auf Ihre Ressourcen zugreifen können. Weitere Informationen zu Zugriffsmustern, die bei der Durchsetzung von Zugriffskontrollen auf der Grundlage des Abfrageursprungs berücksichtigt werden müssen, finden Sie unter Einrichten des Berechtigungs-Integritätsschutzes mithilfe von Datenperimetern.
aws:VpceOrgID
Verwenden Sie diesen Schlüssel, um die Kennung der Organisation in AWS Organizations, der der VPC-Endpunkt gehört, von dem die Anfrage gestellt wurde, mit der Kennung zu vergleichen, die Sie in der Richtlinie angeben. Dieser Bedingungsschlüssel bietet den skalierbarsten Ansatz für Netzwerkperimeterkontrollen, der automatisch alle VPC-Endpunkte einbezieht, die Konten in Ihrer Organisation gehören.
-
Verfügbarkeit – Dieser Schlüssel ist im Anfragekontext enthalten, wenn eine Anfrage über einen VPC-Endpunkt erfolgt und das VPC-Endpunkt-Besitzerkonto Mitglied einer AWS-Organisation ist. Der Schlüssel ist nicht enthalten für Anfragen, die über andere Netzwerkpfade erfolgen oder wenn das VPC-Endpunkt-Besitzerkonto nicht Teil einer Organisation ist.
Die folgenden Services unterstützen diesen Schlüssel:
-
AWS App Runner (Präfix:
apprunner) -
AWS Application Discovery Service (Präfix:
discovery) -
Amazon Athena (Präfix:
athena) -
AWS Cloud Map (Präfix:
servicediscovery) -
Amazon CloudWatch Application Insights (Präfix:
applicationinsights) -
AWS CloudFormation (Präfix:
cloudformation) -
Amazon Comprehend Medical (Präfix:
comprehendmedical) -
AWS Compute Optimizer (Präfix:
compute-optimizer) -
AWS DataSync (Präfix:
datasync) -
Amazon Elastic Block Store (Präfix:
ebs) -
Amazon EventBridge Scheduler (Präfix:
scheduler) -
Amazon Data Firehose (Präfix:
firehose) -
AWS HealthImaging (Präfix:
medical-imaging) -
AWS HealthLake (Präfix:
healthlake) -
AWS HealthOmics (Präfix:
omics) -
AWS Identity and Access Management (außer für die
iam:PassRole-Aktion) (Präfix:iam) -
AWS IoT FleetWise (Präfix:
iotfleetwise) -
AWS IoT Wireless (Präfix:
iotwireless) -
AWS Key Management Service (Präfix:
kms) -
AWS Lambda (Präfix:
lambda) -
AWS Payment Cryptography (Präfix:
payment-cryptography) -
Amazon Polly (Präfix:
polly) -
AWS Private Certificate Authority (Präfix:
acm-pca) -
AWS-Papierkorb (Präfix:
rbin) -
Amazon Rekognition (Präfix:
rekognition) -
Service Quotas (Präfix:
servicequotas) -
Amazon Simple Storage Service (Präfix:
s3) -
AWS Storage Gateway (Präfix:
storagegateway) -
AWS Systems Manager Incident Manager-Kontakte (Präfix:
ssm-contacts) -
Amazon Textract (Präfix:
textract) -
Amazon Transcribe (Präfix:
transcribe) -
AWS Transfer Family (Präfix:
transfer)
-
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwerte –
o-a1b2c3d4e5
Das folgende Beispiel einer Ressourcen-Kontrollrichtlinie verweigert den Zugriff auf Ihre Ressourcen von Amazon S3 und AWS Key Management Service, es sei denn, die Anfrage erfolgt über VPC-Endpunkte, die der angegebenen Organisation gehören, oder über Netzwerke von AWS-Services, die in Ihrem Auftrag handeln. Einige Organisationen müssen diese Richtlinie möglicherweise weiter bearbeiten, um den Anforderungen ihrer Organisation gerecht zu werden, z. B. um externen Partnern Zugriff zu gewähren. Weitere Informationen zu Zugriffsmustern, die bei der Durchsetzung von Zugriffskontrollen auf der Grundlage des Abfrageursprungs berücksichtigt werden müssen, finden Sie unter Einrichten des Berechtigungs-Integritätsschutzes mithilfe von Datenperimetern.
Anmerkung
Dieser Bedingungsschlüssel wird derzeit für eine Reihe von ausgewählten AWS-Services unterstützt. Die Verwendung dieses Schlüssels mit nicht unterstützten Services kann zu unbeabsichtigten Autorisierungsergebnissen führen. Beschränken Sie den Bedingungsschlüssel in Ihren Richtlinien immer auf unterstützte Services.
aws:VpceOrgPaths
Verwenden Sie diesen Schlüssel, um den Pfad von AWS Organizations des VPC-Endpunkts, von dem die Anfrage gestellt wurde, mit dem Pfad zu vergleichen, den Sie in der Richtlinie angeben. Mit diesem Bedingungsschlüssel können Sie Netzwerkperimeterkontrollen auf der Ebene der Organisationseinheit (OU) implementieren, die automatisch mit Ihrer VPC-Endpunktnutzung skalieren, wenn Sie neue Endpunkte innerhalb der angegebenen OUs hinzufügen.
-
Verfügbarkeit – Dieser Schlüssel ist im Anfragekontext enthalten, wenn eine Anfrage über einen VPC-Endpunkt erfolgt und das VPC-Endpunkt-Besitzerkonto Mitglied einer Organisation ist. Der Schlüssel ist nicht enthalten für Anfragen, die über andere Netzwerkpfade erfolgen oder wenn das VPC-Endpunkt-Besitzerkonto nicht Teil einer Organisation ist.
Die folgenden Services unterstützen diesen Schlüssel:
-
AWS App Runner (Präfix:
apprunner) -
AWS Application Discovery Service (Präfix:
discovery) -
Amazon Athena (Präfix:
athena) -
AWS Cloud Map (Präfix:
servicediscovery) -
Amazon CloudWatch Application Insights (Präfix:
applicationinsights) -
AWS CloudFormation (Präfix:
cloudformation) -
Amazon Comprehend Medical (Präfix:
comprehendmedical) -
AWS Compute Optimizer (Präfix:
compute-optimizer) -
AWS DataSync (Präfix:
datasync) -
Amazon Elastic Block Store (Präfix:
ebs) -
Amazon EventBridge Scheduler (Präfix:
scheduler) -
Amazon Data Firehose (Präfix:
firehose) -
AWS HealthImaging (Präfix:
medical-imaging) -
AWS HealthLake (Präfix:
healthlake) -
AWS HealthOmics (Präfix:
omics) -
AWS Identity and Access Management (außer für die
iam:PassRole-Aktion) (Präfix:iam) -
AWS IoT FleetWise (Präfix:
iotfleetwise) -
AWS IoT Wireless (Präfix:
iotwireless) -
AWS Key Management Service (Präfix:
kms) -
AWS Lambda (Präfix:
lambda) -
AWS Payment Cryptography (Präfix:
payment-cryptography) -
Amazon Polly (Präfix:
polly) -
AWS Private Certificate Authority (Präfix:
acm-pca) -
AWS-Papierkorb (Präfix:
rbin) -
Amazon Rekognition (Präfix:
rekognition) -
Service Quotas (Präfix:
servicequotas) -
Amazon Simple Storage Service (Präfix:
s3) -
AWS Storage Gateway (Präfix:
storagegateway) -
AWS Systems Manager Incident Manager-Kontakte (Präfix:
ssm-contacts) -
Amazon Textract (Präfix:
textract) -
Amazon Transcribe (Präfix:
transcribe) -
AWS Transfer Family (Präfix:
transfer)
-
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
-
Beispielwerte –
o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/
Da aws:VpceOrgPaths ein mehrwertiger Bedingungsschlüssel ist, müssen Sie für diesen Schlüssel die Set-Operatoren ForAnyValue oder ForAllValues mit String-Bedingungsoperatoren verwenden. Das folgende Beispiel für eine Bucket-Richtlinie für Amazon S3 ermöglicht den Zugriff nur dann, wenn Anfragen über VPC-Endpunkte erfolgen, die Konten in bestimmten Organisationseinheiten gehören:
Anmerkung
Dieser Bedingungsschlüssel wird derzeit für eine Reihe von ausgewählten AWS-Services unterstützt. Die Verwendung dieses Schlüssels mit nicht unterstützten Services kann zu unbeabsichtigten Autorisierungsergebnissen führen. Beschränken Sie den Bedingungsschlüssel in Ihren Richtlinien immer auf unterstützte Services.
Einige AWS-Services greifen von ihren Netzwerken aus auf Ihre Ressourcen zu, wenn sie in Ihrem Namen handeln. Wenn Sie solche Services verwenden, müssen Sie das obige Richtlinienbeispiel bearbeiten, damit AWS-Services von außerhalb Ihres Netzwerks auf Ihre Ressourcen zugreifen können. Weitere Informationen zu Zugriffsmustern, die bei der Durchsetzung von Zugriffskontrollen auf der Grundlage des Abfrageursprungs berücksichtigt werden müssen, finden Sie unter Einrichten des Berechtigungs-Integritätsschutzes mithilfe von Datenperimetern.
aws:VpcSourceIp
Verwenden Sie diesen Schlüssel, um die IP-Adresse, von der eine Anforderung stammt, mit der IP-Adresse zu vergleichen, die Sie in der Richtlinie angeben. In einer Richtlinie stimmt der Schlüssel nur dann überein, wenn die Anforderung von der angegebenen IP-Adresse stammt und über einen VPC-Endpunkt geleitet wird.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn die Anforderung über einen VPC-Endpunkt erfolgt.
-
Datentyp – IP-Adresse
-
Werttyp - Einzelwertig
Weitere Informationen finden Sie unter Steuern des Zugriffs auf VPC-Endpunkte mithilfe von Endpunktrichtlinien im Amazon-VPC-Benutzerhandbuch. Ähnlich wie bei der Verwendung von aws:SourceVpc müssen Sie aws:ViaAWSService oder aws:CalledVia verwenden, um Anfragen von AWS-Services mithilfe von Forward Access Sessions (FAS) zuzulassen. Dies liegt daran, dass die Quell-IP der ursprünglichen Anfrage über einen VPC-Endpunkt in FAS-Anfragen nicht beibehalten wird.
Anmerkung
aws:VpcSourceIp unterstützt IPv4- und IPv6-IP-Adressen oder einen Bereich von IP-Adressen. Eine Liste der AWS-Services, die IPv6 unterstützen, finden Sie unter AWS-Services, die IPv6 unterstützen im Amazon-VPC-Benutzerhandbuch.
Der Bedingungsschlüssel aws:VpcSourceIp sollte immer zusammen mit dem Bedingungsschlüssel aws:SourceVpc oder aws:SourceVpce verwendet werden. Andernfalls ist es möglich, dass API-Aufrufe von einer unerwarteten VPC, die dieselbe oder eine überlappende IP-CIDR verwendet, durch eine Richtlinie zugelassen werden. Dies kann passieren, weil die IP-CIDRs der beiden nicht miteinander verbundenen VPCs gleich sein oder sich überschneiden können. Stattdessen sollten in der Richtlinie VPC-IDs oder VPC-Endpunkt-IDs verwendet werden, da diese über global eindeutige Kennungen verfügen. Diese eindeutigen Kennungen stellen sicher, dass keine unerwarteten Ergebnisse auftreten.
Anmerkung
Wenn AWS-Services in Ihrem Namen Aufrufe an andere AWS-Services tätigen (Service-to-Service-Anrufe), wird bestimmter netzwerkspezifischer Autorisierungskontext entfernt. Wenn Ihre Richtlinie diesen Bedingungsschlüssel mit Deny-Anweisungen verwendet, könnten AWS-Service-Prinzipale unbeabsichtigt blockiert werden. Um die korrekte Funktion von AWS-Services unter Einhaltung Ihrer Sicherheitsanforderungen zu gewährleisten, schließen Sie Service-Prinzipale von Ihren Deny-Anweisungen aus, indem Sie den aws:PrincipalIsAWSService-Bedingungsschlüssel mit dem Wert false hinzufügen.
Eigenschaften der Ressource
Verwenden Sie die folgenden Bedingungsschlüssel, um Details über die Ressource, die das Ziel der Anfrage ist, mit den Ressourceneigenschaften zu vergleichen, die Sie in der Richtlinie angeben.
aws:ResourceAccount
Verwenden Sie diesen Schlüssel, um die AWS-Konto-ID des angeforderten Ressourcenbesitzers mit dem Ressourcenkonto in der Richtlinie zu vergleichen. Sie können dann den Zugriff auf diese Ressource basierend auf dem Konto, dem die Ressource gehört, erlauben oder verweigern.
-
Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext für die meisten Service-Aktionen enthalten. Die folgenden Aktionen unterstützen diesen Schlüssel nicht:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
AWS Directory Service
-
ds:AcceptSharedDirectory
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment -
ec2:AcceptVpcEndpointConnections -
ec2:AcceptVpcPeeringConnection -
ec2:CopySnapshot -
ec2:CreateTransitGatewayPeeringAttachment -
ec2:CreateVpcEndpoint -
ec2:CreateVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents– EventBridgePutEventsruft einen Event Bus in einem anderen Konto auf, wenn dieser Event Bus vor dem 2. März 2023 als kontoübergreifendes EventBridge-Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Gewähren von Berechtigungen zum Zulassen von Ereignissen von anderen AWS-Konten im Amazon-EventBridge-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
Amazon OpenSearch Service
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone -
route53:CreateVPCAssociationAuthorization
-
-
AWS Security Hub CSPM
-
securityhub:AcceptAdministratorInvitation
-
-
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Anmerkung
Weitere Überlegungen zu den oben genannten nicht unterstützten Aktionen finden Sie im Repository Data Perimeter Policy Examples
Dieser Schlüssel entspricht der AWS-Konto-ID für das Konto mit den in der Anforderung ausgewerteten Ressourcen.
Für die meisten Ressourcen in Ihrem Konto, enthält der ARN die Besitzer-Konto-ID für diese Ressource. Für bestimmte Ressourcen, wie Amazon S3-Buckets, enthält der Ressourcen-ARN nicht die Konto-ID. Die folgenden zwei Beispiele zeigen den Unterschied zwischen einer Ressource mit einer Konto-ID im ARN und einem Amazon-S3-ARN ohne Konto-ID:
-
arn:aws:iam::123456789012:role/AWSExampleRole– Erstellung und Eigentümerschaft der IAM-Rolle innerhalb des Kontos 123456789012. -
arn:aws:s3:::amzn-s3-demo-bucket2– Erstellung und Eigentümerchaft des Amazon-S3-Buckets innerhalb des Kontos111122223333, wird nicht im ARN angezeigt.
Verwenden Sie die AWS-Konsole, die API oder die CLI, um alle Ihre Ressourcen und die entsprechenden ARNs zu finden.
Sie schreiben eine Richtlinie, die Berechtigungen für Ressourcen basierend auf der Konto-ID des Ressourcenbesitzers verweigert. Zum Beispiel verweigert die folgende identitätsbasierte Richtlinie den Zugriff auf die angegebene Ressource, wenn die Ressource nicht dem angegebenen Konto angehört.
Um diese Richtlinie zu verwenden, ersetzen Sie den kursiv gedruckten Platzhaltertext durch Ihre eigenen Kontoinformationen.
Wichtig
Diese Richtlinie lässt keine Aktionen zu. Stattdessen wird der Deny-Effekt verwendet, der explizit den Zugriff auf alle in der Anweisung aufgeführten Ressourcen verweigert, die nicht zu dem aufgelisteten Konto gehören. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die den Zugriff auf bestimmte Ressourcen gewähren.
Diese Richtlinie verweigert den Zugriff auf alle Ressourcen für einen bestimmten AWS-Service, sofern das angegebene AWS-Konto nicht Eigentümer der Ressource ist.
Anmerkung
Einige AWS-Services benötigen Zugriff auf AWS-eigene Ressourcen, die in einem anderen AWS-Konto gehostet werden. Wenn Sie aws:ResourceAccount in Ihren identitätsbasierten Richtlinien verwenden, kann sich dies auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewisse AWS-Services, wie AWS Data Exchange und CloudFormation, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihrer AWS-Konten für den normalen Betrieb. Wenn Sie das Element aws:ResourceAccount in Ihren Richtlinien verwenden, fügen Sie zusätzliche Erklärungen hinzu, um Ausnahmen für diese Services zu erstellen. Die Beispielrichtlinie AWS: Verweigern des Zugriffs auf Amazon-S3-Ressourcen außerhalb Ihres Kontos, außer AWS Data Exchange zeigt, wie der Zugriff basierend auf dem Ressourcenkonto verweigert wird, während Ausnahmen für serviceeigene Ressourcen definiert werden.
Verwenden Sie diese Richtlinienbeispiele als Vorlagen für die Erstellung Ihrer eigenen benutzerdefinierten Richtlinien. Weitere Informationen finden Sie in Ihrer Service-Dokumentation.
aws:ResourceOrgPaths
Verwenden Sie diesen Schlüssel, um den Pfad von AWS Organizations für die aufgerufene Ressource mit dem Pfad in der Richtlinie zu vergleichen. In einer Richtlinie stellt dieser Bedingungsschlüssel sicher, dass die Ressource zu einem Kontomitglied innerhalb des angegebenen Organisationsstamms oder der Organisationseinheiten (OUs) in AWS Organizations gehört. Ein AWS Organizations-Pfad ist eine Textdarstellung der Struktur einer Organizations-Entität. Weitere Informationen zum Verwenden und Verstehen von Pfaden finden Sie unter . Der AWS Organizations-Entitätspfad
-
Verfügbarkeit – Dieser Schlüssel wird nur dann in den Anforderungskontext aufgenommen, wenn das Konto, dem die Ressource gehört, Mitglied einer Organisation ist. Dieser globale Bedingungsschlüssel unterstützt die folgenden Aktionen nicht:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
AWS Directory Service
-
ds:AcceptSharedDirectory
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment -
ec2:AcceptVpcEndpointConnections -
ec2:AcceptVpcPeeringConnection -
ec2:CopySnapshot -
ec2:CreateTransitGatewayPeeringAttachment -
ec2:CreateVpcEndpoint -
ec2:CreateVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents– EventBridgePutEventsruft einen Event Bus in einem anderen Konto auf, wenn dieser Event Bus vor dem 2. März 2023 als kontoübergreifendes EventBridge-Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Gewähren von Berechtigungen zum Zulassen von Ereignissen von anderen AWS-Konten im Amazon-EventBridge-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
Amazon OpenSearch Service
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone -
route53:CreateVPCAssociationAuthorization
-
-
AWS Security Hub CSPM
-
securityhub:AcceptAdministratorInvitation
-
-
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Anmerkung
Weitere Überlegungen zu den oben genannten nicht unterstützten Aktionen finden Sie im Repository Data Perimeter Policy Examples
aws:ResourceOrgPaths ist ein mehrwertiger Bedingungsschlüssel. Mehrwertige Bedingungsschlüssel können im Anforderungskontext mehrere Werte haben. Sie müssen die Set-Operatoren ForAnyValue oder ForAllValues zusammen mit String-Bedingungsoperatoren für diesen Schlüssel verwenden. Weitere Hinweise zu mehrwertigen Bedingungsschlüsseln finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
Zum Beispiel gibt die folgende Bedingung True für Ressourcen zurück, die zur Organisation o-a1b2c3d4e5 gehören. Wenn Sie einen Platzhalter einschließen, müssen Sie den Bedingungsoperator StringLike verwenden.
"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }
Die folgende Bedingung gibt True für Ressourcen mit der OU-ID ou-ab12-11111111 zurück. Es werden Ressourcen abgestimmt, die Konten gehören, die der OU ou-ab12-11111111 oder einer der untergeordneten OUs zugeordnet sind.
"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}
Die folgende Bedingung gibt True für Ressourcen zurück, die sich im Besitz von Konten befinden, die direkt der OU-ID ou-ab12-22222222 angefügt sind, aber nicht ihren untergeordneten OUs. Das folgende Beispiel verwendet den Bedingungsoperator StringEquals, um die exakte Übereinstimmungsanforderung für die OU-ID und nicht eine Platzhalter-Übereinstimmung anzugeben.
"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Anmerkung
Einige AWS-Services benötigen Zugriff auf AWS-eigene Ressourcen, die in einem anderen AWS-Konto gehostet werden. Wenn Sie aws:ResourceOrgPaths in Ihren identitätsbasierten Richtlinien verwenden, kann sich dies auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewisse AWS-Services, wie AWS Data Exchange und CloudFormation, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihrer AWS-Konten für den normalen Betrieb. Wenn Sie den Schlüssel aws:ResourceOrgPaths in Ihren Richtlinien verwenden, fügen Sie zusätzliche Erklärungen hinzu, um Ausnahmen für diese Services zu erstellen. Die Beispielrichtlinie AWS: Verweigern des Zugriffs auf Amazon-S3-Ressourcen außerhalb Ihres Kontos, außer AWS Data Exchange zeigt, wie der Zugriff basierend auf dem Ressourcenkonto verweigert wird, während Ausnahmen für serviceeigene Ressourcen definiert werden. Sie können eine ähnliche Richtlinie erstellen, um den Zugriff auf Ressourcen innerhalb Ihrer Organisationseinheit (OU) mithilfe des aws:ResourceOrgPaths-Schlüssels zu beschränken und gleichzeitig serviceeigene Ressourcen zu berücksichtigen.
Verwenden Sie diese Richtlinienbeispiele als Vorlagen für die Erstellung Ihrer eigenen benutzerdefinierten Richtlinien. Weitere Informationen finden Sie in Ihrer Service-Dokumentation.
aws:ResourceOrgID
Verwenden Sie diesen Schlüssel, um die Kennung der Organisation in AWS Organizations, zu der die angeforderte Ressource gehört, mit der in der Richtlinie angegebenen Kennung zu vergleichen.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn das Konto, das Eigentümer der Ressource ist, Mitglied einer Organisation ist. Dieser globale Bedingungsschlüssel unterstützt die folgenden Aktionen nicht:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
AWS Directory Service
-
ds:AcceptSharedDirectory
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment -
ec2:AcceptVpcEndpointConnections -
ec2:AcceptVpcPeeringConnection -
ec2:CopySnapshot -
ec2:CreateTransitGatewayPeeringAttachment -
ec2:CreateVpcEndpoint -
ec2:CreateVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents– EventBridgePutEventsruft einen Event Bus in einem anderen Konto auf, wenn dieser Event Bus vor dem 2. März 2023 als kontoübergreifendes EventBridge-Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Gewähren von Berechtigungen zum Zulassen von Ereignissen von anderen AWS-Konten im Amazon-EventBridge-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
Amazon OpenSearch Service
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone -
route53:CreateVPCAssociationAuthorization
-
-
AWS Security Hub CSPM
-
securityhub:AcceptAdministratorInvitation
-
-
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Anmerkung
Weitere Überlegungen zu den oben genannten nicht unterstützten Aktionen finden Sie im Repository Data Perimeter Policy Examples
Dieser globale Schlüssel gibt die ID der Ressourcenorganisation für eine bestimmte Anforderung zurück. Es erlaubt Ihnen, Regeln zu erstellen, die für alle Ressourcen in einer Organisation gelten, die im Resource-Element einer identitätsbasierten Richtlinie angegeben sind. Sie können die Organisations-ID im Bedingungselement angeben. Wenn Sie Konten hinzufügen und entfernen, schließen Richtlinien, die den aws:ResourceOrgID-Schlüssel enthalten, automatisch die richtigen Konten ein und Sie müssen sie nicht manuell aktualisieren.
Zum Beispiel verhindert die folgende Richtlinie, dass der Prinzipal der policy-genius-dev-Ressource Objekte hinzufügt, es sei denn, die Amazon-S3-Ressource gehört derselben Organisation an wie der Prinzipal, der die Anforderung stellt.
Wichtig
Diese Richtlinie lässt keine Aktionen zu. Stattdessen wird der Deny-Effekt verwendet, der explizit den Zugriff auf alle in der Anweisung aufgeführten Ressourcen verweigert, die nicht zu dem aufgelisteten Konto gehören. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die den Zugriff auf bestimmte Ressourcen gewähren.
Anmerkung
Einige AWS-Services benötigen Zugriff auf AWS-eigene Ressourcen, die in einem anderen AWS-Konto gehostet werden. Wenn Sie aws:ResourceOrgID in Ihren identitätsbasierten Richtlinien verwenden, kann sich dies auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewisse AWS-Services, wie AWS Data Exchange und CloudFormation, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihrer AWS-Konten für den normalen Betrieb. Wenn Sie den Schlüssel aws:ResourceOrgID in Ihren Richtlinien verwenden, fügen Sie zusätzliche Erklärungen hinzu, um Ausnahmen für diese Services zu erstellen. Die Beispielrichtlinie AWS: Verweigern des Zugriffs auf Amazon-S3-Ressourcen außerhalb Ihres Kontos, außer AWS Data Exchange zeigt, wie der Zugriff basierend auf dem Ressourcenkonto verweigert wird, während Ausnahmen für serviceeigene Ressourcen definiert werden. Sie können eine ähnliche Richtlinie erstellen, um den Zugriff auf Ressourcen innerhalb Ihrer Organisation mithilfe des aws:ResourceOrgID-Schlüssels zu beschränken und gleichzeitig serviceeigene Ressourcen zu berücksichtigen.
Verwenden Sie diese Richtlinienbeispiele als Vorlagen für die Erstellung Ihrer eigenen benutzerdefinierten Richtlinien. Weitere Informationen finden Sie in Ihrer Service-Dokumentation.
Im folgenden Video erfahren Sie mehr darüber, wie Sie den Bedingungsschlüssel aws:ResourceOrgID in einer Richtlinie verwenden können.
aws:ResourceTag/tag-key
Verwenden Sie diesen Schlüssel, um das Tag-Schlüssel-Wert-Paar, das Sie in der Richtlinie angeben, mit dem Schlüssel-Wert-Paar zu vergleichen, das der Ressource zugeordnet ist. Beispiel: Sie können verlangen, dass der Zugriff auf eine Ressource nur gewährt wird, wenn die Ressource über den angefügten Tag-Schlüssel "Dept" mit dem Wert "Marketing" verfügt. Weitere Informationen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen.
-
Verfügbarkeit – Dieser Schlüssel wird in den Anforderungskontext aufgenommen, wenn die angeforderte Ressource bereits angefügte Tags hat oder in Anforderungen, die eine Ressource mit einem angefügten Tag erstellen. Dieser Schlüssel wird nur für Ressourcen zurückgegeben, die Berechtigung auf Basis von Tags unterstützen. Es gibt einen Kontextschlüssel für jedes Tag-Schlüssel-Wert-Paar.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Dieser Kontextschlüssel liegt im Format "aws:ResourceTag/ vor. Dabei bezeichnen tag-key":"tag-value"tag-key und tag-value ein Paar aus Tag-Schlüssel und -Wert. Bei Tag-Schlüsseln wird die Groß- und Kleinschreibung nicht beachtet. Dies bedeutet Folgendes: Wenn Sie "aws:ResourceTag/TagKey1": "Value1" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Ressourcen-Tag-Schlüssel mit dem Namen TagKey1 oder tagkey1 überein, aber nicht mit beiden. Bei Werten in diesen Tag-Schlüssel/Wert-Paaren wird die Groß-/Kleinschreibung beachtet. Dies bedeutet Folgendes: Wenn Sie "aws:ResourceTag/TagKey1": "Production" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Ressourcen-Tag-Wert mit dem Namen Production überein, jedoch nicht mit production oder PRODUCTION.
Beispiele für die Verwendung des aws:ResourceTag-Schlüssels zur Steuerung des Zugriffs auf IAM-Ressourcen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen.
Beispiele für die Verwendung des aws:ResourceTag-Schlüssels zur Steuerung des Zugriffs auf andere AWS-Ressourcen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen mithilfe von Tags.
Ein Tutorial zur Verwendung des aws:ResourceTag-Bedingungsschlüssels für attributbasierte Zugriffskontrolle (ABAC) finden Sie unter IAM-Tutorial: Definieren von Berechtigungen für den Zugriff auf AWS-Ressourcen basierend auf Tags.
Eigenschaften der Anfrage
Verwenden Sie die folgenden Bedingungsschlüssel, um Details zur Anfrage selbst und zum Inhalt der Anfrage mit den in der Richtlinie angegebenen Eigenschaften der Anfrage zu vergleichen.
aws:CalledVia
Verwenden Sie diesen Schlüssel, um die Services in der Richtlinie mit den Services zu vergleichen, die im Auftrag des IAM-Auftraggebers (Benutzer oder Rolle) Anforderungen ausgegeben haben. Wenn ein Auftraggeber eine Anforderung an einen AWS-Service ausgibt, kann dieser Service die Anmeldeinformationen des Auftraggebers verwenden, um nachfolgende Anforderungen an andere Services auszugeben. Wenn die Anfrage mithilfe von Forward Access Sessions (FAS) gestellt wird, wird diesem Schlüssel der Wert des Service-Prinzipals zugewiesen. Der Schlüssel aws:CalledVia enthält eine geordnete Liste aller Services in der Kette, die im Auftrag des Auftraggebers Anforderungen ausgegeben haben.
Weitere Informationen finden Sie unter Forward Access Sessions (FAS).
-
Verfügbarkeit – Dieser Schlüssel ist in der Anforderung vorhanden, wenn ein Service, der
aws:CalledViaunterstützt, die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um eine Anforderung an einen anderen Service auszugeben. Dieser Schlüssel ist nicht vorhanden, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt. -
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Um den Bedingungsschlüssel aws:CalledVia in einer Richtlinie verwenden zu können, müssen Sie die Service-Prinzipale zum Zulassen oder Verweigern von AWS-Service-Anfragen festlegen. Sie können zum Beispiel AWS CloudFormation zum Lesen und Schreiben aus einer Amazon DynamoDB-Tabelle verwenden. DynamoDB verwendet dann die Verschlüsselung, die von AWS Key Management Service (AWS KMS) enthalten.
Um den Zugriff zu erlauben oder zu verweigern, wenn irgendein Service unter Verwendung der Anmeldeinformationen des Auftraggebers eine Anforderung ausgibt, verwenden Sie den Bedingungsschlüssel aws:ViaAWSService. Dieser Bedingungsschlüssel unterstützt alle AWS-Services.
Der aws:CalledVia-Schlüssel ist ein mehrwertiger Schlüssel. Sie können die Reihenfolge jedoch nicht mit diesem Schlüssel in einer Bedingung erzwingen. Anhand des obigen Beispiels gibt User 1 (Benutzer 1) eine Anforderung an CloudFormation aus, das DynamoDB aufruft, das wiederum AWS KMS aufruft. Dies sind drei separate Anforderungen. Der letzte Aufruf von AWS KMS wird von Benutzer 1 über CloudFormation und dann DynamoDB ausgeführt.
In diesem Fall enthält der Schlüssel aws:CalledVia im Anforderungskontext cloudformation.amazonaws.com und dynamodb.amazonaws.com (in dieser Reihenfolge). Wenn Ihnen nur wichtig ist, dass der Aufruf über DynamoDB irgendwo in der Kette von Anforderungen erfolgt ist, können Sie diesen Bedingungsschlüssel in Ihrer Richtlinie verwenden.
Die folgende Richtlinie ermöglicht beispielsweise das Verwalten des AWS KMS-Schlüssels mit dem Namen my-example-key, jedoch nur, wenn es sich bei DynamoDB um einen der anfordernden Services handelt. Der Bedingungsoperator ForAnyValue:StringEquals stellt sicher, dass DynamoDB einer der aufrufenden Services ist. Wenn der Auftraggeber AWS KMS direkt aufruft, gibt die Bedingung false zurück, und die Anforderung wird von dieser Richtlinie nicht zugelassen.
Mit den Schlüsseln aws:CalledViaFirst und aws:CalledViaLast können Sie auf Wunsch erzwingen, welcher Service den ersten oder letzten Aufruf in der Kette durchführt. Mit der folgenden Richtlinie können Sie beispielsweise den Schlüssel mit dem Namen my-example-key in AWS KMS verwalten. Diese AWS KMS-Operationen sind nur zulässig, wenn mehrere Anforderungen in die Kette aufgenommen wurden. Die erste Anforderung muss über CloudFormation und die letzte über DynamoDB erfolgen. Wenn andere Services mitten in der Kette Anforderungen ausgeben, ist die Operation trotzdem zulässig.
Die Schlüssel aws:CalledViaFirst und aws:CalledViaLast sind in der Anforderung vorhanden, wenn ein Service die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um einen anderen Service aufzurufen. Sie geben die ersten und letzten Services an, die in der Kette von Anforderungen Aufrufe durchgeführt haben. Nehmen wir beispielsweise an, dass CloudFormation einen anderen Service mit dem Namen X Service aufruft, der DynamoDB aufruft, der wiederum AWS KMS aufruft. Der letzte Aufruf von AWS KMS wird von User 1 via CloudFormation, dann X Service und dann DynamoDB ausgeführt. Es wurde zuerst über CloudFormation und zuletzt über DynamoDB aufgerufen.
aws:CalledViaFirst
Verwenden Sie diesen Schlüssel, um die Services in der Richtlinie mit dem ersten Service zu vergleichen, der im Auftrag des IAM-Auftraggebers (Benutzer oder Rolle) eine Anforderung ausgegeben hat. Weitere Informationen finden Sie unter aws:CalledVia.
-
Verfügbarkeit – Dieser Schlüssel ist in der Anforderung vorhanden, wenn ein Service die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um mindestens eine andere Anforderung an einen anderen Service auszugeben. Dieser Schlüssel ist nicht vorhanden, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
aws:CalledViaLast
Verwenden Sie diesen Schlüssel, um die Services in der Richtlinie mit den letzten Services zu vergleichen, die im Auftrag des IAM-Auftraggebers (Benutzer oder Rolle) eine Anforderung ausgegeben haben. Weitere Informationen finden Sie unter aws:CalledVia.
-
Verfügbarkeit – Dieser Schlüssel ist in der Anforderung vorhanden, wenn ein Service die Anmeldeinformationen eines IAM-Auftraggebers verwendet, um mindestens eine andere Anforderung an einen anderen Service auszugeben. Dieser Schlüssel ist nicht vorhanden, wenn der Service eine Servicerolle oder eine serviceverknüpfte Rolle verwendet, um einen Aufruf im Auftrag des Prinzipals durchzuführen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
aws:ViaAWSService
Mit diesem Schlüssel können Sie überprüfen, ob ein AWS-Service in Ihrem Namen über Forward Access Sessions (FAS) eine Anfrage an einen anderen Service stellt.
Der Anfragekontextschlüssel gibt true zurück, wenn ein Service Sitzungen mit direktem Zugriff verwendet, um eine Anfrage im Namen des ursprünglichen IAM-Prinzipals zu stellen. Der Anforderungskontextschlüssel gibt auch false zurück, wenn der Auftraggeber den Aufruf direkt durchführt.
-
Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp – boolesch
-
Werttyp - Einzelwertig
aws:CurrentTime
Verwenden Sie diesen Schlüssel, um das Datum und die Uhrzeit der Anforderung mit dem Datum und der Uhrzeit zu vergleichen, das bzw. die Sie in der Richtlinie angeben. Informationen zum Anzeigen einer Beispielrichtlinie, die diesen Bedingungsschlüssel verwendet, finden Sie unter AWS: Ermöglicht Zugriff basierend auf Datum und Uhrzeit.
-
-Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp – Datum
-
Werttyp - Einzelwertig
aws:EpochTime
Verwenden Sie diesen Schlüssel, um das Datum und die Uhrzeit der Anforderung in Epochen- oder Unix-Zeit mit dem Wert zu vergleichen, den Sie in der Richtlinie angeben. Dieser Schlüssel akzeptiert auch die Anzahl der Sekunden, die seit dem 1. Januar 1970 verstrichen sind.
aws:referer
Verwenden Sie diesen Schlüssel, um den Referrer, der im Client-Browser auf die Anforderung verwiesen hat, mit dem Referrer zu vergleichen, den Sie in der Richtlinie angeben. Der aws:referer-Anforderungskontextwert wird vom Aufrufer in einem HTTP-Header bereitgestellt. Der Referer-Header ist in einer Webbrowser-Anforderung enthalten, wenn Sie einen Link auf einer Webseite auswählen. Der Referer-Header enthält die URL der Webseite, auf der der Link ausgewählt wurde.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn die Anforderung an die AWS-Ressource durch Verknüpfung von einer Webseiten-URL im Browser aufgerufen wurde. Dieser Schlüssel ist nicht für programmatische Anforderungen enthalten, da er keinen Browserlink verwendet, um auf die AWS-Ressource zuzugreifen.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Sie können beispielsweise direkt über eine URL oder einen direkten API-Aufruf auf ein Amazon S3-Objekt zugreifen. Weitere Informationen finden Sie unter Amazon S3-API-Vorgänge direkt mit einem Webbrowser. Wenn Sie von einer URL, die in einer Webseite existiert, auf ein Amazon S3-Objekt zugreifen, wird die URL der Quellwebseite in verwendet aws:referer. Wenn Sie auf ein Amazon S3-Objekt zugreifen, indem Sie die URL in Ihren Browser eingeben, ist aws:referer nicht vorhanden. Wenn Sie die API direkt aufrufen, ist aws:referer auch nicht vorhanden. Sie können den aws:referer-Bedingungsschlüssel in einer Richtlinie verwenden, um Anforderungen von einem bestimmten Referer zuzulassen, z. B. einen Link auf einer Webseite in der Domain Ihres Unternehmens.
Warnung
Dieser Schlüssel sollte mit Vorsicht verwendet werden. Ein öffentlich bekannter Referer-Header-Wert sollte möglichst nicht eingeschlossen werden. Nicht autorisierte Parteien können mit modifizierten oder benutzerdefinierten Browsern einen beliebigen aws:referer-Wert ihrer Wahl bereitstellen. Daher sollten Sie aws:referer nicht verwenden, um zu verhindern, dass nicht autorisierte Parteien direkte AWS-Anforderungen senden. Die Funktion wird nur bereitgestellt, damit Kunden ihre digitalen, in Amazon S3 gespeicherten Inhalte vor der Referenzierung auf nicht autorisierte Drittanbieter-Websites schützen können.
aws:RequestedRegion
Verwenden Sie diesen Schlüssel, um die AWS-Region, die in der Anforderung aufgerufen wurde, mit der Region zu vergleichen, die Sie in der Richtlinie angeben. Mit diesem globalen Bedingungsschlüssel können Sie steuern, welche Regionen angefordert werden können. Informationen zum Anzeigen der AWS-Regionen für die einzelnen Services finden Sie unter Service-Endpunkte und -Kontingente im Allgemeine Amazon Web Services-Referenz.
-
-Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Globale Services wie IAM haben einen einzelnen Endpunkt. Da sich dieser Endpunkt in der US East (N. Virginia)-Region befindet, werden IAM-Anrufe immer an die us-east-1 Region gesendet. Wenn Sie beispielsweise eine Richtlinie erstellen, die den Zugriff auf alle Services verweigert, wenn die angeforderte Region nicht us-west-2 ist, schlagen die IAM-Aufrufe immer fehl. Ein Beispiel zur Umgehung dieses Problems finden Sie unter NotAction mit Deny.
Anmerkung
Mit dem Bedingungsschlüssel aws:RequestedRegion können Sie steuern, welche Endpunkt eines Services aufgerufen wird, jedoch nicht die Auswirkungen der Operation. Einige Services haben regionsübergreifende Auswirkungen.
Amazon S3 verfügt beispielsweise über API-Operationen, die sich über Regionen erstrecken.
-
Sie können
s3:PutBucketReplicationin einer Region aufrufen (betroffen über den Bedingungsschlüsselaws:RequestedRegion), während andere Regionen basierend auf den Konfigurationseinstellungen der Replikation betroffen sind. -
Sie können
s3:CreateBucketaufrufen, um einen Bucket in einer anderen Region zu erstellen, und mit dems3:LocationConstraint-Bedingungsschlüssel die entsprechenden Regionen steuern.
Sie können diesen Kontextschlüssel verwenden, um den Zugriff auf AWS-Services innerhalb einer bestimmten Gruppe von Regionen zu beschränken. Mit der folgenden Richtlinie wird Benutzern beispielsweise erlaubt, alle Amazon EC2-Instances in der anzuzeigen AWS-Managementkonsole. Sie gestattet den Benutzern aber nur Änderungen an Instances in Irland (eu-west-1), London (eu-west-2) und Paris (eu-west-3).
aws:RequestTag/tag-key
Verwenden Sie diesen Schlüssel, um das Tag-Schlüssel-Wert-Paar, das in der Anforderung übergeben wurde, mit dem Tag-Paar zu vergleichen, das Sie in der Richtlinie angeben. Sie können beispielsweise prüfen, ob die Anforderung den Tag-Schlüssel "Dept" enthält und dieser den Wert "Accounting" hat. Weitere Informationen finden Sie unter Zugriffssteuerung während AWS-Anforderungen.
-
Verfügbarkeit – Dieser Schlüssel ist im Anforderungskontext enthalten, wenn Tag-Schlüssel-Wert-Paare in der Anforderung übergeben werden. Wenn mehrere Tags in der Anforderung übergeben werden, gibt es einen Kontextschlüssel für jedes Tag-Schlüssel-Wert-Paar.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Dieser Kontextschlüssel liegt im Format "aws:RequestTag/ vor. Dabei bezeichnen tag-key":"tag-value"tag-key und tag-value ein Paar aus Tag-Schlüssel und -Wert. Bei Tag-Schlüsseln wird die Groß- und Kleinschreibung nicht beachtet. Dies bedeutet Folgendes: Wenn Sie "aws:RequestTag/TagKey1": "Value1" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Ressourcen-Tag-Schlüssel mit dem Namen TagKey1 oder tagkey1 überein, aber nicht mit beiden. Bei Werten in diesen Tag-Schlüssel/Wert-Paaren wird die Groß-/Kleinschreibung beachtet. Dies bedeutet Folgendes: Wenn Sie "aws:RequestTag/TagKey1": "Production" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Anfrage-Tag-Wert mit dem Namen Production überein, jedoch nicht mit production oder PRODUCTION.
Dieses Beispiel zeigt, dass der Schlüssel zwar einwertig ist, Sie aber dennoch mehrere Schlüssel-Wert-Paare in einer Anforderung verwenden können, wenn die Schlüssel unterschiedlich sind.
aws:TagKeys
Verwenden Sie diesen Schlüssel, um die Tag-Schlüssel in einer Anforderung mit den Schlüsseln zu vergleichen, die Sie in der Richtlinie angeben. Wir empfehlen, dass Sie bei der Verwendung von Richtlinien zur Zugriffskontrolle mithilfe von Tags den aws:TagKeys-Bedingungsschlüssel verwenden, um festzulegen, welche Tag-Schlüssel zulässig sind. Beispielrichtlinien und weitere Informationen finden Sie unter Zugriffssteuerung auf der Grundlage von Tag-Schlüsseln.
-
Verfügbarkeit – Dieser Schlüssel ist in den Anforderungskontext enthalten, wenn die Operation die Übergabe von Tags in der Anforderung unterstützt.
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Dieser Kontextschlüssel liegt im Format "aws:TagKeys":" vor. Dabei ist tag-key"tag-key eine Liste von Tag-Schlüsseln ohne Werte (z. B. ["Dept","Cost-Center"]).
Da Sie mehrere Tag-Schlüssel-Wert-Paare in eine Anforderung aufnehmen können, könnte der Anforderungsinhalt eine mehrwertige Anforderung sein. In diesem Fall müssen Sie die Operatoren ForAllValues oder ForAnyValue verwenden. Weitere Informationen finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
Einige Services unterstützen das Markieren mit Ressourcenoperationen, wie etwa das Erstellen, Ändern oder Löschen einer Ressource. Um das Markieren und Operationen als einzelnen Aufruf zu erlauben, müssen Sie eine Richtlinie erstellen, die die Aktionen Markieren und Ressourcenbearbeitung enthält. Anschließend können Sie den aws:TagKeys-Bedingungsschlüssel zum Erzwingen mit spezifischen Tag-Schlüssel in der Anforderung verwenden. Beispiel: Zum Einschränken von Tags, wenn jemand einen Amazon EC2-Snapshot erstellt, müssen Sie die Aktion zum Erstellen eines ec2:CreateSnapshot und die Aktion zum Markieren von ec2:CreateTags in die Richtlinie einbeziehen. Eine Richtlinie für dieses Szenario, das aws:TagKeys verwendet, finden Sie unter Erstellen eines Snapshots mit Tags im Amazon-EC2-Benutzerhandbuch.
aws:SecureTransport
Mit diesem Schlüssel können Sie überprüfen, ob die Anfrage per TLS gesendet wurde. Der Anforderungskontext gibt true oder false zurück. In einer Richtlinie können Sie bestimmte Aktionen nur zulassen, wenn die Anforderung mit TLS gesendet wird.
-
-Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp – boolesch
-
Werttyp - Einzelwertig
Anmerkung
Wenn AWS-Services in Ihrem Namen Aufrufe an andere AWS-Services tätigen (Service-to-Service-Anrufe), wird bestimmter netzwerkspezifischer Autorisierungskontext entfernt. Wenn Ihre Richtlinie diesen Bedingungsschlüssel mit Deny-Anweisungen verwendet, könnten AWS-Service-Prinzipale unbeabsichtigt blockiert werden. Um die korrekte Funktion von AWS-Services unter Einhaltung Ihrer Sicherheitsanforderungen zu gewährleisten, schließen Sie Service-Prinzipale von Ihren Deny-Anweisungen aus, indem Sie den aws:PrincipalIsAWSService-Bedingungsschlüssel mit dem Wert false hinzufügen. Zum Beispiel:
{ "Effect": "Deny", "Action": "s3:*", "Resource": "*", "Condition": { "Bool": { "aws:SecureTransport": "false", "aws:PrincipalIsAWSService": "false" } } }
Diese Richtlinie verweigert den Zugriff auf Amazon-S3-Operationen, wenn HTTPS nicht verwendet wird (aws:SecureTransport ist falsch), jedoch nur für andere als AWS-Service-Prinzipale. Dadurch wird sichergestellt, dass Ihre bedingten Einschränkungen für alle Prinzipale außer Prinzipale von AWS-Service gelten.
aws:SourceAccount
Verwenden Sie diesen Schlüssel, um die Konto-ID der Ressource, von der eine Service-zu-Service-Anforderung stammt, mit der Konto-ID zu vergleichen, die Sie in der Richtlinie angeben – aber nur, wenn die Anforderung von einem AWS-Service-Prinzipal stammt.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Aufruf an Ihre Ressource direkt von einem AWS-Service-Prinzipal im Namen einer Ressource erfolgt, für die die Konfiguration die Service-to-Service-Anfrage ausgelöst hat. Der aufrufende Service muss die Konto-ID der ursprünglichen Ressource an den aufgerufenen Service weitergeben.
Anmerkung
Dieser Schlüssel bietet einen einheitlichen Mechanismus zur Durchsetzung der serviceübergreifenden Verwechslungsgefahr über alle AWS-Services hinweg. Allerdings erfordern nicht alle Serviceintegrationen die Verwendung dieses globalen Bedingungsschlüssels. Weitere Informationen zu servicespezifischen Mechanismen zur Minderung des Risikos einer serviceübergreifenden Verwechslungsgefahr finden Sie in der Dokumentation der von Ihnen genutzten AWS-Services.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Durch die Nutzung dieses Bedingungsschlüssels können Sie sicherstellen, dass ein aufrufender Service nur dann Zugriff auf Ihre Ressource hat, wenn die Anfrage von einem bestimmten Konto stammt. Sie können beispielsweise die folgende Ressourcenkontrollrichtlinie (RCP) anhängen, um Anfragen von Service-Prinzipalen für Amazon-S3-Buckets abzulehnen, sofern diese nicht durch eine Ressource im angegebenen Konto ausgelöst wurden. Diese Richtlinie wendet die Steuerung nur auf Anfragen von Service-Prinzipalen ("Bool": {"aws:PrincipalIsAWSService": "true"}) an, bei denen der aws:SourceAccount-Schlüssel vorhanden ist ("Null": {"aws:SourceAccount":
"false"}), sodass Serviceintegrationen, für die die Verwendung dieses Schlüssels nicht erforderlich ist, und Aufrufe Ihrer Prinzipale nicht betroffen sind. Wenn der Schlüssel aws:SourceAccount im Anfragekontext vorhanden ist, wird die Null-Bedingung als true ausgewertet, wodurch die Verwendung des Schlüssels aws:SourceAccount erzwungen wird.
Verwenden Sie in ressourcenbasierten Richtlinien, bei denen der Prinzipal ein AWS-Service-Prinzipal ist, den Schlüssel, um die dem Service gewährten Berechtigungen einzuschränken. Wenn beispielsweise ein Amazon-S3-Bucket so konfiguriert ist, dass Benachrichtigungen an ein Amazon-SNS-Thema gesendet werden, ruft der Amazon-S3-Service die sns:Publish-API-Operation für alle konfigurierten Ereignisse auf. Setzen Sie in der Themenrichtlinie, die den Vorgang sns:Publish erlaubt, den Wert des Bedingungsschlüssels auf die Konto-ID des Amazon-S3-Buckets.
aws:SourceArn
Verwenden Sie diesen Schlüssel, um den Amazon-Ressourcennamen (ARN) der Ressource, von der eine Service-zu-Service-Anforderung stammt, mit dem von Ihnen in der Richtlinie angegebenen ARN zu vergleichen – aber nur, wenn die Anforderung von einem AWS-Service-Prinzipal stammt. Wenn der ARN der Quelle die Konto-ID enthält, ist es nicht erforderlich, aws:SourceAccount mit aws:SourceArn zu verwenden.
Dieser Schlüssel funktioniert nicht mit dem ARN des Auftraggebers, der die Anforderung stellt. Nutzen Sie stattdessen aws:PrincipalArn.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Aufruf an Ihre Ressource direkt von einem AWS-Service-Prinzipal im Namen einer Ressource erfolgt, für die die Konfiguration die Service-to-Service-Anfrage ausgelöst hat. Der aufrufende Service muss den ARN der ursprünglichen Ressource an den aufgerufenen Service übergeben.
Anmerkung
Dieser Schlüssel bietet einen einheitlichen Mechanismus zur Durchsetzung der serviceübergreifenden Verwechslungsgefahr über alle AWS-Services hinweg. Allerdings erfordern nicht alle Serviceintegrationen die Verwendung dieses globalen Bedingungsschlüssels. Weitere Informationen zu servicespezifischen Mechanismen zur Minderung des Risikos einer serviceübergreifenden Verwechslungsgefahr finden Sie in der Dokumentation der von Ihnen genutzten AWS-Services.
-
Datentyp – ARN
AWS empfiehlt, beim Vergleich von ARNs ARN-Operatoren anstelle von Zeichenfolgen-Operatoren zu verwenden.
-
Werttyp - Einzelwertig
Durch die Nutzung dieses Bedingungsschlüssels können Sie sicherstellen, dass ein aufrufender Service nur dann Zugriff auf Ihre Ressource hat, wenn die Anfrage von einer bestimmten Ressource stammt. Wenn Sie eine ressourcenbasierte Richtlinie mit einem AWS-Service-Prinzipal als Principal verwenden, legen Sie den Wert dieses Bedingungsschlüssels auf die ARN der Ressource fest, auf die Sie den Zugriff beschränken möchten. Wenn beispielsweise ein Amazon-S3-Bucket so konfiguriert ist, dass Benachrichtigungen an ein Amazon-SNS-Thema gesendet werden, ruft der Amazon-S3-Service die sns:Publish-API-Operation für alle konfigurierten Ereignisse auf. Setzen Sie in der Themenrichtlinie, die den Vorgang sns:Publish erlaubt, den Wert des Bedingungsschlüssels auf den ARN des Amazon-S3-Buckets. Empfehlungen zur Verwendung dieses Bedingungsschlüssels in ressourcenbasierten Richtlinien finden Sie in der Dokumentation der von Ihnen verwendeten AWS-Services.
aws:SourceOrgID
Verwenden Sie diesen Schlüssel, um die Organisations-ID der Ressource, von der eine Service-zu-Service-Anforderung stammt, mit der Organisations-ID zu vergleichen, die Sie in der Richtlinie angeben – aber nur, wenn die Anforderung von einem AWS-Service-Prinzipal stammt. Wenn Sie Konten in einer Organisation in AWS Organizations hinzufügen und entfernen, schließen Richtlinien, die den Schlüssel aws:SourceOrgID enthalten, automatisch die richtigen Konten ein und Sie müssen die Richtlinien nicht manuell aktualisieren.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anruf an Ihre Ressource direkt von einem AWS-Service-Prinzipal im Namen einer Ressource erfolgt, die einem Konto gehört, das Mitglied einer Organisation ist. Der aufrufende Service übergibt den ARN der ursprünglichen Ressource an den aufgerufenen Service.
Anmerkung
Dieser Schlüssel bietet einen einheitlichen Mechanismus zur Durchsetzung der serviceübergreifenden Verwechslungsgefahr über alle AWS-Services hinweg. Allerdings erfordern nicht alle Serviceintegrationen die Verwendung dieses globalen Bedingungsschlüssels. Weitere Informationen zu servicespezifischen Mechanismen zur Minderung des Risikos einer serviceübergreifenden Verwechslungsgefahr finden Sie in der Dokumentation der von Ihnen genutzten AWS-Services.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Durch die Nutzung dieses Bedingungsschlüssels können Sie sicherstellen, dass ein aufrufender Service nur dann Zugriff auf Ihre Ressource hat, wenn die Anfrage von einer bestimmten Organisation stammt. Sie können beispielsweise die folgende Ressourcenkontrollrichtlinie (RCP) anfügen, um Anfragen von Service-Prinzipalen an Amazon-S3-Buckets abzulehnen, sofern sie nicht von einer Ressource in der angegebenen AWS-Organisation ausgelöst wurden. Diese Richtlinie wendet die Steuerung nur auf Anfragen von Service-Prinzipalen ("Bool": {"aws:PrincipalIsAWSService":
"true"}) an, bei denen der Schlüssel aws:SourceAccount vorhanden ist ("Null": {"aws:SourceAccount": "false"}), sodass Service-Integrationen, für die die Verwendung des Schlüssels nicht erforderlich ist, und Aufrufe Ihrer Prinzipale nicht betroffen sind. Wenn der Schlüssel aws:SourceAccount im Anfragekontext vorhanden ist, wird die Null-Bedingung als true ausgewertet, wodurch die Verwendung des Schlüssels aws:SourceOrgID erzwungen wird. Wir verwenden aws:SourceAccount anstelle von aws:SourceOrgID im Bedingungsoperator Null, sodass die Kontrolle auch dann gilt, wenn die Anfrage von einem Konto stammt, das keiner Organisation angehört.
aws:SourceOrgPaths
Verwenden Sie diesen Schlüssel, um den AWS Organizations-Pfad der Ressource, von der eine Service-zu-Service-Anforderung stammt, mit dem Organisations-Pfad zu vergleichen, die Sie in der Richtlinie angeben – aber nur, wenn die Anforderung von einem AWS-Service-Prinzipal stammt. Ein AWS Organizations-Pfad ist eine Textdarstellung der Struktur einer AWS Organizations-Entität. Weitere Informationen zu Pfaden und deren Verwendung finden Sie unter Den AWS Organizations-Entitätspfad verstehen.
-
Verfügbarkeit – Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anruf an Ihre Ressource direkt von einem AWS-Service-Prinzipal im Namen einer Ressource erfolgt, die einem Konto gehört, das Mitglied einer Organisation ist. Der aufrufende Service übergibt den Organisations-Pfad der ursprünglichen Ressource an den aufgerufenen Service.
Anmerkung
Dieser Schlüssel bietet einen einheitlichen Mechanismus zur Durchsetzung der serviceübergreifenden Verwechslungsgefahr über alle AWS-Services hinweg. Allerdings erfordern nicht alle Serviceintegrationen die Verwendung dieses globalen Bedingungsschlüssels. Weitere Informationen zu servicespezifischen Mechanismen zur Minderung des Risikos einer serviceübergreifenden Verwechslungsgefahr finden Sie in der Dokumentation der von Ihnen genutzten AWS-Services.
-
Datentyp – Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Verwenden Sie diesen Bedingungsschlüssel, um sicherzustellen, dass ein aufrufender Service nur dann auf Ihre Ressource zugreifen kann, wenn die Anfrage von einer bestimmten Organisationseinheit (OE) in AWS Organizations stammt.
Um Auswirkungen auf Service-Integrationen zu verhindern, die die Verwendung dieses Schlüssels nicht erfordern, verwenden Sie ähnlich wie bei aws:SourceOrgID den Null-Bedingungsoperator mit dem Bedingungsschlüssel aws:SourceAccount, sodass die Steuerung weiterhin gilt, wenn die Anforderung von einem Konto stammt, das nicht einer Organisation angehört.
{ "Condition": { "ForAllValues:StringNotLikeIfExists": { "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }
aws:SourceOrgPaths ist ein mehrwertiger Bedingungsschlüssel. Mehrwertige Bedingungsschlüssel können im Anforderungskontext mehrere Werte haben. Sie müssen die Set-Operatoren ForAnyValue oder ForAllValues zusammen mit String-Bedingungsoperatoren für diesen Schlüssel verwenden. Weitere Hinweise zu mehrwertigen Bedingungsschlüsseln finden Sie unter Operatoren für mehrwertige Kontextschlüssel festlegen.
aws:UserAgent
Verwenden Sie diesen Schlüssel, um die Client-Anwendung des Anforderers mit der Anwendung zu vergleichen, die Sie in der Richtlinie angeben.
-
Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp – Zeichenfolge
-
Werttyp - Einzelwertig
Warnung
Dieser Schlüssel sollte mit Vorsicht verwendet werden. Da der Wert aws:UserAgent vom Aufrufer in einem HTTP-Header bereitgestellt wird, können nicht autorisierte Parteien modifizierte oder benutzerdefinierte Browser verwenden, um beliebige aws:UserAgent-Werte bereitzustellen. Daher sollten Sie aws:UserAgent nicht verwenden, um zu verhindern, dass nicht autorisierte Parteien direkte AWS-Anforderungen senden. Sie können es verwenden, um nur bestimmte Client-Anwendungen zuzulassen, und zwar erst nach dem Testen Ihrer Richtlinie.
Andere dienstübergreifende Bedingungsschlüssel
AWS STS unterstützt SAML-basierte Bedingungsschlüssel für den Verbund und serviceübergreifende Bedingungsschlüssel für den OIDC-Verbund. Diese Schlüssel sind verfügbar, wenn ein Benutzer, der mit OIDC oder SAML verbunden war, AWS-Vorgänge in anderen Diensten ausführt.