Verwendung identitätsbasierter Richtlinien bei Amazon SNS - Amazon Simple Notification Service

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.

Verwendung identitätsbasierter Richtlinien bei Amazon SNS

Amazon Simple Notification Service ist in AWS Identity and Access Management (IAM) integriert, sodass Sie angeben können, welche SNS Amazon-Aktionen ein Benutzer in Ihrem System mit SNS Amazon-Ressourcen ausführen AWS-Konto kann. Sie können ein bestimmtes Thema in der Richtlinie festlegen. Beispielsweise könnten Sie Variablen verwenden, wenn Sie eine IAM Richtlinie erstellen, die bestimmten Benutzern in Ihrer Organisation die Erlaubnis erteilt, die Publish Aktion für bestimmte Themen in Ihrem Unternehmen zu verwenden AWS-Konto. Weitere Informationen finden Sie unter Richtlinienvariablen im IAMNutzerhandbuch.

Wichtig

Die Verwendung von Amazon SNS mit IAM ändert nichts an der Art und Weise, wie Sie Amazon verwendenSNS. Es gibt keine Änderungen an SNS Amazon-Aktionen und keine neuen SNS Amazon-Aktionen in Bezug auf Benutzer und Zugriffskontrolle.

Beispiele für Richtlinien, die SNS Aktionen und Ressourcen von Amazon abdecken, finden Sie unterBeispielrichtlinien für Amazon SNS.

IAMund SNS Amazon-Richtlinien zusammen

Sie verwenden eine IAM Richtlinie, um den Zugriff Ihrer Benutzer auf SNS Amazon-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 verwenden eine SNS Amazon-Richtlinie mit einem bestimmten Thema, um einzuschränken, wer mit diesem Thema arbeiten kann (z. B. wer Nachrichten zu diesem Thema veröffentlichen kann, wer es abonnieren kann usw.). SNSAmazon-Richtlinien können anderen AWS-Konten oder Benutzern innerhalb Ihres eigenen Bereichs Zugriff gewähren AWS-Konto.

Um Ihren Benutzern Berechtigungen für Ihre SNS Amazon-Themen zu gewähren, können Sie IAM Richtlinien, SNS Amazon-Richtlinien oder beides verwenden. In den meisten Fällen erzielen Sie mit beiden Systemen dieselben Ergebnisse. Das folgende Diagramm zeigt beispielsweise eine IAM Richtlinie und eine SNS Amazon-Richtlinie, die gleichwertig sind. Die IAM Richtlinie ermöglicht die SNS Subscribe Aktion von Amazon für das Thema topic_xyz in Ihrem Konto. AWS Die IAM Richtlinie ist den Benutzern Bob und Susan zugeordnet (was bedeutet, dass Bob und Susan über die in der Richtlinie angegebenen Berechtigungen verfügen). Die SNS Amazon-Richtlinie gewährt Bob und Susan ebenfalls die Erlaubnis, auf Subscribe topic_xyz zuzugreifen.

Vergleicht eine IAM Richtlinie und eine SNS Amazon-Richtlinie und zeigt, dass beide Richtlinien zwei Benutzern, Bob und Susan, gleichwertige Berechtigungen gewähren, sodass sie ein bestimmtes SNS Amazon-Thema innerhalb eines abonnieren können AWS-Konto. Der hervorgehobene Hauptunterschied besteht darin, dass SNS Amazon-Richtlinien Benutzern Berechtigungen für verschiedene Benutzer gewähren können AWS-Konten, während IAM Richtlinien dies nicht können.
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 den AWS IAM SNS Richtlinien von Amazon: Mit dem SNS Amazon-Richtliniensystem können Sie anderen eine Genehmigung erteilen 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 gelten sowohl eine IAM Richtlinie als auch eine SNS Amazon-Richtlinie für Bob. Die IAM Richtlinie gewährt ihm die Genehmigung für Subscribe jedes der AWS-Konto Themen, wohingegen die SNS Amazon-Richtlinie ihm die Erlaubnis zur Verwendung Publish zu einem bestimmten Thema (topic_xyz) gewährt. Das folgende Diagramm verdeutlicht das Konzept.

Zeigt, wie sowohl eine IAM Richtlinie als auch eine SNS Amazon-Richtlinie für den Benutzer Bob gelten. Die IAM Richtlinie ermöglicht es ihm, jedes beliebige Thema in der zu abonnieren AWS-Konto, und die SNS Amazon-Richtlinie gewährt ihm die Erlaubnis, Nachrichten zu einem bestimmten Thema namens „topic_xyz“ zu veröffentlichen. Das Diagramm verdeutlicht den Unterschied zwischen allgemeinen Berechtigungen, die durch die IAM Richtlinie gewährt werden, und spezifischen Berechtigungen, die durch die SNS Amazon-Richtlinie für ein bestimmtes Thema gewährt werden.

Wenn Bob eine Anfrage zum Abonnieren eines beliebigen Themas im AWS Konto senden würde, würde die IAM Richtlinie die Aktion zulassen. Wenn Bob eine Anfrage zur Veröffentlichung einer Nachricht an topic_xyz senden würde, würde die SNS Amazon-Richtlinie die Aktion zulassen.

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. Am einfachsten ist es, eine IAM Richtlinie hinzuzufügen, die ihm den Zugriff auf die Publish Aktion zu allen Themen verweigert. Diese dritte Richtlinie setzt die SNS Amazon-Richtlinie außer Kraft, die ihm ursprünglich die Erlaubnis gegeben hat, auf topic_xyz zu veröffentlichen, da eine ausdrückliche Ablehnung immer eine Zulassung außer Kraft setzt (weitere Informationen zur Bewertungslogik von Richtlinien finden Sie unter). Auswertungslogik Das folgende Diagramm verdeutlicht das Konzept.

