Verwenden von identitätsbasierten Richtlinien mit 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.

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 SNS-Aktionen ein Benutzer in Ihrem Umfeld mit Amazon SNS 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 SNS-Richtlinien können anderen AWS-Konten oder Benutzern innerhalb Ihres eigenen AWS-Konto Bereichs Zugriff gewähren.

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 SNS Subscribe SNS-Aktion für das Thema topic_xyz in Ihrem AWS-Konto 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 Amazon SNS-Richtlinie bietet Bob und Susan ebenfalls die Berechtigung für den Zugriff auf Subscribe für "topic_xyz".

Vergleicht eine IAM-Richtlinie und eine Amazon SNS SNS-Richtlinie und zeigt, dass beide Richtlinien zwei Benutzern, Bob und Susan, gleiche Berechtigungen gewähren, sodass sie ein bestimmtes Amazon SNS SNS-Thema innerhalb eines abonnieren können. AWS-Konto Der hervorgehobene Hauptunterschied besteht darin, dass Amazon SNS SNS-Richtlinien Benutzern unterschiedliche Berechtigungen gewähren können AWS-Konten, während dies bei IAM-Richtlinien nicht möglich ist.
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 SNS-Richtlinien: Mit dem Amazon SNS SNS-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 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 die AWS-Konto Amazon SNS SNS-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 Amazon SNS SNS-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 Amazon SNS SNS-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 Amazon SNS SNS-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 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.

Veranschaulichung, wie das Hinzufügen einer IAM-Richtlinie, die die Aktion „Veröffentlichen“ für alle Themen verweigert, eine bestehende Amazon SNS SNS-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 Amazon SNS SNS-Richtlinie, wodurch Bob effektiv daran gehindert wird, Beiträge zu einem beliebigen Thema, einschließlich „topic_xyz“, zu veröffentlichen.

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 ARNsim IAM-Benutzerhandbuch.

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:MyTopic

Wenn Sie MyTopic in jeder der verschiedenen Regionen, die Amazon SNS unterstützt, ein Thema benannt hätten, könnten Sie die Themen mit dem folgenden ARN angeben.

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

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 von ihnen unterstützten Bedingungsschlüssel finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS-Services im IAM-Benutzerhandbuch. AWS-Service Eine Liste der Bedingungsschlüssel, die in mehreren Fällen verwendet werden können AWS-Services, finden Sie unter AWS Globale Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

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 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

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 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 Amazon SNS-Richtlinie oder eine IAM-Richtlinie verwenden, um einem Partner das Veröffentlichen zu einem bestimmten Thema zu gewähren. Wenn Ihr Partner über eine verfügt AWS-Konto, ist es möglicherweise einfacher, eine Amazon SNS SNS-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. 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 das Partnerunternehmen repräsentiert. 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 allen Amazon SNS SNS-Aktionen die Genehmigung verweigert, außer zu anderen Publish Themen 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" } ] }