Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS Kontextschlüssel für globale Bedingungen
Wenn ein Schulleiter eine Anfrage stellt an AWS, AWS fasst die Anforderungsinformationen in einem Anfragekontext zusammen. 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. Anforderungsinformationen werden aus verschiedenen Quellen bereitgestellt, einschließlich des Principals, der die Anfrage stellt, der Ressource, für die die Anfrage gestellt wird, und der Metadaten zur Anfrage selbst.
Globale Bedingungsschlüssel können für alle verwendet werden AWS
Dienstleistungen. Diese Bedingungsschlüssel können zwar in allen Richtlinien verwendet werden, der Schlüssel ist jedoch nicht in jedem Anforderungskontext verfügbar. Beispielsweise ist der aws:SourceAccount
Bedingungsschlüssel nur verfügbar, wenn der Aufruf Ihrer Ressource direkt von einem AWS Dienstprinzipal. Weitere Informationen zu den Umständen, unter denen ein globaler Schlüssel im Anforderungskontext enthalten ist, finden Sie in den Verfügbarkeitsinformationen für jeden Schlüssel.
Einige einzelne Dienste erstellen ihre eigenen Bedingungsschlüssel, die im Anforderungskontext für andere Dienste verfügbar sind. Serviceübergreifende Bedingungsschlüssel sind eine Art globaler Bedingungsschlüssel, die ein Präfix enthalten, das dem Namen des Dienstes entspricht, z. B. ec2:
oderlambda:
, aber für andere Dienste verfügbar sind.
Dienstspezifische Bedingungsschlüssel werden für die Verwendung mit einer Person definiert AWS Dienst. Mit Amazon S3 können Sie beispielsweise eine Richtlinie mit dem s3:VersionId
Bedingungsschlüssel schreiben, um den Zugriff auf eine bestimmte Version eines Amazon S3 S3-Objekts zu beschränken. Dieser Bedingungsschlüssel ist für den Service einzigartig, was bedeutet, dass er nur mit Anfragen an den Amazon S3 S3-Service funktioniert. Informationen zu servicespezifischen Bedingungsschlüsseln finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS Dienste und wählen Sie den Dienst 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 IfExistsVersionen 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 aus einem bestimmten IP-Bereich kommtVPC. Wenn einer oder beide Schlüssel nicht im Anforderungskontext enthalten sind, gibt die Bedingung weiterhin true
zurück. Die Werte werden nur überprüft, wenn der angegebene Schlüssel im Anforderungskontext enthalten ist. Weitere Informationen darüber, wie eine Richtlinie ausgewertet wird, 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 Mehrwertige Kontextschlüssel.
Eigenschaften des Prinzipals | Eigenschaften einer Rollensitzung | Eigenschaften des Netzwerks | Eigenschaften der Ressource | Eigenschaften der Anfrage |
---|---|---|---|---|
AWS: EC2 InstanceSourcePrivate IPv4 |
Schlüssel zu sensiblen Zuständen
Die folgenden Bedingungsschlüssel gelten als sensibel, da ihre Werte maschinell generiert wurden. Für die Verwendung von Platzhaltern in diesen Bedingungsschlüsseln gibt es keine gültigen Anwendungsfälle, auch nicht bei einer Teilzeichenfolge des Schlüsselwerts mit einem Platzhalter. Dies liegt daran, dass der Platzhalter den Bedingungsschlüssel einem beliebigen Wert zuordnen 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 unterWie spezifiziert man einen Prinzipal.
Inhalt
war: PrincipalArn
Verwenden Sie diesen Schlüssel, um den Amazon-Ressourcennamen (ARN) des Prinzipals, der die Anfrage gestellt hat, mit dem zu vergleichenARN, den Sie in der Richtlinie angeben. Bei IAM Rollen gibt der Anforderungskontext die Rolle zurück, nicht die ARN des Benutzers, der die Rolle übernommen hat. ARN
-
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:
-
IAMRolle
-
IAMBenutzer
-
AWS STS föderierte Benutzersitzung
-
AWS-Konto Root-Benutzer
-
-
Datentyp —ARN, Zeichenfolge
AWS empfiehlt, beim Vergleichen ARNOperatoren anstelle von Zeichenkettenoperatoren zu verwendenARNs.
-
Werttyp - Einzelwertig
-
Beispielwerte Die folgende Liste zeigt den Wert des Anforderungskontextes, der für verschiedene Typen von Prinzipalen zurückgegeben wird, die Sie im
aws:PrincipalArn
Bedingungsschlüssel angeben können:-
IAMRolle — Der Anforderungskontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn
. Geben Sie die angenommene Rollensitzung nicht ARN 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
-
IAMuser — Der Anforderungskontext enthält den folgenden Wert für den Bedingungsschlüssel
aws:PrincipalArn
.arn:aws:iam::123456789012:user/
user-name
-
AWS STS Verbundbenutzersitzungen — Der Anforderungskontext 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 denaws:PrincipalArn
Bedingungsschlüssel angeben, werden die Berechtigungen nur für den Root-Benutzer des AWS-Konto. Dies unterscheidet sich von der Angabe des Root-Benutzers ARN im Hauptelement einer ressourcenbasierten Richtlinie, mit der die Autorität delegiert wird AWS-Konto. Weitere Hinweise zur Angabe des Root-Benutzers ARN im Hauptelement einer ressourcenbasierten Richtlinie finden Sie unter. AWS-Konto Prinzipalearn:aws:iam::123456789012:root
-
Sie können den Root-Benutzer ARN als Wert für den Bedingungsschlüssel in angeben aws:PrincipalArn
AWS Organizations Richtlinien zur Dienststeuerung (SCPs). SCPssind eine Art von Organisationsrichtlinie, die zur Verwaltung von Berechtigungen in Ihrer Organisation verwendet wird und sich nur auf Mitgliedskonten in der Organisation auswirkt. Eine SCP schränkt die Berechtigungen für IAM Benutzer und Rollen in Mitgliedskonten ein, einschließlich des Root-Benutzers des Mitgliedskontos. Weitere Informationen zu den Auswirkungen von SCPs auf Berechtigungen finden Sie unter SCPAuswirkungen auf Berechtigungen im Organizations User Guide.
als: 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
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:accountID:resource
" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }
als: PrincipalOrgPaths
Verwenden Sie diesen Schlüssel, um zu vergleichen AWS Organizations Pfad für den Prinzipal, der die Anfrage stellt, zu dem Pfad in der Richtlinie. Bei diesem Prinzipal kann es sich um einen IAM Benutzer, IAM eine Rolle, einen Verbundbenutzer oder Root-Benutzer des AWS-Kontos. In einer Richtlinie stellt dieser Bedingungsschlüssel sicher, dass der Anforderer ein Kontomitglied innerhalb des angegebenen Organisationsstamms oder der angegebenen Organisationseinheiten (OUs) ist AWS Organizations. Ein AWS Organizations Pfad ist eine Textdarstellung der Struktur einer Organisationseinheit. Weitere Hinweise zum Verwenden und Verstehen von Pfaden finden Sie unter Verstehe das AWS Organizations Pfad der Entität.
-
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
Organisationen IDs sind weltweit einzigartig, aber OU IDs und Root IDs sind nur innerhalb einer Organisation einzigartig. 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.
Die folgende Bedingung gilt beispielsweise true
für Principals in Konten, die direkt mit der ou-ab12-22222222
Organisationseinheit verknüpft sind, aber nicht für deren untergeordnete OUs Organisation.
"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Die folgende Bedingung gilt true
für Hauptbenutzer in einem Konto, das direkt mit der Organisationseinheit oder einem ihrer untergeordneten Unternehmen verknüpft ist. OUs 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 gilt true
für Hauptkunden in einem Konto, das direkt mit einer der untergeordneten Organisationseinheiten verknüpft istOUs, jedoch nicht direkt mit der übergeordneten Organisationseinheit. 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 Mehrwertige Kontextschlüssel.
"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }
aws: ID PrincipalOrg
Verwenden Sie diesen Schlüssel, um die ID der Organisation in zu vergleichen AWS Organizations zu dem der anfordernde Principal mit der in der Richtlinie angegebenen ID gehört.
-
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 bietet eine Alternative zur Auflistung aller Konten IDs für alle AWS Konten in einer Organisation. 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.
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
Anmerkung
Diese globale Bedingung gilt auch für das Verwaltungskonto eines AWS Organisation. Diese Richtlinie verhindert, dass alle Hauptbenutzer außerhalb der angegebenen Organisation auf den Amazon-S3-Bucket zugreifen können. Dazu gehören alle AWS Dienste, die mit Ihren internen Ressourcen interagieren, wie AWS CloudTrail Senden von Protokolldaten an Ihre Amazon S3 S3-Buckets. Um zu erfahren, wie Sie sicher Zugriff gewähren können für AWS Dienste, siehewar: PrincipalIs AWSService.
Weitere Informationen zur AWS Organizations, siehe Was ist AWS Organizations? in der AWS Organizations Benutzerleitfaden.
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.
-
Verfügbarkeit — Dieser Schlüssel ist im Anforderungskontext enthalten, wenn der Principal einen IAM Benutzer mit angehängten Tags verwendet. Er ist für einen Prinzipal enthalten, der eine IAM Rolle mit angehängten 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 zu IAM Tags finden Sie unterTags für AWS Identity and Access Management Ressourcen. Sie können verwendenaws:PrincipalTag
, um den Zugriff zu kontrollieren für AWS
Schulleiter.
Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen könnten, die es Benutzern mit dem department=hr
Tag ermöglicht, IAM Benutzer, Gruppen oder Rollen zu verwalten. Um diese Richtlinie zu verwenden, ersetzen Sie italicized placeholder text
in der Beispielrichtlinie durch Ihre eigenen Informationen. Befolgen Sie dann die Anweisungen unter Erstellen einer Richtlinie oder Bearbeiten einer Richtlinie.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/
department
": "hr
" } } } ] }
war: PrincipalIs AWSService
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob der Aufruf Ihrer Ressource direkt von einem AWS Service-Principal. Zum Beispiel AWS CloudTrail verwendet den Service Principalcloudtrail.amazonaws.com
, um Protokolle in Ihren Amazon S3 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 ist auf False gesetzt, wenn der Service die Anmeldeinformationen eines IAM Prinzipals verwendet, um im Namen des Prinzipals eine Anfrage zu stellen. Er ist auch auf False gesetzt, wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen.
-
Verfügbarkeit — Dieser Schlüssel ist im Anforderungskontext für alle signierten API Anfragen vorhanden, die AWS Anmeldeinformationen. Anonyme Anforderungen enthalten diesen Schlüssel nicht.
-
Datentyp — Boolean
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf Ihre vertrauenswürdigen Identitäten und erwarteten Netzwerkadressen zu beschränken und gleichzeitig den Zugriff auf AWS Dienste.
Im folgenden Beispiel für eine Amazon S3 S3-Bucket-Richtlinie ist der Zugriff auf den Bucket eingeschränkt, es sei denn, die Anfrage stammt von einem Service Principal vpc-111bbb22
oder stammt von einem Service Principal, wie CloudTrail z.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }
Im folgenden Video erfahren Sie mehr darüber, wie Sie den Bedingungsschlüssel aws:PrincipalIsAWSService
in einer Richtlinie verwenden können.
war: 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. Zum Beispiel die AWS CloudTrail Der Name des Dienstprinzipals istcloudtrail.amazonaws.com
.
-
Verfügbarkeit — Dieser Schlüssel ist in der Anfrage enthalten, wenn der Anruf von einem AWS Service-Principal. Dieser Schlüssel ist in keiner anderen Situation vorhanden, einschließlich der folgenden:
-
Wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen.
-
Wenn der Dienst die Anmeldeinformationen eines IAM Prinzipals verwendet, um im Namen des Prinzipals eine Anfrage zu stellen.
-
Wenn der Anruf direkt von einem IAM Principal 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 Netzwerkadressen zu beschränken und gleichzeitig den Zugriff auf ein AWS Dienst.
Im folgenden Beispiel für eine Amazon S3 S3-Bucket-Richtlinie ist der Zugriff auf den Bucket eingeschränkt, es sei denn, die Anfrage stammt von einem Service Principal vpc-111bbb22
oder stammt von einem Service Principal, wie CloudTrail z.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }
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 Anfrage enthalten, wenn der Anruf von einem AWS Service-Principal. Dieser Schlüssel ist in keiner anderen Situation vorhanden, einschließlich der folgenden:
-
Wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen.
-
Wenn der Dienst die Anmeldeinformationen eines IAM Prinzipals verwendet, um im Namen des Prinzipals eine Anfrage zu stellen.
-
Wenn der Anruf direkt von einem IAM Principal 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 Mehrwertige Kontextschlüssel.
als: 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 Wie spezifiziert man einen Prinzipal. 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. Für IAM Benutzer ist der Wert des Anforderungskontextes die Benutzer-ID. Bei IAM Rollen kann dieses Wertformat variieren. Weitere Informationen dazu, wie die Informationen für verschiedene Auftraggeber angezeigt werden, finden Sie unter Wie spezifiziert man einen Prinzipal. 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 Wie spezifiziert man einen Prinzipal. 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 Anfragen und Anfragen, die über den Root-Benutzer des AWS-Kontos oder IAM Rollen enthalten diesen Schlüssel nicht. Anfragen, die mit IAM Identity Center-Anmeldeinformationen gestellt wurden, enthalten diesen Schlüssel nicht im Kontext.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Eigenschaften einer Rollensitzung
Verwenden Sie die folgenden Bedingungsschlüssel, um die Eigenschaften der Rollensitzung zum Zeitpunkt der Sitzungsgenerierung zu vergleichen. Diese Bedingungsschlüssel sind nur verfügbar, wenn eine Anfrage von einem Principal mit Rollensitzungs- oder Verbundbenutzeranmeldedaten gestellt wird. Die Werte für diese Bedingungsschlüssel sind in das Sitzungstoken der Rolle eingebettet.
Eine Rolle ist eine Art von Principal. Sie können auch die Bedingungsschlüssel aus dem Eigenschaften des Prinzipals Abschnitt verwenden, um die Eigenschaften einer Rolle auszuwerten, wenn eine Rolle eine Anfrage stellt.
Inhalt
- als: FederatedProvider
- aws: TokenIssueTime
- als: MultiFactorAuthAge
- als: MultiFactorAuthPresent
- aws:EC2 InstanceSourceVpc
- AWS: EC2 InstanceSourcePrivate IPv4
- als: SourceIdentity
- ec2: RoleDelivery
- ec2: SourceInstanceArn
- kleben: RoleAssumedBy
- Klebstoff: CredentialIssuingService
- Lambda: SourceFunctionArn
- ssm: SourceInstanceArn
- Identitätsspeicher: UserId
als: 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 übernommen wurde AssumeRoleWithWebIdentity
AWS STS Operation. 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 vorhanden, wenn der Prinzipal ein Rollensitzungsprinzipal ist und diese Sitzung ausgegeben wurde, als eine Rolle mit
AssumeRoleWithWebIdentity
übernommen wurde. -
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Wenn der Benutzer beispielsweise über Amazon Cognito authentifiziert wurde, enthält der Anforderungskontext den Wert cognito-identity.amazonaws.com
. Wenn der Benutzer über Login with Amazon authentifiziert wurde, enthält der Anforderungskontext den Wert www.amazon.com
.
Sie können jeden einwertigen Bedingungsschlüssel als Variable verwenden. Das folgende Beispiel für eine ressourcenbasierte Richtlinie verwendet den aws:FederatedProvider
Schlüssel als Richtlinienvariable in ARN einer Ressource. Diese Richtlinie ermöglicht es Benutzern, die sich über einen Identitätsanbieter authentifiziert haben, Objekte aus einem Amazon-S3-Bucket mit einem für den ausstellenden Identitätsanbieter spezifischen Pfad abzurufen.
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 nicht vorhanden in AWS CLI, AWS API, oder AWS SDKAnfragen, die unter Verwendung von Zugriffsschlüsseln gestellt werden.
-
Datentyp — Datum
-
Werttyp - Einzelwertig
Informationen darüber, welche Services die Verwendung von temporären Anmeldeinformationen unterstützen, finden Sie unter AWS Dienste, die funktionieren mit IAM.
als: MultiFactorAuthAge
Verwenden Sie diesen Schlüssel, um die Anzahl der Sekunden seit der Autorisierung des anfordernden Prinzipals MFA mit der Zahl zu vergleichen, die Sie in der Richtlinie angeben. Weitere Informationen zu finden MFA Sie unterAWS Multi-Faktor-Authentifizierung in IAM.
Wichtig
Dieser Bedingungsschlüssel ist für föderierte Identitäten oder Anfragen, die mithilfe von Zugriffsschlüsseln zum Signieren gestellt wurden, nicht vorhanden AWS CLI, AWS API, oder AWS SDKAnfragen. Weitere Informationen zum Hinzufügen von MFA Schutz zu API Vorgängen mit temporären Sicherheitsanmeldedaten finden Sie unterSicherer API Zugriff mit MFA.
Um zu überprüfen, ob MFA es zur Validierung von IAM föderierten Identitäten verwendet wird, können Sie die Authentifizierungsmethode von Ihrem Identitätsanbieter an übergeben AWS als Sitzungs-Tag. Details hierzu finden Sie unter Sitzungs-Tags übergeben AWS STS. Zur Durchsetzung MFA von IAM Identity Center-Identitäten können Sie Attribute für die Zugriffskontrolle aktivieren, um einen SAML Assertion-Claim mit der Authentifizierungsmethode von Ihrem Identity Provider an IAM Identity Center weiterzuleiten.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Principal temporäre Sicherheitsanmeldedaten verwendet, um die Anfrage zu stellen. Richtlinien mit MFA Bedingungen können an Folgendes angehängt werden:
-
Einem IAM-Benutzer oder einer -Gruppe
-
Eine Ressource wie ein Amazon S3 S3-Bucket, eine SQS Amazon-Warteschlange oder ein SNS Amazon-Thema
-
Die Vertrauensrichtlinie einer IAM Rolle, die von einem Benutzer übernommen werden kann
-
-
Datentyp — Numerisch
-
Werttyp - Einzelwertig
als: MultiFactorAuthPresent
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Multi-Faktor-Authentifizierung (MFA) verwendet wurde, um die temporären Sicherheitsanmeldeinformationen zu validieren, die die Anfrage gestellt haben.
Wichtig
Dieser Bedingungsschlüssel ist nicht vorhanden für föderierte Identitäten oder Anfragen, die mithilfe von Zugriffsschlüsseln zum Signieren gestellt wurden AWS CLI, AWS API, oder AWS SDKAnfragen. Weitere Informationen zum Hinzufügen von MFA Schutz zu API Vorgängen mit temporären Sicherheitsanmeldedaten finden Sie unterSicherer API Zugriff mit MFA.
Um zu überprüfen, ob MFA es zur Validierung von IAM föderierten Identitäten verwendet wird, können Sie die Authentifizierungsmethode von Ihrem Identitätsanbieter an übergeben AWS als Sitzungs-Tag. Details hierzu finden Sie unter Sitzungs-Tags übergeben AWS STS. Zur Durchsetzung MFA von IAM Identity Center-Identitäten können Sie Attribute für die Zugriffskontrolle aktivieren, um einen SAML Assertion-Claim mit der Authentifizierungsmethode von Ihrem Identity Provider an IAM Identity Center weiterzuleiten.
-
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 angehängt werden:
-
Einem IAM-Benutzer oder einer -Gruppe
-
Eine Ressource wie ein Amazon S3 S3-Bucket, eine SQS Amazon-Warteschlange oder ein SNS Amazon-Thema
-
Die Vertrauensrichtlinie einer IAM Rolle, die von einem Benutzer übernommen werden kann
-
-
Datentyp — Boolean
-
Werttyp - Einzelwertig
Temporäre Anmeldeinformationen werden verwendet, um IAM Rollen und IAM Benutzer mit temporären Tokens von AssumeRoleoder zu authentifizieren GetSessionToken, und Benutzer von AWS Management Console.
IAMBenutzerzugriffsschlüssel sind langfristige Anmeldeinformationen, aber in einigen Fällen AWS erstellt temporäre Anmeldeinformationen im Namen von IAM Benutzern, um Operationen auszufü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:
-
IAMBenutzer in der AWS Management Console 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 Anruf tätigt AWS Dienst, der Dienst verwendet die Anmeldeinformationen des Benutzers erneut, um eine weitere Anfrage an einen anderen Dienst zu stellen. Zum Beispiel, wenn Sie Athena aufrufen, um auf einen Amazon S3 S3-Bucket zuzugreifen, oder wenn Sie AWS CloudFormation um eine EC2 Amazon-Instance zu erstellen. Für die nachfolgende Anfrage AWS verwendet temporäre Anmeldeinformationen.
Informationen darüber, welche Services die Verwendung von temporären Anmeldeinformationen unterstützen, finden Sie unter AWS Dienste, die funktionieren mit IAM.
Der aws:MultiFactorAuthPresent
Schlüssel ist nicht vorhanden, wenn ein CLI Befehl API oder mit langfristigen Anmeldeinformationen aufgerufen wird, z. B. mit Schlüsselpaaren für den Benutzerzugriff. Wir empfehlen daher, beim Prüfen dieses Schlüssels die Versionen ...IfExists
der Bedingungsoperatoren zu verwenden.
Es ist wichtig zu verstehen, dass das folgende Condition
Element keine zuverlässige Methode ist, um zu überprüfen, ob eine Anfrage mit MFA authentifiziert wurde.
##### WARNING: NOT RECOMMENDED #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Deny
Effekt, Bool
Element und false
Wert lehnt Anfragen ab, die zwar authentifiziert werden könnenMFA, es aber nicht waren. Dies gilt nur für temporäre Anmeldeinformationen, die die Verwendung unterstützen. MFA Diese Aussage verweigert nicht den Zugriff auf Anfragen, die mit langfristigen Anmeldeinformationen gestellt wurden, oder auf Anfragen, die mit MFA authentifiziert wurden. Verwenden Sie dieses Beispiel mit Vorsicht, da die Logik kompliziert ist und nicht getestet wird, ob MFA -authentication 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 BoolIfExistsOperator zu verwenden, um zu überprüfen, ob eine Anfrage mit authentifiziert wurde. MFA
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Deny
BoolIfExists
, und false
lehnt Anfragen ab, die nicht mit authentifiziert wurden. MFA Insbesondere werden Anfragen mit temporären Anmeldeinformationen, die nicht enthalten, abgelehnt. MFA Es lehnt auch Anfragen ab, die unter Verwendung langfristiger Anmeldeinformationen gestellt werden, wie z. B. AWS CLI or AWS APIOperationen, die unter Verwendung von Zugriffsschlüsseln ausgeführt wurden. 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 diese Option, wenn Sie Anfragen ablehnen möchten, die nicht mit MFA authentifiziert wurden. Dies ist sicherer, kann aber jeden Code oder jedes Skript beschädigen, das Zugriffstasten für den Zugriff auf AWS CLI or AWS
API.
Alternative Kombinationen
Sie können den BoolIfExistsOperator auch verwenden, um MFA -authentifizierte Anfragen zuzulassen und AWS CLI or AWS APIAnfragen, die unter Verwendung langfristiger Anmeldeinformationen gestellt werden.
"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
ermöglicht Anfragen, die mit authentifiziert wurdenMFA, oder Anfragen, die nicht mit authentifiziert werden können. MFA Das bedeutet, dass AWS CLI, AWS API, und AWS SDKOperationen sind zulässig, wenn der Anforderer seine langfristigen Zugriffsschlüssel verwendet. Diese Kombination erlaubt keine Anfragen von temporären Anmeldeinformationen, die enthalten könnten, aber nicht enthalten MFA könnten.
Wenn Sie mit dem visuellen Editor der IAM Konsole eine Richtlinie erstellen und „MFAErforderlich“ auswählen, wird diese Kombination angewendet. Diese Einstellung erfordert Zugriff auf MFA die Konsole, ermöglicht aber programmatischen Zugriff ohneMFA.
Alternativ können Sie den Bool
Operator verwenden, um programmatische Anfragen und Konsolenanfragen nur dann zuzulassen, wenn Sie mit der Verwendung authentifiziert sind. MFA
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
Diese Kombination aus Allow
Bool
, und true
erlaubt nur MFA -authentifizierte Anfragen. Dies gilt nur für temporäre Anmeldeinformationen, die die Verwendung von unterstützen. MFA Diese Anweisung erlaubt keinen Zugriff auf Anfragen, die mit langfristigen Zugriffsschlüsseln gestellt wurden, oder auf Anfragen, die mit temporären Anmeldeinformationen ohne Schlüssel gestellt wurdenMFA.
Verwenden Sie kein Richtlinienkonstrukt, das dem folgenden ähnelt, um zu überprüfen, ob der MFA Schlüssel vorhanden ist:
##### WARNING: USE WITH CAUTION #####
"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
Diese Kombination aus Allow
Effekt, Null
Element und false
Wert erlaubt nur Anfragen, mit denen authentifiziert werden kannMFA, unabhängig davon, ob die Anfrage tatsächlich authentifiziert wurde. 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 testet, ob MFA -authentication tatsächlich verwendet wurde.
aws:EC2 InstanceSourceVpc
Dieser Schlüssel identifiziert die PersonVPC, an die die EC2 IAM Amazon-Rollenanmeldedaten übermittelt wurden. Sie können diesen Schlüssel in einer Richtlinie zusammen mit dem aws:SourceVPCglobalen Schlüssel verwenden, um zu überprüfen, ob ein Anruf von einem VPC (aws:SourceVPC
) erfolgt, der dem VPC Ort entspricht, an den die Anmeldeinformationen übermittelt wurden (aws:Ec2InstanceSourceVpc
).
-
Verfügbarkeit — Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn der Anforderer Anfragen mit einer EC2 Amazon-Rollenberechtigung signiert. Er kann in IAM Richtlinien, Richtlinien zur Servicesteuerung, VPC Endpunktrichtlinien 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. Der aws:SourceVpc
Kontextschlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anforderer einen VPC Endpunkt verwendet, um die Anfrage zu stellen. Die Verwendung von aws:Ec2InstanceSourceVpc
mit aws:SourceVpc
ermöglicht eine aws:Ec2InstanceSourceVpc
breitere Verwendung, da Werte verglichen werden, die sich normalerweise zusammen ändern.
Anmerkung
Dieser Bedingungsschlüssel ist in EC2 -Classic nicht verfügbar.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSameVPC", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
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 EC2 Amazon-Instance-Rollen verwendet werden, indem das Vorhandensein des ec2:SourceInstanceARN
Bedingungsschlüssels getestet wird.
Die Richtlinie verwendetaws:ViaAWSService
, um Folgendes zu ermöglichen AWS um Anfragen zu autorisieren, wenn Anfragen im Namen Ihrer EC2 Amazon-Instance-Rollen gestellt werden. Wenn Sie beispielsweise eine Anfrage von einer EC2 Amazon-Instance an einen verschlüsselten Amazon S3-Bucket stellen, ruft Amazon S3 einen Aufruf an AWS KMS in Ihrem Namen. Einige der Schlüssel sind nicht vorhanden, wenn die Anfrage gestellt wird AWS KMS.
AWS: EC2 InstanceSourcePrivate IPv4
Dieser Schlüssel identifiziert die private IPv4 Adresse der primären elastic network interface, an die die EC2 IAM Amazon-Rollenanmeldedaten übermittelt wurden. Sie müssen diesen Bedingungsschlüssel zusammen mit dem zugehörigen Schlüssel verwenden, aws:Ec2InstanceSourceVpc
um sicherzustellen, dass Sie über eine weltweit 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 Anfragen mit einer EC2 Amazon-Rollenberechtigung signiert. Er kann in IAM Richtlinien, Richtlinien zur Servicesteuerung, VPC Endpunktrichtlinien 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 anzugeben, von VPC wo Ihre EC2 Amazon-Instance-Anmeldeinformationen verwendet werden können.
Anmerkung
Dieser Bedingungsschlüssel ist in EC2 -Classic nicht verfügbar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
als: 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 in den Anforderungskontext aufgenommen, nachdem eine Quellidentität festgelegt wurde, wenn eine Rolle mit einer AWS STS CLIBefehl assume-role oder AWS STS
AssumeRole
APIOperation. -
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Sie können diesen Schlüssel in einer Richtlinie verwenden, um Aktionen zuzulassen in AWS von Prinzipalen, 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, wer oder was Aktionen mit einer Rolle 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.
Der sts:SourceIdentitySchlüssel ist in der Anfrage enthalten, wenn der Principal zunächst eine Quellidentität festlegt und dabei eine beliebige Rolle annimmt AWS STS CLIBefehl assume-role oder AWS STS
AssumeRole
APIOperation. 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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }
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 IAM Rollenanmeldedaten für Amazon zu vergleichenEC2. Der Instance-Metadaten-Service unterscheidet zwischen IMDSv1 und IMDSv2 Anfragen danach, ob für eine bestimmte Anfrage entweder die GET
Header PUT
oder, die eindeutig sindIMDSv2, in dieser Anfrage vorhanden sind.
-
Verfügbarkeit — Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn die Rollensitzung von einer EC2 Amazon-Instance erstellt wird.
-
Datentyp — Numerisch
-
Werttyp - Einzelwertig
-
Beispielwerte — 1.0, 2.0
Sie können den Instanz-Metadatendienst (IMDS) für jede Instanz so konfigurieren, dass lokaler Code oder Benutzer ihn verwenden müssenIMDSv2. Wenn Sie angeben, dass dieser verwendet werden IMDSv2 muss, funktioniert das nicht IMDSv1 mehr.
-
Instance Metadata Service Version 1 (IMDSv1) — Eine Anforderungs-/Antwortmethode
-
Instanz-Metadatendienst Version 2 (IMDSv2) — eine sitzungsorientierte Methode
Informationen zur Konfiguration der zu verwendenden Instanz finden Sie unter Konfiguration der IMDSv2 Optionen für Instanz-Metadaten.
Im folgenden Beispiel wird der Zugriff verweigert, wenn der RoleDelivery Wert ec2: im Anforderungskontext 1.0 (IMDSv1) ist. Diese Richtlinienerklärung kann allgemein angewendet werden, da die Anfrage keine Wirkung hat, wenn sie nicht mit EC2 Amazon-Rollenanmeldedaten signiert ist.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireAllEc2RolesToUseV2", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NumericLessThan": { "ec2:RoleDelivery": "2.0" } } } ] }
Weitere Informationen finden Sie unter Beispielrichtlinien für die Arbeit mit Instance-Metadaten.
ec2: SourceInstanceArn
Verwenden Sie diesen Schlüssel, um die Instanz zu vergleichen, ARN von der aus die Sitzung der Rolle generiert wurde.
-
Verfügbarkeit — Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn die Rollensitzung von einer EC2 Amazon-Instance erstellt wird.
-
Datentyp — ARN
-
Werttyp - Einzelwertig
-
Beispielwert — arn:aws:ec2:us-west- 2:111111111111:instance/instance-id
Richtlinienbeispiele finden Sie unter Zulassen, dass eine bestimmte Instanz Ressourcen in einer anderen Instanz anzeigt AWS Dienste.
kleben: RoleAssumedBy
Das Tool AWS Glue Der Dienst legt diesen Bedingungsschlüssel für jeden fest AWS APIAnfrage wo AWS Glue stellt eine Anfrage unter Verwendung einer Servicerolle im Namen des Kunden (nicht von einem Job- oder Entwickler-Endpunkt, sondern direkt von AWS Glue Dienst). Verwenden Sie diesen Schlüssel, um zu überprüfen, ob ein Anruf an AWS Die Ressource kam von AWS Glue Bedienung.
-
Verfügbarkeit — Dieser Schlüssel ist im Anforderungskontext enthalten, wenn AWS Glue stellt im Namen des Kunden eine Anfrage unter Verwendung einer Servicerolle.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert — Dieser Schlüssel ist immer auf gesetzt
glue.amazonaws.com
.
Das folgende Beispiel fügt eine Bedingung hinzu, die Folgendes ermöglicht AWS Glue Service zum Abrufen eines Objekts aus einem Amazon S3 S3-Bucket.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }
Klebstoff: CredentialIssuingService
Das Tool AWS Glue Der Service legt diesen Schlüssel für jeden fest AWS APIAnfrage unter Verwendung einer Servicerolle, die von einem Job- oder Entwickler-Endpunkt stammt. Verwenden Sie diesen Schlüssel, um zu überprüfen, ob ein Anruf an AWS Die Ressource kam von einem AWS Glue Job- oder Entwickler-Endpunkt.
-
Verfügbarkeit — Dieser Schlüssel ist im Anforderungskontext enthalten, wenn AWS Glue stellt eine Anfrage, die von einem Job- oder Entwickler-Endpunkt kommt.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert — Dieser Schlüssel ist immer auf gesetzt
glue.amazonaws.com
.
Das folgende Beispiel fügt eine Bedingung hinzu, die an eine IAM Rolle angehängt ist, die von einem AWS Glue Arbeit. Dadurch wird sichergestellt, dass bestimmte Aktionen erlaubt/verweigert werden, je nachdem, ob die Rollensitzung für eine AWS Glue Job-Laufzeitumgebung.
{ "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 Lambda-Funktion zu identifizieren, an ARN die IAM Rollenanmeldedaten übermittelt wurden. Der Lambda-Service legt diesen Schlüssel für jeden fest AWS APIAnfrage, die aus der Ausführungsumgebung Ihrer Funktion stammt. Verwenden Sie diesen Schlüssel, um zu überprüfen, ob ein Aufruf an AWS Die Ressource stammt aus dem Code einer bestimmten Lambda-Funktion. Lambda legt diesen Schlüssel auch für einige Anfragen fest, die von außerhalb der Ausführungsumgebung kommen, z. B. das Schreiben von Protokollen in X-Ray CloudWatch und das Senden von Traces an X-Ray.
-
Verfügbarkeit — Dieser Schlüssel ist im Anforderungskontext 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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnEquals": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }
Weitere Informationen finden Sie unter Arbeiten mit Anmeldeinformationen für die Lambda-Ausführungsumgebung in der AWS Lambda Leitfaden für Entwickler.
ssm: SourceInstanceArn
Verwenden Sie diesen Schlüssel, um die zu identifizieren AWS Systems Manager verwaltete InstanzARN, an die die IAM Rollenanmeldeinformationen übermittelt wurden. Dieser Bedingungsschlüssel ist nicht vorhanden, wenn die Anfrage von einer verwalteten Instance stammt, deren IAM Rolle einem EC2 Amazon-Instance-Profil zugeordnet ist.
-
Verfügbarkeit — Dieser Schlüssel ist immer dann im Anforderungskontext enthalten, wenn Rollenanmeldeinformationen an eine Person übermittelt werden AWS Systems Manager verwaltete Instanz.
-
Datentyp — ARN
-
Werttyp - Einzelwertig
-
Beispielwert — arn:aws:ec2:us-west- 2:111111111111:instance/instance-id
Identitätsspeicher: UserId
Verwenden Sie diesen Schlüssel, um die Identität der IAM Identity Center-Belegschaft in der signierten Anfrage mit der in der Richtlinie angegebenen Identität zu vergleichen.
-
Verfügbarkeit — Dieser Schlüssel ist enthalten, wenn der Anrufer der Anfrage ein Benutzer in IAM Identity Center ist.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
-
Beispielwert — 94482488-3041-7026-18f3-be45837cd0e4
Sie können den Namen eines Benutzers im Identity Center ermitteln, indem Sie eine Anfrage an den richten. Verwenden Sie dazu UserId IAM GetUserIdAPI AWS CLI, AWS API, oder AWS SDK.
Eigenschaften des Netzwerks
Verwenden Sie die folgenden Bedingungsschlüssel, um Details über das Netzwerk, von dem die Anfrage stammt oder über das die Anfrage 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, um die Anfrage zu stellen.
-
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 sowohl die IPv6 Adresse als auch den Bereich von IP-Adressen. Für eine Liste AWS-Services diese UnterstützungIPv6, siehe AWS-Services diese Unterstützung finden Sie IPv6 im VPCAmazon-Benutzerhandbuch.
Sie können beispielsweise die folgende identitätsbasierte Richtlinie an eine IAM Rolle anhängen. Diese Richtlinie ermöglicht es dem Benutzer, Objekte in den amzn-s3-demo-bucket3
Amazon S3 S3-Bucket zu legen, wenn er den Anruf aus dem angegebenen IPv4 Adressbereich tätigt. Diese Richtlinie ermöglicht auch AWS Dienst, der Forward Access Sessions (FAS) diesen Vorgang in Ihrem Namen durchführt.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": "
203.0.113.0/24
" } } } ] }
Wenn Sie den Zugriff von Netzwerken aus einschränken müssen, die IPv4 sowohl die IPv6 Adressierung als auch die Adressierung unterstützen, können Sie die IPv4 IPv6 Adresse oder Bereiche von IP-Adressen in die IAM Richtlinienbedingung aufnehmen. Die folgende identitätsbasierte Richtlinie ermöglicht es dem Benutzer, Objekte in den amzn-s3-demo-bucket3
Amazon S3 S3-Bucket zu legen, wenn der Benutzer den Anruf entweder aus bestimmten Bereichen IPv4 oder aus IPv6 Adressbereichen tätigt. Bevor Sie IPv6 Adressbereiche in Ihre IAM Richtlinie aufnehmen, stellen Sie sicher, dass AWS-Service Sie arbeiten mit UnterstützungenIPv6. Für eine Liste AWS-Services diese UnterstützungIPv6, siehe AWS-Services diese Unterstützung finden Sie IPv6 im VPCAmazon-Benutzerhandbuch.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "
203.0.113.0/24
", "2001:DB8:1234:5678::/64
" ] } } } ] }
Wenn die Anfrage von einem Host kommt, der einen VPC Amazon-Endpunkt verwendet, ist der aws:SourceIp
Schlüssel 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 Endgeräte und VPC VPC Endpunktdienste in der AWS PrivateLink Leitfaden.
als: SourceVpc
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Anfrage den Ordner durchläuftVPC, an den der VPC Endpunkt angehängt ist. In einer Richtlinie können Sie diesen Schlüssel verwenden, um nur einem bestimmten Benutzer Zugriff zu gewährenVPC. Weitere Informationen finden Sie unter Beschränken des Zugriffs auf ein bestimmtes VPC Objekt im Amazon Simple Storage Service-Benutzerhandbuch.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anforderer einen VPC Endpunkt verwendet, um die Anfrage zu stellen.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
In einer Richtlinie können Sie diesen Schlüssel verwenden, um den Zugriff auf eine bestimmte Person zuzulassen oder einzuschränkenVPC.
Sie können beispielsweise die folgende identitätsbasierte Richtlinie an eine IAM Rolle anhängen, die dem amzn-s3-demo-bucket3
Amazon S3 S3-Bucket verweigert werden PutObject
soll, sofern die Anfrage nicht von der angegebenen VPC ID oder von AWS-Services die Forward-Access-Sitzungen (FAS) verwenden, um Anfragen im Namen der Rolle zu stellen. Im Gegensatz zu with müssen Sie aws:V iaAWSService oder verwendenaws: SourceIp, aws: CalledVia um FAS Anfragen zuzulassen, da die Quelle VPC der ursprünglichen Anfrage nicht erhalten bleibt.
Anmerkung
Diese Richtlinie lässt keine Aktionen zu. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die bestimmte Aktionen zulassen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutObjectIfNotVPCID", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-1234567890abcdef0" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
Ein Beispiel für die Anwendung dieses Schlüssels in einer ressourcenbasierten Richtlinie finden Sie unter Beschränken des Zugriffs auf eine bestimmte Richtlinie VPC im Amazon Simple Storage Service-Benutzerhandbuch.
als: SourceVpce
Verwenden Sie diesen Schlüssel, um die VPC Endpunkt-ID der Anfrage 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 verwendet, um die Anfrage zu stellen.
-
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änken des Zugriffs auf ein bestimmtes VPC Objekt im Amazon Simple Storage Service-Benutzerhandbuch. Ähnlich wie bei der Verwendung als: SourceVpc müssen Sie Anfragen aws: CalledVia von verwenden aws:V iaAWSService oder zulassen AWS-Services mithilfe von Forward-Access-Sitzungen (FAS). Dies liegt daran, dass der VPC Quellendpunkt der ersten Anfrage nicht beibehalten wird.
als: 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 überein, wenn die Anfrage von der angegebenen IP-Adresse stammt und einen VPC Endpunkt durchläuft.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn die Anfrage über einen VPC Endpunkt gestellt wird.
-
Datentyp — IP-Adresse
-
Werttyp - Einzelwertig
Weitere Informationen finden Sie unter Steuern des Zugriffs auf VPC Endgeräte mithilfe von Endpunktrichtlinien im VPCAmazon-Benutzerhandbuch. Ähnlich wie bei der Verwendung als: SourceVpc müssen Sie Anfragen aws: CalledVia von verwenden aws:V iaAWSService oder zulassen AWS-Services mithilfe von Forward-Access-Sitzungen (FAS). Dies liegt daran, dass die Quell-IP der ersten Anfrage, die über einen VPC Endpunkt gestellt wurde, in FAS Anfragen nicht beibehalten wird.
Anmerkung
aws:VpcSourceIp
unterstützt IPv4 sowohl die IPv6 Adresse als auch den Bereich von IP-Adressen. Für eine Liste AWS-Services diese UnterstützungIPv6, siehe AWS-Services diese Unterstützung finden Sie IPv6 im VPCAmazon-Benutzerhandbuch.
Der aws:VpcSourceIp
Bedingungsschlüssel sollte immer in Verbindung mit den aws:SourceVpc
oder den aws:SourceVpce
Bedingungsschlüsseln verwendet werden. Andernfalls ist es möglich, VPC dass API Anrufe von einer unerwarteten Adresse, die dieselbe oder sich überschneidende IP verwendetCIDR, durch eine Richtlinie zugelassen werden. Dies kann passieren, weil die IP-Adressen CIDRs der beiden, die nichts miteinander zu tun haben, identisch sein oder sich überschneiden VPCs können. Stattdessen IDs sollten in der Richtlinie VPC IDs oder VPC Endpoints verwendet werden, da sie über global eindeutige Kennungen verfügen. Diese eindeutigen Kennungen stellen sicher, dass keine unerwarteten Ergebnisse auftreten.
Eigenschaften der Ressource
Verwenden Sie die folgenden Bedingungsschlüssel, um Details zu der 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 des angeforderten Ressourcenbesitzers zu vergleichen AWS-Konto ID mit dem Ressourcenkonto in der Richtlinie. 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
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
ruft einen Event-Bus in einem anderen Konto auf, wenn dieser Event-Bus vor dem 2. März 2023 als kontenübergreifendes EventBridge Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Erteilen von Berechtigungen zum Zulassen von Ereignissen aus anderen AWS Konten im EventBridge Amazon-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Amazon-Dienst
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
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 AWS-Konto ID für das Konto mit den in der Anfrage ausgewerteten Ressourcen.
Für die meisten Ressourcen in Ihrem Konto ARNenthält der die Besitzerkonto-ID für diese Ressource. Bei bestimmten Ressourcen, wie z. B. Amazon S3 S3-Buckets, enthält die Ressource ARN nicht die Konto-ID. Die folgenden zwei Beispiele zeigen den Unterschied zwischen einer Ressource mit einer Konto-ID in und einem Amazon S3 ARN ohne Konto-ID: ARN
-
arn:aws:iam::123456789012:role/AWSExampleRole
— IAM Rolle, die innerhalb des Kontos 123456789012 erstellt wurde und der sie gehört. -
arn:aws:s3:::amzn-s3-demo-bucket2
— Der Amazon S3 S3-Bucket wurde innerhalb des Kontos erstellt und gehört ihm111122223333
, wird nicht im angezeigtARN.
Verwenden Sie den AWS Konsole oder, oder APICLI, um all Ihre Ressourcen und die entsprechenden Ressourcen zu findenARNs.
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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service
:region
:account
:*
" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account
" ] } } } ] }
Diese Richtlinie verweigert den Zugriff auf alle Ressourcen für eine bestimmte AWS Dienst, sofern nicht anders angegeben AWS-Konto besitzt die Ressource.
Anmerkung
Etwas AWS-Services benötigt Zugriff auf AWS eigene Ressourcen, die in einem anderen gehostet werden AWS-Konto. Die Verwendung aws:ResourceAccount
in Ihren identitätsbasierten Richtlinien kann sich auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewiss AWS Dienstleistungen, wie AWS Data Exchange, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihres 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 Sie den Zugriff auf Amazon S3 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.
war: ResourceOrgPaths
Verwenden Sie diesen Schlüssel, um zu vergleichen AWS Organisationspfad für die Ressource, auf die zugegriffen wurde, zum Pfad in der Richtlinie. In einer Richtlinie stellt dieser Bedingungsschlüssel sicher, dass die Ressource einem Kontomitglied innerhalb des angegebenen Organisationsstamms oder der angegebenen Organisationseinheiten (OUs) in gehört AWS Organizations. Importieren in &S3; AWS Der Organisationspfad ist eine Textdarstellung der Struktur einer Organisationseinheit. Weitere Informationen zum Verwenden und Verstehen von Pfaden finden Sie unter Verstehe das AWS Organizations Pfad der Entität.
-
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
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
ruft einen Event-Bus in einem anderen Konto auf, wenn dieser Event-Bus vor dem 2. März 2023 als kontenübergreifendes EventBridge Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Erteilen von Berechtigungen zum Zulassen von Ereignissen aus anderen AWS Konten im EventBridge Amazon-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Amazon-Dienst
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
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 Mehrwertige Kontextschlüssel.
Zum Beispiel gibt die folgende Bedingung True
für Ressourcen zurück, die zur Organisation o-a1b2c3d4e5
gehören. Wenn Sie einen Platzhalter angeben, müssen Sie den StringLikeBedingungsoperator 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 entspricht Ressourcen, die Konten gehören, die der Organisationseinheit ou-ab12-11111111 oder einem beliebigen Kind zugeordnet sind. OUs
"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}
Die folgende Bedingung gilt True
für Ressourcen, die Konten gehören, die direkt mit der OU-ID verknüpft sind, aber nicht dem Kind. ou-ab12-22222222
OUs Im folgenden Beispiel wird der StringEqualsBedingungsoperator verwendet, um die exakte Übereinstimmungsanforderung für die OU-ID und nicht um eine Platzhalterübereinstimmung anzugeben.
"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Anmerkung
Etwas AWS-Services benötigen Zugriff auf AWS eigene Ressourcen, die in einem anderen gehostet werden AWS-Konto. Die Verwendung aws:ResourceOrgPaths
in Ihren identitätsbasierten Richtlinien kann sich auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewiss AWS Dienstleistungen, wie AWS Data Exchange, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihres 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 Sie den Zugriff auf Amazon S3 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.
als: ResourceOrg ID
Verwenden Sie diesen Schlüssel, um die ID der Organisation in zu vergleichen AWS Organizations, zu denen die angeforderte Ressource mit der in der Richtlinie angegebenen Kennung gehört.
-
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
-
-
Amazon Elastic Block Store – Alle Aktionen
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
ruft einen Event-Bus in einem anderen Konto auf, wenn dieser Event-Bus vor dem 2. März 2023 als kontenübergreifendes EventBridge Ziel konfiguriert wurde. Weitere Informationen finden Sie unter Erteilen von Berechtigungen zum Zulassen von Ereignissen aus anderen AWS Konten im EventBridge Amazon-Benutzerhandbuch.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Amazon-Dienst
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
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.
{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:
partition
:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }
Anmerkung
Etwas AWS-Services benötigen Zugriff auf AWS eigene Ressourcen, die in einem anderen gehostet werden AWS-Konto. Die Verwendung aws:ResourceOrgID
in Ihren identitätsbasierten Richtlinien kann sich auf die Fähigkeit Ihrer Identität auswirken, auf diese Ressourcen zuzugreifen.
Gewiss AWS Dienstleistungen, wie AWS Data Exchange, verlassen Sie sich auf den Zugriff auf Ressourcen außerhalb Ihres 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 Sie den Zugriff auf Amazon S3 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.
ResourceTagaws/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 ist wie folgt formatiert "aws:ResourceTag/
tag-key
":"tag-value
"tag-key
and tag-value
sind ein Tag-Schlüssel- und Wertepaar. Bei Tag-Schlüsseln und -Werten wird nicht zwischen Groß- und Kleinschreibung unterschieden. 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.
Beispiele für die Verwendung des aws:ResourceTag
Schlüssels zur Steuerung des Zugriffs auf IAM Ressourcen finden Sie unterSteuern 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 unterSteuern des Zugriffs auf AWS Ressourcen mithilfe von Tags.
Ein Tutorial zur Verwendung des aws:ResourceTag
Bedingungsschlüssels für die attributbasierte Zugriffskontrolle (ABAC) finden Sie unterIAMTutorial: Definieren Sie Berechtigungen für den Zugriff auf AWS Ressourcen auf der Grundlage von Tags.
Eigenschaften der Anfrage
Verwenden Sie die folgenden Bedingungsschlüssel, um Details zur Anfrage selbst und zum Inhalt der Anforderung mit den Anforderungseigenschaften zu vergleichen, die Sie in der Richtlinie angeben.
Inhalt
aws: CalledVia
Verwenden Sie diesen Schlüssel, um die Dienste in der Richtlinie mit den Diensten zu vergleichen, die Anfragen im Namen des IAM Prinzipals (Benutzer oder Rolle) gestellt haben. Wenn ein Principal eine Anfrage an einen stellt AWS Dienst, dieser Dienst verwendet möglicherweise die Anmeldeinformationen des Prinzipals, um nachfolgende Anfragen an andere Dienste zu stellen. Der Schlüssel aws:CalledVia
enthält eine geordnete Liste aller Services in der Kette, die im Auftrag des Auftraggebers Anforderungen ausgegeben haben.
Sie können beispielsweise Folgendes verwenden AWS CloudFormation um aus einer Amazon DynamoDB-Tabelle zu lesen und zu schreiben. DynamoDB verwendet dann die Verschlüsselung von AWS Key Management Service (AWS KMS).
-
Verfügbarkeit — Dieser Schlüssel ist in der Anforderung enthalten, wenn ein unterstützender Dienst die Anmeldeinformationen eines IAM Prinzipals
aws:CalledVia
verwendet, um eine Anfrage an einen anderen Dienst zu stellen. Dieser Schlüssel ist nicht vorhanden, wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt. -
Datentyp — Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Um den aws:CalledVia
Bedingungsschlüssel in einer Richtlinie verwenden zu können, müssen Sie den Dienstprinzipalen angeben, ob sie zulassen oder verweigern sollen AWS Serviceanfragen. AWS unterstützt die Verwendung der folgenden Dienstprinzipale mitaws:CalledVia
.
Dienstauftraggeber |
---|
aoss.amazonaws.com |
athena.amazonaws.com |
backup.amazonaws.com |
cloud9.amazonaws.com |
cloudformation.amazonaws.com |
databrew.amazonaws.com |
dataexchange.amazonaws.com |
dynamodb.amazonaws.com |
imagebuilder.amazonaws.com |
kms.amazonaws.com |
mgn.amazonaws.com |
nimble.amazonaws.com |
omics.amazonaws.com |
ram.amazonaws.com |
robomaker.amazonaws.com |
servicecatalog-appregistry.amazonaws.com |
sqlworkbench.amazonaws.com |
ssm-guiconnect.amazonaws.com |
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:V iaAWSService
. Dieser Bedingungsschlüssel unterstützt AWS Dienstleistungen.
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 stellt Benutzer 1 eine Anfrage an AWS CloudFormation, das DynamoDB aufruft, das ruft AWS KMS. Dies sind drei separate Anfragen. Der letzte Anruf an AWS KMS wird von Benutzer 1 durchgeführt über AWS CloudFormation und dann DynamoDB.
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 die Verwaltung von AWS KMS Schlüsselnamemy-example-key
, aber nur, wenn DynamoDB einer der anfordernden Dienste ist. Der Bedingungsoperator ForAnyValue:StringEquals
stellt sicher, dass DynamoDB einer der aufrufenden Services ist. Wenn der Principal den Anruf tätigt AWS KMS
direkt kehrt der Zustand zurück false
und die Anfrage ist gemäß dieser Richtlinie nicht zulässig.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }
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. Die folgende Richtlinie ermöglicht beispielsweise die Verwaltung des my-example-key
in AWS KMS. Diese AWS KMS Operationen sind nur zulässig, wenn mehrere Anfragen in der Kette enthalten waren. Die erste Anfrage muss gestellt werden über AWS CloudFormation und das letzte über DynamoDB. Wenn andere Services mitten in der Kette Anforderungen ausgeben, ist die Operation trotzdem zulässig.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }
Die aws:CalledViaLast
Schlüssel aws:CalledViaFirst
und sind in der Anfrage enthalten, wenn ein Dienst die Anmeldeinformationen eines IAM Prinzipals verwendet, um einen anderen Dienst aufzurufen. Sie geben die ersten und letzten Services an, die in der Kette von Anforderungen Aufrufe durchgeführt haben. Nehmen wir zum Beispiel an, dass AWS CloudFormation ruft einen anderen Dienst namens aufX Service
, der DynamoDB aufruft, der dann aufruft AWS KMS. Der letzte Anruf an AWS KMS wird durchgeführt von User 1
via AWS CloudFormationX Service
, dann und dann DynamoDB. Es wurde zuerst aufgerufen über AWS CloudFormation und zuletzt über DynamoDB aufgerufen.
aws: CalledViaFirst
Verwenden Sie diesen Schlüssel, um die Dienste in der Richtlinie mit dem ersten Dienst zu vergleichen, der eine Anfrage im Namen des IAM Prinzipals (Benutzer oder Rolle) gestellt hat. Weitere Informationen finden Sie unter aws:CalledVia
.
-
Verfügbarkeit — Dieser Schlüssel ist in der Anfrage enthalten, wenn ein Dienst die Anmeldeinformationen eines IAM Prinzipals verwendet, um mindestens eine weitere Anfrage an einen anderen Dienst zu stellen. Dieser Schlüssel ist nicht vorhanden, wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
als: CalledViaLast
Verwenden Sie diesen Schlüssel, um die Dienste in der Richtlinie mit dem letzten Dienst zu vergleichen, der eine Anfrage im Namen des IAM Prinzipals (Benutzer oder Rolle) gestellt hat. Weitere Informationen finden Sie unter aws:CalledVia
.
-
Verfügbarkeit — Dieser Schlüssel ist in der Anfrage enthalten, wenn ein Dienst die Anmeldeinformationen eines IAM Prinzipals verwendet, um mindestens eine weitere Anfrage an einen anderen Dienst zu stellen. Dieser Schlüssel ist nicht vorhanden, wenn der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen. Dieser Schlüssel ist auch nicht vorhanden, wenn der Auftraggeber den Aufruf direkt durchführt.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
aws:V iaAWSService
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob ein AWS-Service stellt in Ihrem Namen mithilfe von Forward Access Sessions (FAS) eine Anfrage an einen anderen Dienst.
Der Anforderungskontextschlüssel wird zurückgegebentrue
, wenn ein Dienst Forward-Access-Sitzungen verwendet, um eine Anfrage im Namen des ursprünglichen IAM Prinzipals zu stellen. Der Kontextschlüssel gibt zurück, false
ob der Dienst eine Servicerolle oder eine dienstbezogene Rolle verwendet, um im Namen des Prinzipals einen Anruf zu tätigen. 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.
-
Werttyp - Einzelwertig
war: 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
als: 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 Wert des aws:referer
Anforderungskontextes 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 Seite URL der Webseite, auf der der Link ausgewählt wurde.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn die Anfrage an AWS Die Ressource wurde durch einen Link von einer Webseite URL im Browser aufgerufen. Dieser Schlüssel ist nicht für programmatische Anfragen enthalten, da er keinen Browserlink für den Zugriff auf die AWS Ressource.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Sie können beispielsweise mit einem URL oder einem direkten API Aufruf direkt auf ein Amazon S3 S3-Objekt zugreifen. Weitere Informationen finden Sie unter Amazon S3 API S3-Operationen direkt über einen Webbrowser. Wenn Sie von einem aus auf einer Webseite vorhandenen auf ein URL Amazon S3 S3-Objekt zugreifen, wird das URL der Quellwebseite in verwendetaws:referer
. Wenn Sie auf ein Amazon S3 S3-Objekt zugreifen, indem Sie das URL in Ihren Browser eingeben, aws:referer
ist nicht vorhanden. Wenn Sie das API direkt aufrufen, aws:referer
ist es 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. aws:referer
Sollte daher nicht verwendet werden, um zu verhindern, dass Unbefugte direkt AWS Anfragen. 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.
als: RequestedRegion
Verwenden Sie diesen Schlüssel, um zu vergleichen AWS Region, die in der Anfrage aufgerufen wurde, mit der Region, die Sie in der Richtlinie angeben. Mit diesem globalen Bedingungsschlüssel können Sie steuern, welche Regionen angefordert werden können. Um die anzusehen AWS Die Regionen der einzelnen Dienste finden Sie unter Dienstendpunkte und Kontingente in der Allgemeine Amazon Web Services-Referenz.
-
-Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Einige globale Dienste, wie z. B.IAM, haben einen einzigen Endpunkt. Da sich dieser Endpunkt physisch in der Region USA Ost (Nord-Virginia) befindet, werden IAM Anrufe immer in die Region us-east-1 getätigt. Wenn Sie beispielsweise eine Richtlinie erstellen, die den Zugriff auf alle Dienste verweigert, wenn die angeforderte Region nicht US-West-2 ist, schlagen IAM Anrufe immer fehl. Ein Beispiel dafür, wie Sie dieses Problem umgehen können, finden Sie unter NotAction Mit Verweigern.
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 Niederlassungen, die sich über mehrere Regionen erstrecken.
-
Sie können
s3:PutBucketReplication
in 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:CreateBucket
aufrufen, 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 zu beschränken AWS Dienste innerhalb einer bestimmten Gruppe von Regionen. Die folgende Richtlinie ermöglicht es einem Benutzer beispielsweise, alle EC2 Amazon-Instances in der AWS Management Console. Es erlaubt ihnen jedoch nur, Änderungen an Instanzen in Irland (eu-west-1), London (eu-west-2) oder Paris (eu-west-3) vorzunehmen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }
aws/tag-key RequestTag
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 ist wie folgt formatiert "aws:RequestTag/
tag-key
":"tag-value
"tag-key
and tag-value
sind ein Tag-Schlüssel- und Wertepaar. Bei Tag-Schlüsseln und -Werten wird nicht zwischen Groß- und Kleinschreibung unterschieden. 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.
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.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }
als: 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 ist wie folgt formatiert "aws:TagKeys":"
tag-key
"tag-key
ist eine Liste von Tag-Schlüsseln ohne Werte (zum Beispiel["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 Mehrwertige Kontextschlüssel.
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. Um beispielsweise Tags einzuschränken, wenn jemand einen EC2 Amazon-Snapshot erstellt, müssen Sie die ec2:CreateSnapshot
Erstellungsaktion und die ec2:CreateTags
Tagging-Aktion in die Richtlinie aufnehmen. Eine Richtlinie für dieses Szenario, das verwendetaws:TagKeys
, finden Sie unter Erstellen eines Snapshots mit Tags im EC2Amazon-Benutzerhandbuch.
als: SecureTransport
Verwenden Sie diesen Schlüssel, um zu überprüfen, ob die Anfrage mit gesendet wurdeTLS. Der Anforderungskontext gibt true
oder false
zurück. In einer Richtlinie können Sie bestimmte Aktionen nur zulassen, wenn die Anfrage über gesendet wirdTLS.
-
-Verfügbarkeit – Dieser Schlüssel ist immer im Anforderungskontext enthalten.
-
Datentyp — Boolean
-
Werttyp - Einzelwertig
war: SourceArn
Verwenden Sie diesen Schlüssel, um den Amazon-Ressourcennamen (ARN) der Ressource, die eine service-to-service Anfrage stelltARN, mit dem zu vergleichen, den Sie in der Richtlinie angeben, aber nur, wenn die Anfrage von einem AWS
Service-Principal. Wenn die Quelle die Konto-ID ARN enthält, ist die Verwendung aws:SourceAccount
mit nicht erforderlichaws:SourceArn
.
Dieser Schlüssel funktioniert nicht mit dem ARN des Prinzipals, der die Anfrage stellt. Nutzen Sie stattdessen war: PrincipalArn
.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Anruf an Ihre Ressource direkt von einem erfolgt AWS Service Principal im Namen einer Ressource, für die die Konfiguration die service-to-service Anfrage ausgelöst hat. Der aufrufende Dienst übergibt den Wert ARN der ursprünglichen Ressource an den aufgerufenen Dienst.
Die folgenden Service-Integrationen unterstützen diesen globalen Bedingungsschlüssel nicht:
Aufrufender Service (Service-Prinzipal) Aufgerufener Service (ressourcenbasierte Richtlinie) Beschreibung logdelivery.elb.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket logdelivery.elasticloadbalancing.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket Anmerkung
Nicht alle Serviceintegrationen mit AWS Security Token Service (AWS STS) und AWS Key Management Service (AWS KMS) werden unterstützt. Weitere Informationen finden Sie in der Dokumentation des aufrufenden Service. Verwendung von
aws:SourceArn
in KMS wichtigen Richtlinien für Schlüssel, die verwendet werden von AWS-Services Die Verwendung von KMS Schlüsselzuweisungen kann zu unerwartetem Verhalten führen. -
Datentyp —ARN, Zeichenfolge
AWS empfiehlt, beim Vergleichen ARNOperatoren anstelle von Zeichenkettenoperatoren zu verwendenARNs.
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um Folgendes zu verhindern AWS Der Dienst wird nicht als verwirrter Stellvertreter bei Transaktionen zwischen Diensten verwendet. Verwenden Sie diesen Schlüssel nur in ressourcenbasierten Richtlinien, bei denen es sich um Principal
AWS-Service Schulleiter. Setzt den Wert dieses Bedingungsschlüssels auf den Wert ARN der Ressource in der Anfrage. Wenn beispielsweise ein Amazon S3 S3-Bucket-Update eine Veröffentlichung eines SNS Amazon-Themas auslöst, ruft der Amazon S3-Service den sns:Publish
API Vorgang auf. Legen Sie in der Themenrichtlinie, die den sns:Publish
Vorgang zulässt, den Wert des Bedingungsschlüssels auf den Wert ARN des Amazon S3 S3-Buckets fest. Informationen darüber, wie und wann dieser Bedingungsschlüssel empfohlen wird, finden Sie in der Dokumentation für AWS Dienste, die Sie verwenden.
als: SourceAccount
Verwenden Sie diesen Schlüssel, um die Konto-ID der Ressource, die eine service-to-service Anfrage stellt, mit der Konto-ID zu vergleichen, die Sie in der Richtlinie angeben, aber nur, wenn die Anfrage von einem AWS Dienstprinzipal.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Aufruf Ihrer Ressource direkt von einem AWS Service Principal im Namen einer Ressource, 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.
Die folgenden Service-Integrationen unterstützen diesen globalen Bedingungsschlüssel nicht:
Aufrufender Service (Service-Prinzipal) Aufgerufener Service (ressourcenbasierte Richtlinie) Beschreibung logdelivery.elb.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket logdelivery.elasticloadbalancing.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket Anmerkung
Nicht alle Serviceintegrationen mit AWS Security Token Service (AWS STS) und AWS Key Management Service (AWS KMS) werden unterstützt. Weitere Informationen finden Sie in der Dokumentation des aufrufenden Service. Verwendung von
aws:SourceAccount
in KMS wichtigen Richtlinien für Schlüssel, die verwendet werden von AWS-Services Die Verwendung von KMS Schlüsselzuweisungen kann zu unerwartetem Verhalten führen. -
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um Folgendes zu verhindern AWS Der Dienst wird nicht als verwirrter Stellvertreter bei Transaktionen zwischen Diensten verwendet. Verwenden Sie diesen Schlüssel nur in ressourcenbasierten Richtlinien, bei denen es sich um Principal
AWS-Service Schulleiter. Legen Sie den Wert dieses Bedingungsschlüssels auf die Konto-ID der Ressource in der Anforderung fest. Wenn beispielsweise ein Amazon S3 S3-Bucket-Update eine Veröffentlichung eines SNS Amazon-Themas auslöst, ruft der Amazon S3-Service den sns:Publish
API Vorgang 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. Informationen darüber, wie und wann diese Bedingung Keys empfohlen wird, finden Sie in der Dokumentation für AWS Dienste, die Sie verwenden.
als: SourceOrgPaths
Verwenden Sie diesen Schlüssel, um zu vergleichen AWS Organizations Pfad der Ressource, die eine service-to-service Anfrage stellt, mit dem Organisationspfad, den Sie in der Richtlinie angeben, aber nur, wenn die Anfrage von einem AWS Dienstprinzipal. Ein -Organizations-Pfad ist eine Textdarstellung der Struktur einer Organizations-Entität. Weitere Informationen zur Verwendung und zum Verständnis von Pfaden finden Sie unter Grundlegendes zu AWS Organizations Entitätspfad.
-
Verfügbarkeit — Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Aufruf Ihrer Ressource direkt von einem erfolgt AWS Service Principal im Namen einer Ressource, die einem Account gehört, der Mitglied einer Organisation ist. Der aufrufende Service übergibt den Organisations-Pfad der ursprünglichen Ressource an den aufgerufenen Service.
Die folgenden Service-Integrationen unterstützen diesen globalen Bedingungsschlüssel nicht:
Aufrufender Service (Service-Prinzipal) Aufgerufener Service (ressourcenbasierte Richtlinie) Beschreibung logdelivery.elb.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket logdelivery.elasticloadbalancing.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket Alle Service-Prinzipale Amazon-Lex-Bot Erlauben AWS-Services um den Amazon Lex Lex-Bot zu verwenden Anmerkung
Nicht alle Serviceintegrationen mit AWS Security Token Service (AWS STS) und AWS Key Management Service (AWS KMS) werden unterstützt. Weitere Informationen finden Sie in der Dokumentation des aufrufenden Service. Verwendung von
aws:SourceOrgPaths
in KMS wichtigen Richtlinien für Schlüssel, die verwendet werden von AWS-Services Die Verwendung von KMS Schlüsselzuweisungen kann zu unerwartetem Verhalten führen. -
Datentyp — Zeichenfolge (Liste)
-
Werttyp - Mehrwertig
Sie können diesen Bedingungsschlüssel verwenden, um Folgendes zu verhindern AWS Der Dienst wird nicht als verwirrter Stellvertreter bei Transaktionen zwischen Diensten verwendet. Verwenden Sie diesen Schlüssel nur in ressourcenbasierten Richtlinien, bei denen es sich um Principal
AWS-Service Schulleiter. Legen Sie den Wert dieses Bedingungsschlüssels auf den Organisations-Pfad der Ressource in der Anforderung fest. Wenn beispielsweise ein Amazon S3 S3-Bucket-Update eine Veröffentlichung eines SNS Amazon-Themas auslöst, ruft der Amazon S3-Service den sns:Publish
API Vorgang auf. Setzen Sie in der Themenrichtlinie, die den Vorgang sns:Publish
zulässt, den Wert des Bedingungsschlüssels auf den Organisations-Pfad des Amazon-S3-Buckets. Informationen darüber, wie und wann dieser Bedingungsschlüssel empfohlen wird, finden Sie in der Dokumentation für AWS Dienste, die Sie verwenden.
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 Mehrwertige Kontextschlüssel.
aws: SourceOrg ID
Verwenden Sie diesen Schlüssel, um die Organisations-ID der Ressource, die eine service-to-service Anfrage stellt, mit der Organisations-ID zu vergleichen, die Sie in der Richtlinie angeben. Dies gilt jedoch nur, wenn die Anfrage von einem AWS Dienstprinzipal. Wenn Sie Konten zu einer Organisation hinzufügen und entfernen in AWS Organizations, Richtlinien, die den aws:SourceOrgID
Schlüssel enthalten, schließen 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 erfolgt AWS Service Principal im Namen einer Ressource, die einem Account gehört, der Mitglied einer Organisation ist. Der aufrufende Service übergibt den ARN der ursprünglichen Ressource an den aufgerufenen Service.
Die folgenden Service-Integrationen unterstützen diesen globalen Bedingungsschlüssel nicht:
Aufrufender Service (Service-Prinzipal) Aufgerufener Service (ressourcenbasierte Richtlinie) Beschreibung logdelivery.elb.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket logdelivery.elasticloadbalancing.amazonaws.com Amazon-S3-Bucket Aktivieren Sie die Elastic-Load-Balancing-Zugriffsprotokollierung im Amazon-S3-Bucket Alle Service-Prinzipale Amazon-Lex-Bot Erlauben AWS-Services um den Amazon Lex Lex-Bot zu verwenden Anmerkung
Nicht alle Serviceintegrationen mit AWS Security Token Service (AWS STS) und AWS Key Management Service (AWS KMS) werden unterstützt. Weitere Informationen finden Sie in der Dokumentation des aufrufenden Service. Verwendung von
aws:SourceOrgID
in KMS wichtigen Richtlinien für Schlüssel, die verwendet werden von AWS-Services Die Verwendung von KMS Schlüsselzuweisungen kann zu unerwartetem Verhalten führen. -
Datentyp — Zeichenfolge
-
Werttyp - Einzelwertig
Sie können diesen Bedingungsschlüssel verwenden, um Folgendes zu verhindern AWS Der Dienst wird nicht als verwirrter Stellvertreter bei Transaktionen zwischen Diensten verwendet. Verwenden Sie diesen Schlüssel nur in ressourcenbasierten Richtlinien, bei denen es sich um Principal
AWS-Service Schulleiter. Legen Sie den Wert dieses Bedingungsschlüssels auf die Organisations-ID der Ressource in der Anforderung fest. Wenn beispielsweise ein Amazon S3 S3-Bucket-Update eine Veröffentlichung eines SNS Amazon-Themas auslöst, ruft der Amazon S3-Service den sns:Publish
API Vorgang auf. Setzen Sie in der Themenrichtlinie, die den Vorgang sns:Publish
erlaubt, den Wert des Bedingungsschlüssels auf die Organisations-ID des Amazon-S3-Buckets. Informationen darüber, wie und wann dieser Bedingungsschlüssel empfohlen wird, finden Sie in der Dokumentation für AWS Dienste, die Sie verwenden.
als: 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 aws:UserAgent
Wert vom Aufrufer in einem HTTP Header bereitgestellt wird, können Unbefugte modifizierte oder benutzerdefinierte Browser verwenden, um aws:UserAgent
einen beliebigen Wert bereitzustellen. Daher aws:UserAgent
sollte es nicht verwendet werden, um zu verhindern, dass Unbefugte direkt AWS Anfragen. 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 SAMLbasierte Verbundbedingungsschlüssel und dienstübergreifende Bedingungsschlüssel für den OIDCVerbund. Diese Schlüssel sind verfügbar, wenn ein Benutzer, der im Verbund verwendet wurde, folgende Aufgaben ausführt SAML AWS Operationen in anderen Diensten.