Richtlinienanatomie
Richtlinien halten sich an eine bestimmte Struktur, enthalten Elemente und müssen bestimmte Anforderungen erfüllen.
Richtlinienstruktur
Bei jeder Sendeautorisierungsrichtlinie handelt es sich um ein JSON-Dokument, das einer Identität angefügt wurde. Jede Richtlinie enthält folgende Abschnitte:
-
Richtlinienweite Informationen oben im Dokument
-
Eine oder mehrere einzelne Anweisungen, die jeweils eine Gruppe von Berechtigungen beschreiben
Die folgende Beispielrichtlinie erteilt der AWS-Konto-ID 123456789012 die Berechtigung, von der verifizierten Domäne example.com E-Mails zu senden.
{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAccount", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendTemplatedEmail", "ses:SendRawEmail", "ses:SendBulkTemplatedEmail" ] } ] }
Sie finden weitere Beispiele von Sendeautorisierungsrichtlinien unter Beispiele für Richtlinien.
Richtlinienelemente
Dieser Abschnitt beschreibt die Elemente, aus denen sich die Sendeautorisierungsrichtlinien zusammensetzen. Zunächst beschreiben wir richtlinienweite Elemente und anschließend Elemente, die nur auf die Anweisung zutreffen, in der sie enthalten sind. Im Anschluss daran besprechen wir, wie Sie Ihren Anweisungen Bedingungen hinzufügen.
Ausführlichere Informationen über die Syntax der Elemente finden Sie unter Grammatik von IAM-Richtlinien im IAM Benutzerhandbuch.
Richtlinienweite Informationen
Es gibt zwei richtlinienweite Elemente: Id
und Version
. Die folgende Tabelle enthält Informationen über diese Elemente.
Name |
Beschreibung |
Erforderlich |
Zulässige Werte |
---|---|---|---|
|
Kennzeichnet die Richtlinie eindeutig. |
Nein |
Jede Zeichenfolge |
|
Gibt die Sprachversion des Richtlinienzugriffs an. |
Nein |
Jede Zeichenfolge. Als bewährte Methode empfehlen wir, dass Sie dieses Feld mit dem Wert "2012-10-17" einschließen. |
Richtlinienspezifische Anweisungen
Sendeautorisierungsrichtlinien erfordern mindestens eine Anweisung. Jede Anweisung kann die in der folgenden Tabelle beschriebenen Elementen enthalten.
Name |
Beschreibung |
Erforderlich |
Zulässige Werte |
---|---|---|---|
|
Kennzeichnet die Anweisung eindeutig. |
Nein |
Jede Zeichenfolge. |
|
Gibt das Ergebnis an, das die Richtlinienanweisung zum Bewertungszeitpunkt zurückgeben soll. |
Ja |
"Allow" oder "Deny". |
|
Gibt die Identität an, auf die die Richtlinie zutrifft. Dies ist die E-Mail-Adresse oder Domäne, für die der Identitätsbesitzer dem stellvertretenden Sender die Berechtigung erteilt. |
Ja |
Der Amazon-Ressourcenname (ARN) der E-Mail-Identität. |
|
Gibt das AWS-Konto-Konto, den IAM-Benutzer oder den AWS-Service an, auf das/den sich die Berechtigung in der Anweisung bezieht. |
Ja |
Eine gültige AWS-Konto-ID, ein gültiger IAM-Benutzer-ARN oder AWS-Service. AWS-Konto IDs und IAM-Benutzer-ARNs werden mit Beispiele für das Format des IAM-Benutzer-ARNs finden Sie unter AWS-Generalreferenzen. |
|
Gibt die für das Senden der E-Mail verantwortliche Aktion an, für die die Anweisung gilt. |
Ja |
"ses:SendEmail", "ses:SendRawEmail", "ses:SendTemplatedEmail", "ses:SendBulkTemplatedEmail" Sie können eine oder mehrere dieser Operationen angeben. Sie können auch "ses: Send*" angeben, um alle diese Operationen zu umfassen. Wenn der stellvertretende Sender beabsichtigt, E-Mails über die SMTP-Schnittstelle zu senden, müssen Sie "ses: SendRawEmail" angeben oder "ses: Send*" verwenden. |
|
Gibt alle Einschränkungen oder Details über die Berechtigung an. |
Nein |
Weitere Informationen über Bedingungen finden Sie im Anschluss an diese Tabelle. |
Bedingungen
Bei einer Bedingung handelt es sich um jegliche Einschränkung, die die Berechtigung in der Anweisung betrifft. Der Teil der Anweisung, der die Bedingungen festlegt, kann der ausführlichste aller Bestandteile sein. Ein Schlüssel ist die Besonderheit, die die Grundlage für die Zugriffsbeschränkung, z. B. das Datum und die Uhrzeit der Anfrage, darstellt.
Sie verwenden Bedingungen und Schlüssel zusammen, um die Einschränkung auszudrücken. Wenn Sie beispielsweise den stellvertretenden Sender davon abhalten möchten, nach dem 30. Juli 2019 in Ihrem Namen Anfragen an Amazon SES zu stellen, verwenden Sie die Bedingung namens DateLessThan
. Sie verwenden den Schlüssel aws:CurrentTime
und legen den Wert mit 2019-07-30T00:00:00Z
fest.
Sie können einen der AWS-weiten Schlüssel verwenden, die unter Verfügbare Schlüssel im IAM-Benutzerhandbuch aufgeführt sind, oder Sie können einen der folgenden Amazon-SES-spezifischen Schlüssel verwenden:
Bedingungsschlüssel |
Beschreibung |
---|---|
|
Beschränkt die Empfängeradressen, einschließlich der Adressen "To", "CC" und "BCC". |
|
Beschränkt die "From"-Adresse. |
|
Beschränkt den Inhalt der Zeichenfolge, die als der "From"-Anzeigename verwendet wird (manchmal auch "Friendly from" genannt). So lautet beispielsweise der Anzeigename für "John Doe <johndoe@example.com>" John Doe. |
|
Beschränkt die "Return Path"-Adresse. Dies ist die Adresse, an die Unzustellbarkeitsnachrichten und Beschwerden an Sie anhand von Feedback-E-Mails weitergeleitet werden können. Weitere Informationen zum Weiterleiten von Feedback per E-Mail finden Sie unter Verwenden von Benachrichtigungen für den Amazon-SES-E-Mail-Empfang. |
Sie können die Bedingungen StringEquals
und StringLike
mit Amazon-SES-Schlüsseln verwenden. Für diese Bedingungen wird zur Übereinstimmung der Zeichenfolge die Groß-/Kleinschreibung beachtet. Für StringLike
können die Werte einen Mehrzeichenplatzhalter (*) oder einen Einzelzeichenplatzhalter (?) an einer beliebigen Stelle in der Zeichenfolge enthalten. Die folgende Bedingung gibt beispielsweise an, dass der stellvertretende Sender nur von einer "From" -Adresse senden kann, die mit der Fakturierung beginnt und mit @example.comendet:
"Condition": { "StringLike": { "ses:FromAddress": "invoicing*@example.com" } }
Sie können auch die Bedingung StringNotLike
verwenden, um zu verhindern, dass stellvertretende Sender E-Mails von bestimmten E-Mail-Adressen senden. Beispielsweise können Sie das Senden von E-Mails von admin@example.com sowie von ähnlichen Adressen wie "admin"@example.com, admin+1@example.com oder sender@admin.example.com untersagen, indem Sie die folgende Bedingung in Ihre Richtlinienanweisung aufnehmen:
"Condition": { "StringNotLike": { "ses:FromAddress": "*admin*example.com" } }
Weitere Informationen zum Angeben von Bedingungen in einer Richtliniensyntax finden Sie im Thema IAM;-JSON-Richtlinienelemente: Bedingung im IAM Benutzerhandbuch.
Richtlinienanforderungen
Richtlinien müssen alle folgenden Anforderungen erfüllen:
-
Jede Richtlinie muss mindestens eine Anweisung enthalten.
-
Jede Richtlinie muss mindestens über einen gültigen Prinzipal verfügen.
-
Jede Richtlinie muss eine Ressource angeben und diese Ressource muss der ARN der Identität sein, der die Richtlinie zugeordnet ist.
-
Identitätsbesitzer können jeder eindeutigen Identität bis zu 20 Richtlinien zuordnen.
-
Richtlinien dürfen die Größe von 4 KB nicht überschreiten.
-
Richtliniennamen dürfen 64 Zeichen nicht überschreiten. Darüber hinaus dürfen sie nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.