Identity and Access Management in Amazon S3 - Amazon Simple Email Service

Identity and Access Management in Amazon S3

Sie können AWS Identity and Access Management (IAM) mit Amazon Simple Email Service (Amazon SES) verwenden, um anzugeben, welche SES-API-Aktionen ein IAM-Benutzer, eine Gruppe oder eine Rolle ausführen kann. (In diesem Thema bezeichnen wir diese Entitäten zusammen als Benutzer.) Sie können auch steuern, welche E-Mail-Adressen der Benutzer für die Adressen "From", Empfänger und "Return-Path" der E-Mails verwenden kann.

Sie können beispielsweise eine IAM-Richtlinie erstellen, die Benutzern in Ihrer Organisation ermöglicht, E-Mails zu senden, aber keine administrativen Aktionen, wie die Überprüfung von Sendestatistiken, durchzuführen. Ein weiteres Beispiel: Sie können eine Richtlinie schreiben, mit der ein Benutzer E-Mails über SES von Ihrem Konto senden kann, aber nur, wenn eine bestimmte "From"-Adresse verwendet wird.

Zur Verwendung von IAM definieren Sie eine IAM-Richtlinie, also ein Dokument, das explizit Berechtigungen definiert, und die Richtlinie einem Benutzer zuweist. Weitere Informationen zum Erstellen von IAM-Richtlinien finden Sie im IAM-Benutzerhandbuch. Abgesehen vom Anwenden der Einschränkungen, die Sie in Ihrer Richtlinie festlegen, gibt es keine Änderungen daran, wie Benutzer mit SES interagieren oder darin, wie SES Anfragen ausführt.

Anmerkung
  • Befindet sich Ihr Konto in der SES-Sandbox, verhindern seine Einschränkungen die Implementierung einiger dieser Richtlinien – siehe Verlassen der Sandbox.

  • Sie können auch mithilfe von Sendeautorisierungsrichtlinien den Zugriff auf SES steuern. Während IAM-Richtlinien regeln, welche Aufgaben einzelne IAM-Benutzer ausführen können, beschränken Sendeautorisierungsrichtlinien, wie individuell verifizierte Identitäten verwendet werden können. Darüber hinaus können nur Sendeautorisierungsrichtlinien kontenübergreifenden Zugriff gewähren. Weitere Informationen zur Sendeautorisierung finden Sie unter Verwenden der Sendeautorisierung mit Amazon SES.

Wenn Sie erfahren möchten, wie SES-SMTP-Anmeldeinformationen für einen bestehenden IAM-Benutzer generiert werden, lesen Sie nach unter Abrufen Ihrer Amazon-SES-SMTP-Anmeldeinformationen.

Erstellen von IAM-Richtlinien für den Zugriff auf SES

In diesem Abschnitt wird erklärt, wie Sie IAM-Richtlinien speziell mit SES verwenden können. Weitere allgemeine Informationen zum Erstellen von IAM-Richtlinien finden Sie im IAM-Benutzerhandbuch.

Es gibt drei Gründe, IAM ggf. mit SES zu verwenden:

  • Um den E-Mail-Versand einzuschränken.

  • Um die Adressen "From", Empfänger und "Return-Path" der E-Mails zu beschränken, die der Benutzer sendet.

  • Um allgemeine Aspekte der API-Nutzung zu steuern, wie den Zeitraum, in dem ein Benutzer die APIs aufrufen darf, zu deren Verwendung er autorisiert ist.

Beschränken der Aktion

Um zu steuern, welche SES-Aktionen ein Benutzer durchführen kann, verwenden Sie das Action-Element einer IAM-Richtlinie. Sie können das Action-Element auf eine beliebige SES-API-Aktion festlegen, indem Sie dem API-Namen die kleingeschriebene Zeichenfolge ses: voranstellen. Sie können beispielsweise Action auf ses:SendEmail, ses:GetSendStatistics oder ses:* festlegen (für alle Aktionen).

Geben Sie dann je nach Action das Resource-Element wie folgt an:

Wenn das Action-Element nur Zugriff auf APIs zum Senden von E-Mails erlaubt (d. h. ses:SendEmail und/oder ses:SendRawEmail):

  • Um dem Benutzer das Senden von jeder Identität in Ihrem AWS-Konto-Konto zu erlauben, setzen Sie Resource auf *.

  • Um die Identitäten einzuschränken, von denen ein Benutzer senden darf, legen Sie Resource auf die ARNs der Identitäten fest, deren Verwendung Sie dem Benutzer gestatten.

Wenn das Action-Element den Zugriff auf alle APIs erlaubt:

  • Wenn Sie die Identitäten, von denen der Benutzer senden kann, nicht beschränken möchten, setzen Sie Resource auf *.

  • Wenn Sie die Identitäten, von denen ein Benutzer senden darf, beschränken möchten, müssen Sie zwei Richtlinien (oder zwei Anweisungen innerhalb einer Richtlinie) erstellen:

    • Eine, in der Action auf eine explizite Liste der erlaubten APIs festgelegt ist, die keine E-Mails senden, und Resource auf * gesetzt ist.

    • Eine, in der Action auf eine der APIs festgelegt ist, die E-Mails senden (ses:SendEmail und/oder ses:SendRawEmail), und Resource auf den/die ARN(s) der Identitäten gesetzt ist, die die Benutzer verwenden dürfen.