Veranschaulichung, wie das Hinzufügen einer IAM Richtlinie, die die Aktion „Veröffentlichen“ für alle Themen ablehnt, eine bestehende SNS Amazon-Richtlinie außer Kraft setzen kann, die es dem Benutzer Bob ermöglichte, zu einem bestimmten Thema, „topic_xyz“, zu veröffentlichen. Die IAM Ablehnungsrichtlinie hat Vorrang vor der SNS Amazon-Richtlinie, wodurch Bob effektiv daran gehindert wird, zu einem beliebigen Thema zu veröffentlichen, auch nicht zu „topic_xyz“.

Beispiele für Richtlinien, die SNS Aktionen und Ressourcen von Amazon abdecken, finden Sie unterBeispielrichtlinien für Amazon SNS. Weitere Informationen zum Verfassen von SNS Amazon-Richtlinien finden Sie in der technischen Dokumentation für Amazon SNS.

SNSARNAmazon-Ressourcenformat

Für Amazon SNS sind Themen der einzige Ressourcentyp, den Sie in einer Richtlinie angeben können. Im Folgenden finden Sie das Format Amazon Resource Name (ARN) für Themen.

arn:aws:sns:region:account_ID:topic_name

Weitere Informationen zu ARNs finden Sie ARNsim IAMBenutzerhandbuch.

Das Folgende bezieht sich auf ein ARN 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:MyTopic

Wenn Sie MyTopic in jeder der verschiedenen Regionen, die Amazon SNS unterstützt, ein Thema benannt hätten, könnten Sie die Themen wie folgt spezifizierenARN.

arn:aws:sns:*:123456789012:MyTopic

Sie 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_*

Der Einfachheit halber SNS gibt Amazon bei der Erstellung eines Themas die Themen ARN in der Antwort zurück.

SNSAPIAmazon-Aktionen

In einer IAM Richtlinie können Sie alle Aktionen angeben, die Amazon SNS anbietet. Für die Unsubscribe Aktionen ConfirmSubscription und ist jedoch keine Authentifizierung erforderlich. Dies bedeutet, dass der Zugriff der Benutzer auf diese Aktionen auch dann IAM nicht eingeschränkt wird, wenn Sie diese Aktionen in einer Richtlinie angeben.

Jeder in einer Richtlinie angegebenen Aktion muss die Zeichenfolge sns: in Kleinbuchstaben vorangestellt werden. Um beispielsweise alle SNS Amazon-Aktionen anzugeben, würden Sie verwendensns:*. Eine Liste der Aktionen finden Sie in der Amazon Simple Notification Service API Reference.

SNSAmazon-Richtlinienschlüssel

Amazon SNS implementiert die folgenden AWS allgemeinen Richtlinienschlüssel sowie einige dienstspezifische Schlüssel.

Eine Liste der von ihnen unterstützten Bedingungsschlüssel finden Sie AWS-Services im IAMBenutzerhandbuch unter Aktionen, Ressourcen und Bedingungsschlüssel für. AWS-Service Eine Liste der Bedingungsschlüssel, die in mehreren Fällen verwendet werden können AWS-Services, finden Sie im IAMBenutzerhandbuch unter AWS Globale Kontext-Schlüssel für Bedingungen.

Amazon SNS verwendet die folgenden dienstspezifischen Schlüssel. Verwenden Sie diese Schlüssel in Richtlinien, die den Zugriff auf Subscribe-Anfragen beschränken.

  • sns:endpoint — Die URL E-Mail-Adresse oder ARN aus einer Subscribe Anfrage oder einem zuvor bestätigten Abonnement. 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 einer Subscribe-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

In diesem Abschnitt werden mehrere einfache Richtlinien zur Steuerung des Benutzerzugriffs auf Amazon beschriebenSNS.

Anmerkung

In future SNS könnte Amazon neue Aktionen hinzufügen, die logischerweise in eine der folgenden Richtlinien aufgenommen werden sollten, basierend auf den erklärten 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 Benutzern die 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 SNS Amazon-Richtlinie oder eine IAM Richtlinie verwenden, um einem Partner zu ermöglichen, zu einem bestimmten Thema zu veröffentlichen. Wenn Ihr Partner eine hat AWS-Konto, ist es möglicherweise einfacher, eine SNS Amazon-Richtlinie zu verwenden. Jeder Mitarbeiter des Partners, der über die AWS Sicherheitsnachweise verfügt, könnte jedoch Nachrichten zu diesem Thema veröffentlichen. In diesem Beispiel wird davon ausgegangen, dass Sie den Zugriff auf eine bestimmte Person (oder Anwendung) begrenzen möchten. Dazu müssen Sie den Partner wie einen Benutzer in Ihrem eigenen Unternehmen behandeln und eine IAM Richtlinie anstelle einer SNS Amazon-Richtlinie verwenden.

In diesem Beispiel erstellen wir eine Gruppe mit dem Namen WidgetCo , die das Partnerunternehmen repräsentiert. Wir erstellen einen Benutzer für die bestimmte Person (oder Anwendung) bei dem 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 allen SNS Amazon-Aktionen die Genehmigung verweigert, außer zu anderen Publish Themen als WidgetPartnerTopic. Dies ist nur erforderlich, wenn es an anderer Stelle im System eine umfassende Richtlinie gibt, die Benutzern umfassenden Zugriff auf Amazon gewährtSNS.

{ "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" }, { "Effect": "Deny", "NotAction": "sns:Publish", "NotResource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" } ] }