Autorisierung beim Senden einer SMS mit AmazonSNSClient

8

Die offizielle aws-Dokumentation zu zum Senden einer Textnachricht Das aws SDK in Java ist ziemlich einfach.

Beim Senden einer Nachricht, wie im Beispiel unten gezeigt, erhalte ich den Fehler User: arn:aws:iam::xxx:user/sms-testing is not authorized to perform: SNS:Publish on resource: +999999999

Beachten Sie, dass +999999999 die an den .withPhoneNumber() -Aufruf übergebene Telefonnummer ist, so beschwert sich die aws-API darüber, dass mein IAM-Benutzer nicht über die erforderliche Berechtigung für SNS:Publish eine Nachricht an die Ressource mit dieser Telefonnummer verfügt.

Meine Frage: Wie erstelle ich einen IAM-Benutzer, der SMS-Benachrichtigungen über das Java SDK senden kann? Momentan sieht es so aus, als müsste ich für jede Nummer, an die ich Nachrichten sende, eine Erlaubnis erstellen, was merkwürdig und schwer zu pflegen ist.

    
pulse00 10.08.2016, 10:44
quelle

1 Antwort

17

Der Fehler weist darauf hin, dass Ihr IAM-Benutzer "sms-testing" nicht über die Berechtigung zur Veröffentlichung auf SNS (SNS: Publish) für diese Ressource verfügt. Ihr IAM-Benutzer hat wahrscheinlich nicht die SNS: Publish-Berechtigung, was bedeutet, dass Sie nichts veröffentlichen können. Wenn dies der Fall ist, müssen Sie Ihrem Benutzer lediglich die folgende IAM-Richtlinie hinzufügen ODER die Richtlinie der IAM-Gruppe hinzufügen, zu der Ihr IAM-Benutzer gehört.

Der folgende Link führt Sie direkt zur IAM-Konsole, um Berechtigungen für den Benutzer "sms-testing" zu bearbeiten. Im Folgenden finden Sie eine Beispielrichtlinie, die es dem IAM-Benutzer ermöglicht, Inhalte in SNS (SMS, Topics, Endpoints usw.) zu veröffentlichen.

Wenn Sie Berechtigungen ein wenig sperren möchten, würden Sie die "Ressource" ändern und eine bestimmte SNS-Ressource wie Thema oder Anwendung festlegen. Wenn Sie die IAM-Benutzerrichtlinie nicht bearbeiten können, müssen Sie Ihren Administrator bitten, diese Richtlinie für Sie hinzuzufügen.

Ändern Sie Ihren IAM-Benutzer: Ссылка

Beispielrichtlinie für die SNS-Veröffentlichung für ALLE Ressourcen:

%Vor%

Da SNS keine SMS-Ressource hat, können Sie ein wenig einen Hack machen und alle SNS-Veröffentlichungen auf Themen und Plattformanwendungen ablehnen und dann die Veröffentlichung für den Rest zulassen, der nur SMS (vorerst) übrig lässt.

Hier ist eine Beispielrichtlinie, die nur das Veröffentlichen auf SMS und das Veröffentlichen von Themen und Anwendungen (Push-Benachrichtigungen) zulässt:

%Vor%

Ich hoffe, das hilft.

-Dennis

    
Dennis AWS 12.08.2016, 21:38
quelle

Tags und Links