Eine Liste der verfügbaren SES-Aktionen finden Sie in der Amazon Simple Email Service API Reference. Wenn der IAM-Benutzer die SMTP-Schnittstelle verwenden möchte, müssen Sie den Zugriff auf ses:SendRawEmail auf ein Minimum setzen.

Beschränken von E-Mail-Adressen

Wenn Sie den Benutzer auf bestimmte E-Mail-Adressen beschränken möchten, können Sie einen Condition-Block verwenden. Im Condition-Block geben Sie Bedingungen mithilfe von Bedingungsschlüsseln an, wie im IAM-Benutzerhandbuch beschrieben. Durch die Nutzung von Bedingungsschlüsseln können Sie die folgenden E-Mail-Adressen steuern:

Anmerkung

Diese Bedingungsschlüssel für E-Mail-Adressen gelten nur für die APIs in der folgenden Tabelle.

Bedingungsschlüssel

Beschreibung

API

ses:Recipients

Beschränkt die Empfängeradressen, einschließlich der Adressen "To", "CC" und "BCC".

SendEmail, SendRawEmail

ses:FromAddress

Beschränkt die "From"-Adresse.

SendEmail, SendRawEmail, SendBounce

ses:FromDisplayName

Beschränkt die "From"-Adresse, die als Anzeigename verwendet wird.

SendEmail, SendRawEmail

ses:FeedbackAddress

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.

SendEmail, SendRawEmail

Einschränken durch die SES-API-Version

Durch die Verwendung des ses:ApiVersion-Schlüssels in Bedingungen können Sie den Zugriff auf SES basierend auf der Version der SES API einschränken.

Anmerkung

Die SES-SMTP-Schnittstelle verwendet SES API Version 2 von ses:SendRawEmail.

Beschränken der allgemeinen API-Nutzung

Durch die Verwendung von AWS-weiten Schlüsseln in Bedingungen können Sie den Zugriff auf SES basierend auf Aspekten beschränken, wie z. B. das Datum und die Uhrzeit, zu dem Benutzer auf APIs zugreifen können. In SES werden nur die folgenden AWS-weiten Richtlinienschlüssel implementiert:

  • aws:CurrentTime

  • aws:EpochTime

  • aws:SecureTransport

  • aws:SourceIp

  • aws:UserAgent

Weitere Informationen zu diesen Schlüsseln finden Sie im IAM-Benutzerhandbuch.

Beispiel-IAM-Richtlinien für SES

In diesem Thema finden Sie Beispiele für Richtlinien, die einen Benutzerzugriff auf SES ermöglichen, jedoch nur unter bestimmten Bedingungen.

Berechtigen von Vollzugriff auf alle SES-Aktionen

Mit der folgenden Richtlinie können Benutzer jede beliebige SES-Aktion aufrufen.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*" } ] }

Zulassen des Zugriffs nur auf SES API Version 2

Mit der folgenden Richtlinie können Benutzer nur die SES-Aktionen der API Version 2 aufrufen.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*", "Condition": { "StringEquals" : { "ses:ApiVersion" : "2" } } } ] }

Erlauben von Zugriff nur auf Aktionen für den E-Mail-Versand

Mit der folgenden Richtlinie kann ein Benutzer E-Mails mithilfe von SES senden, aber keine administrativen Aktionen durchführen, wie z. B. den Zugriff auf SES-Sendestatistiken.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*" } ] }

Beschränken des Sendezeitraums

Mit der folgenden Richtlinie kann ein Benutzer SES-APIs für den E-Mail-Versand nur im Monat September 2018 aufrufen.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ] }

Beschränken der Empfängeradressen

Mit der folgenden Richtlinie können Benutzer die SES-APIs für den E-Mail-Versand aufrufen, aber nur an Empfängeradressen in der Domäne example.com (bei StringLike wird die Groß- und Kleinschreibung unterschieden).

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":[ "*@example.com" ] } } } ] }

Beschränken der "From"-Adresse

Mit der folgenden Richtlinie kann ein Benutzer die SES-APIs für den E-Mail-Versand aufrufen, aber nur, wenn die „From“-Adresse marketing@example.com lautet.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"marketing@example.com" } } } ] }

Mit der folgenden Richtlinie kann ein Benutzer die SendBounce-API aufrufen, aber nur, wenn die „From“-Adresse bounce@example.com lautet.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendBounce" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"bounce@example.com" } } } ] }

Beschränken des Anzeigenamens des E-Mail-Absenders

Mit der folgenden Richtlinie können Benutzer die SES-APIs für den E-Mail-Versand aufrufen, aber nur, wenn der Anzeigename der „From“ (Von)-Adresse Marketing enthält (bei StringLike wird die Groß- und Kleinschreibung unterschieden).

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

Beschränken der Zieladresse des Unzustellbarkeits- und Beschwerde-Feedbacks

Mit der folgenden Richtlinie kann ein Benutzer die SES-APIs für den E-Mail-Versand aufrufen, aber nur, wenn die „Return-Path“-Adresse der E-Mail feedback@example.com lautet.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FeedbackAddress":"feedback@example.com" } } } ] }