Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von identitätsbasierten Richtlinien mit Amazon SNS
Amazon Simple Notification Service ist in AWS Identity and Access Management (IAM) integriert, sodass Sie angeben können, welche Amazon SNS-Aktionen ein Benutzer in Ihrem System mit Amazon SNS-Ressourcen ausführen AWS-Konto kann. Sie können ein bestimmtes Thema in der Richtlinie festlegen. Sie können z. B. beim Erstellen einer IAM-Richtlinie Variablen verwenden, um bestimmten Benutzern in Ihrer Organisation die Verwendung der Publish-Aktion für bestimmte Themen in Ihrem AWS-Konto zu ermöglichen. Weitere Informationen finden Sie unter Richtlinienvariablen im Handbuch Verwenden von IAM.
Wichtig
Durch die Nutzung von IAM mit Amazon SNS ändert sich die Verwendung von Amazon SNS nicht. Es gibt keine geänderten Amazon SNS-Aktionen und keine neuen -Aktionen im Zusammenhang mit Benutzern und Zugriffskontrolle.
Beispiele von Richtlinien, die Amazon SNS Aktionen und Ressourcen abdecken, finden Sie unter Beispielrichtlinien für Amazon SNS.
Gemeinsame Nutzung von IAM- und Amazon SNS-Richtlinien
Sie verwenden eine IAM-Richtlinie, um den Zugriff des Benutzers auf Amazon SNS-Aktionen und -Themen einzuschränken. Eine IAM-Richtlinie kann den Zugriff nur auf Benutzer in Ihrem AWS Konto beschränken, nicht auf andere AWS-Konten.
Sie können eine Amazon SNS-Richtlinie mit einem bestimmten Thema verwenden, um einzuschränken, wer mit diesem Thema arbeiten kann (z. B., wer Nachrichten veröffentlichen kann, wer es abonnieren kann usw.). Amazon SNS-Richtlinien können anderen AWS-Konten Benutzern oder Benutzern innerhalb Ihres eigenen Unternehmens Zugriff gewähren. AWS-Konto
Um Ihren Benutzern Berechtigungen für Ihre Amazon SNS-Themen zu gewähren, können Sie IAM-Richtlinien, Amazon SNS-Richtlinien oder beide verwenden. In den meisten Fällen erzielen Sie mit beiden Systemen dieselben Ergebnisse. Die folgende Abbildung zeigt eine IAM-Richtlinie und eine entsprechende Amazon SNS-Richtlinie. Die IAM-Richtlinie ermöglicht die Amazon Subscribe SNS-Aktion für das Thema topic_xyz in Ihrem. Die IAM-Richtlinie ist an AWS-Konto die Benutzer Bob und Susan angehängt (was bedeutet, dass Bob und Susan über die in der Richtlinie angegebenen Berechtigungen verfügen). Die Amazon SNS-Richtlinie bietet Bob und Susan ebenfalls die Berechtigung für den Zugriff auf Subscribe für "topic_xyz".
Anmerkung
Das vorherige Beispiel veranschaulicht einfache Richtlinien ohne Bedingungen. Sie können eine bestimmte Bedingung in einer der Richtlinien angeben und erhalten dasselbe Ergebnis.
Es gibt einen Unterschied zwischen AWS IAM- und Amazon SNS-Richtlinien: Mit dem Amazon SNS-Richtliniensystem können Sie anderen Personen Berechtigungen gewähren AWS-Konten, während dies bei der IAM-Richtlinie nicht der Fall ist.
Sie entscheiden je nach Ihren Anforderungen, wie Sie beide Systeme zum Verwalten von Berechtigungen verwenden. Die folgenden Beispiele zeigen, wie die beiden Richtliniensysteme zusammenarbeiten.
Beispiel 1
In diesem Beispiel wird eine IAM-Richtlinie und eine Amazon SNS-Richtlinie auf Bob angewendet. Die IAM-Richtlinie gewährt ihm die Erlaubnis für Subscribe jedes der Themen, wohingegen ihm die AWS-Konto Amazon SNS-Richtlinie die Erlaubnis erteilt, es für ein bestimmtes Publish Thema (topic_xyz) zu verwenden. Das folgende Diagramm verdeutlicht das Konzept.
Wenn Bob eine Anfrage senden würde, um ein beliebiges Thema im AWS Konto zu abonnieren, würde die IAM-Richtlinie die Aktion zulassen. Wenn Bob eine Anforderung zum Veröffentlichen einer Nachricht an „topic_xyz“ sendet, lässt die Amazon-SNS-Richtlinie diese Aktion zu.
Beispiel 2
In diesem Beispiel bauen wir auf Beispiel 1 auf (wobei Bob zwei für ihn geltende Richtlinien hat). Angenommen, Bob veröffentlicht Nachrichten für das Thema „topic_xyz“, und sollte daran gehindert werden. In diesem Fall entfernen Sie seine Möglichkeit zur Veröffentlichung für diese Themen vollständig. Der einfachste Weg ist, eine IAM-Richtlinie hinzuzufügen, die ihm den Zugriff auf die Publish-Aktionen für alle Themen verweigert. Diese dritte Richtlinie überschreibt die Amazon SNS-Richtlinie, die ihm ursprünglich die Berechtigung zur Veröffentlichung in das Thema „topic_xyz“ gewährt hat. Eine explizite Verweigerung überschreibt grundsätzlich eine gewährte Berechtigung (weitere Informationen über die Logik der Richtlinienauswertung finden Sie unter Auswertungslogik). Das folgende Diagramm verdeutlicht das Konzept.
Beispiele von Richtlinien, die Amazon SNS-Aktionen und -Ressourcen abdecken, finden Sie unter Beispielrichtlinien für Amazon SNS.
Amazon SNS Ressourcen - ARN Format
Bei Amazon SNS, können Sie in einer Richtlinie nur den Ressourcentyp „Thema“ festlegen. Im Folgenden finden Sie das Amazon-Ressourcenname (ARN)-Format für Themen:
arn:aws:sns:region:account_ID:topic_name
Weitere Informationen zu ARNs finden Sie unter ARNs im IAM-Benutzerhandbuch.
Beispiel
Im Folgenden finden Sie einen ARN für ein Thema, das MyTopic in der Region us-east-2 benannt ist und zu AWS-Konto 123456789012 gehört.
arn:aws:sns:us-east-2:123456789012:MyTopicBeispiel
Wenn Sie MyTopic in jeder der verschiedenen Regionen, die Amazon SNS unterstützt, ein Thema benannt haben, könnten Sie die Themen mit dem folgenden ARN angeben.
arn:aws:sns:*:123456789012:MyTopicSie können im Namen des Themas die Platzhalterzeichen * und ? verwenden. Der folgende Namen könnte z. B. alle Themen bezeichnen, die von Bob erstellt wurden und den Präfix bob_. haben.
arn:aws:sns:*:123456789012:bob_*
Zur Vereinfachung gibt Amazon SNS beim Erstellen eines Themas den ARN in der Antwort zurück.
Amazon SNS API-Aktionen
In einer IAM-Richtlinie können Sie eine beliebige, von Amazon SNS unterstützte Aktion angeben. Die Aktionen ConfirmSubscription und Unsubscribe erfordern jedoch keine Authentifizierung. Dies bedeutet, dass &IAM; die Benutzer auch dann nicht beim Zugriff beschränkt, wenn Sie diese Aktionen in einer Richtlinie festlegen.
Jeder in einer Richtlinie angegebenen Aktion muss die Zeichenfolge sns: in Kleinbuchstaben vorangestellt werden. Zum Angeben von allen Amazon SNS -Aktionen würden Sie beispielsweise sns:* verwenden. Eine Liste der Aktionen finden Sie unterAmazon Simple Notification Service-API-Referenz.
Amazon SNS Richtlinienschlüssel
Amazon SNS implementiert die folgenden AWS allgemeinen Richtlinienschlüssel sowie einige dienstspezifische Schlüssel.
Eine Liste der jeweils AWS-Service unterstützten Bedingungsschlüssel finden Sie AWS-Services im IAM-Benutzerhandbuch unter Aktionen, Ressourcen und Bedingungsschlüssel für. Eine Liste der Bedingungsschlüssel, die mehrfach verwendet werden können AWS-Services, finden Sie im IAM-Benutzerhandbuch unter AWS Globale Bedingungskontextschlüssel.
Amazon SNS verwendet die folgenden servicespezifischen Schlüssel. Verwenden Sie diese Schlüssel in Richtlinien, die den Zugriff auf Subscribe-Anfragen beschränken.
-
sns:Endpoint: Die URL, die E-Mail-Adresse oder der ARN von einer
Subscribe-Anfrage oder eines zuvor bestätigten Abonnements. Verwendung mit Bedingungen im Zusammenhang mit Zeichenfolgen (siehe Beispielrichtlinien für Amazon SNS), um den Zugriff auf bestimmte Endpunkte (z. B. *@yourcompany.com) zu beschränken. -
sns:Protocol: Der
protocol-Wert einerSubscribe-Anfrage oder eines zuvor bestätigten Abonnements. Verwendung mit Bedingungen im Zusammenhang mit Zeichenfolgen (siehe Beispielrichtlinien für Amazon SNS), um die Veröffentlichung auf bestimmte Bereitstellungsprotokolle (z. B. HTTPS) zu beschränken.
Beispielrichtlinien für Amazon SNS
Dieser Abschnitt zeigt mehrere einfache Richtlinien zum Steuern des Benutzerzugriffs auf Amazon SNS .
Anmerkung
In Zukunft können in Amazon SNS neue Aktionen hinzugefügt werden, die logisch in einer der folgenden Richtlinien eingeschlossen werden müssen, basierend auf den formulierten Zielen der Richtlinie.
Beispiel 1: Zulassen der Erstellung und Verwaltung von Themen für eine Gruppe
In diesem Beispiel erstellen wir eine Richtlinie, die Zugriff auf CreateTopic, ListTopics, SetTopicAttributes und DeleteTopic gewährt.
{ "Statement": [{ "Effect": "Allow", "Action": ["sns:CreateTopic", "sns:ListTopics", "sns:SetTopicAttributes", "sns:DeleteTopic"], "Resource": "*" }] }
Beispiel 2: Zulassen der Veröffentlichung von Nachrichten zu einem bestimmten Thema für die IT-Gruppe
In diesem Beispiel erstellen wir eine Gruppe für die IT, die eine Richtlinie zuweist, die Zugriff auf Publish für das definierte Thema gewährt.
{ "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }
Beispiel 3: Geben Sie den Benutzern in AWS-Konto Möglichkeit, Themen zu abonnieren
In diesem Beispiel erstellen wir eine Richtlinie mit der Bedingungen für die Zeichenfolgenübereinstimmungen für die Richtlinienschlüssel sns:Protocol und sns:Endpoint, die den Zugriff auf die Subscribe-Aktion gewährt.
{ "Statement": [{ "Effect": "Allow", "Action": ["sns:Subscribe"], "Resource": "*", "Condition": { "StringLike": { "sns:Endpoint": "*@example.com" }, "StringEquals": { "sns:Protocol": "email" } } }] }
Beispiel 4: Zulassen der Veröffentlichung von Nachrichten zu einem bestimmten Thema für einen Partner
Sie können eine Amazon SNS-Richtlinie oder eine IAM-Richtlinie verwenden, um einem Partner das Veröffentlichen zu einem bestimmten Thema zu gewähren. Wenn Ihr Partner eine hat AWS-Konto, ist es möglicherweise einfacher, eine Amazon SNS-Richtlinie zu verwenden. Jeder im Unternehmen des Partners, der über die AWS Sicherheitsanmeldeinformationen verfügt, kann jedoch Nachrichten zu dem Thema veröffentlichen. In diesem Beispiel wird davon ausgegangen, dass Sie den Zugriff auf eine bestimmte Person (oder Anwendung) begrenzen möchten. Zu diesem Zweck müssen Sie den Partner wie einen Benutzer innerhalb Ihres eigenen Unternehmens behandeln. Verwenden Sie eine &IAM;-Richtlinie anstelle einer Amazon SNS-Richtlinie.
In diesem Beispiel erstellen wir eine Gruppe mit dem Namen WidgetCo , die für das Partnerunternehmen steht. Wir erstellen einen Benutzer für die bestimmte Person (oder Anwendung) im Partnerunternehmen, die Zugriff benötigt, und fügen den Benutzer dann der Gruppe hinzu.
Anschließend fügen wir eine Richtlinie hinzu, die der Gruppe Publish Zugriff auf das angegebene Thema gewährt WidgetPartnerTopic.
Wir möchten auch verhindern, dass die WidgetCo Gruppe etwas anderes mit Themen macht. Deshalb fügen wir eine Erklärung hinzu, die die Genehmigung für alle Amazon SNS-Aktionen verweigert, die sich nicht Publish auf andere Themen beziehen als. WidgetPartnerTopic Dies ist nur erforderlich, wenn eine umfassendere Richtlinie im System verwendet wird, die Benutzern einen breiten Zugriff auf Amazon SNS-Ressourcen ermöglicht.
{ "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" }, { "Effect": "Deny", "NotAction": "sns:Publish", "NotResource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" } ] }
Amazon SNS-Richtlinien für E-Mail-Endpunkte
Amazon SNS normalisiert E-Mail-Adressen in den Richtlinien für den Endpunktzugriff, indem führende und nachfolgende Leerzeichen entfernt, alle Zeichen in Kleinbuchstaben umgewandelt und Sonderzeichen und Escape-Sequenzen normalisiert werden. Aus diesem Grund müssen Sie in Ihren Richtliniendefinitionen E-Mail-Adressen in Kleinbuchstaben verwenden, um sicherzustellen, dass Abonnementanfragen korrekt abgeglichen werden.
Beispiel für eine Richtlinie:
{ "Condition": { "StringEquals": { "sns:Endpoint": "user.name@example.com" } } }
Die folgenden E-Mail-Adressen erfüllen die obige Bedingung:
user.name@example.comUSER.NAME@EXAMPLE.COMUser.N\ame@Example.com
Amazon SNS-Richtlinien für Endpunkte HTTP/HTTPs
Amazon SNS normalisiert HTTP/HTTPs Endpunkte in den Richtlinien für den Endpunktzugriff, indem das Schema und der Hostname in Kleinbuchstaben umgewandelt werden, wobei Port, Pfad, Abfrageparameter und Fragmente exakt beibehalten werden. Aus diesem Grund müssen Sie in Ihren Richtliniendefinitionen das Schema und den Hostnamen in Kleinbuchstaben verwenden, um eine korrekte Übereinstimmung der Abonnementanforderungen sicherzustellen.
{ "Condition": { "StringEquals": { "sns:Endpoint": "https://example.com:443/path?A=B" } } }
Folgendes HTTP/HTTPs entspricht der obigen Bedingung:
HTTPS://EXAMPLE.COM:443/path?A=BHTTPS://example.com:443/path?A=BHTTPS://ExAmPlE.cOm:443/path?A=B