Utilizzo di politiche basate sull'identità con Amazon SNS - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di politiche basate sull'identità con Amazon SNS

Amazon Simple Notification Service si integra con AWS Identity and Access Management (IAM) in modo da poter specificare quali SNS azioni Amazon un utente Account AWS può eseguire con SNS le risorse Amazon. Puoi specificare un particolare argomento nella policy. Ad esempio, puoi utilizzare le variabili quando crei una IAM policy che conceda a determinati utenti della tua organizzazione il permesso di utilizzare l'Publishazione su argomenti specifici della tua organizzazione. Account AWS Per ulteriori informazioni, consulta Policy Variables nella IAM guida all'uso.

Importante

L'utilizzo di Amazon SNS con IAM non modifica il modo in cui utilizzi AmazonSNS. Non sono state apportate modifiche alle SNS azioni di Amazon e non sono state apportate nuove SNS azioni Amazon relative agli utenti e al controllo degli accessi.

Per esempi di politiche che coprono le SNS azioni e le risorse di Amazon, consultaPolitiche di esempio per Amazon SNS.

IAMe SNS le politiche di Amazon insieme

Utilizzi una IAM policy per limitare l'accesso degli utenti alle SNS azioni e agli argomenti di Amazon. Una IAM policy può limitare l'accesso solo agli utenti del tuo AWS account, non ad altri Account AWS.

Utilizzi una SNS politica di Amazon con un argomento particolare per limitare chi può lavorare su quell'argomento (ad esempio, chi può pubblicare messaggi sull'argomento, chi può iscriversi, ecc.). SNSLe politiche di Amazon possono concedere l'accesso Account AWS ad altri utenti o a utenti interni al tuo Account AWS.

Per concedere ai tuoi utenti le autorizzazioni per i tuoi SNS argomenti Amazon, puoi utilizzare IAM le policy, le SNS politiche di Amazon o entrambe. Nella maggior parte dei casi, puoi ottenere gli stessi risultati con le une o le altre. Ad esempio, il diagramma seguente mostra una IAM politica e una SNS politica Amazon equivalenti. La IAM policy consente l'SNSSubscribeazione di Amazon per l'argomento chiamato topic_xyz nel tuo account. AWS La IAM policy è allegata agli utenti Bob e Susan (il che significa che Bob e Susan dispongono delle autorizzazioni indicate nella policy). Allo stesso modo, la SNS politica di Amazon concede a Bob e Susan il permesso di accedere a topic_xyzSubscribe.

Confronta una IAM politica e una SNS politica di Amazon, dimostrando che entrambe le politiche concedono autorizzazioni equivalenti a due utenti, Bob e Susan, consentendo loro di iscriversi a uno specifico SNS argomento Amazon all'interno di un. Account AWS La differenza principale evidenziata è che SNS le politiche di Amazon possono concedere autorizzazioni agli utenti in diversi modi Account AWS, mentre IAM le politiche no.
Nota

L'esempio precedente mostra policy semplici senza condizioni. Puoi specificare una particolare condizione in una qualsiasi delle policy e ottenere lo stesso risultato.

C'è una differenza tra AWS IAM le SNS politiche di Amazon: il sistema di SNS policy di Amazon ti consente di concedere l'autorizzazione ad altri Account AWS, mentre la IAM politica no.

Sta a te decidere se utilizzare insieme i sistemi per gestire le autorizzazioni, in base alle tue esigenze. Gli esempi seguenti mostrano il modo in cui i due sistemi di policy interagiscono.

Esempio 1

In questo esempio, a Bob si applicano sia una IAM SNS policy che una policy Amazon. La IAM politica gli concede l'autorizzazione per Subscribe qualsiasi argomento, mentre la Account AWS SNS politica di Amazon gli concede il permesso di utilizzare Publish su un argomento specifico (topic_xyz). Il diagramma seguente illustra questo concetto.

Mostra in che modo sia una IAM politica che una SNS politica Amazon si applicano all'utente Bob, con la IAM politica che gli consente di iscriversi a qualsiasi argomento in e la Account AWS SNS politica di Amazon che gli concede l'autorizzazione a pubblicare messaggi su un argomento specifico denominato «topic_xyz». Il diagramma sottolinea la distinzione tra le autorizzazioni generali concesse dalla IAM politica di Amazon e le autorizzazioni specifiche concesse dalla SNS politica di Amazon per un argomento particolare.

Se Bob dovesse inviare una richiesta di sottoscrizione a qualsiasi argomento dell' AWS account, la IAM politica consentirebbe l'azione. Se Bob dovesse inviare una richiesta per pubblicare un messaggio su topic_xyz, la SNS policy di Amazon consentirebbe l'azione.

Esempio 2

In questo esempio, facciamo riferimento all'esempio 1 (dove due policy si applicano a Bob). Supponiamo che Bob pubblichi dei messaggi in topic_xyz quando non dovrebbe farlo e che di conseguenza tu intenda negargli completamente la possibilità di pubblicare negli argomenti. La cosa più semplice da fare è aggiungere una IAM politica che gli neghi l'accesso all'azione su tutti gli argomenti. Publish Questa terza politica ha la precedenza sulla politica di Amazon che originariamente gli aveva dato il permesso di pubblicare su topic_xyz, perché un rifiuto esplicito ha sempre la precedenza sull'autorizzazione (per ulteriori informazioni sulla logica di valutazione delle SNS politiche, consulta). Logica della valutazione Il diagramma seguente illustra questo concetto.

Illustrazione di come l'aggiunta di una IAM politica che nega l'azione «Pubblica» per tutti gli argomenti può sostituire una SNS politica Amazon esistente che consentiva all'utente Bob di pubblicare su un argomento specifico, «topic_xyz». La politica di IAM rifiuto ha la precedenza sulla politica di AmazonSNS, impedendo di fatto a Bob di pubblicare su qualsiasi argomento, incluso «topic_xyz».

Per esempi di politiche che coprono le SNS azioni e le risorse di Amazon, consultaPolitiche di esempio per Amazon SNS. Per ulteriori informazioni sulla stesura SNS delle politiche di Amazon, consulta la documentazione tecnica di Amazon SNS.

ARNFormato di SNS risorse Amazon

Per AmazonSNS, gli argomenti sono l'unico tipo di risorsa che puoi specificare in una politica. Di seguito è riportato il formato Amazon Resource Name (ARN) per gli argomenti.

arn:aws:sns:region:account_ID:topic_name

Per ulteriori informazioni ARNsin meritoARNs, consulta la Guida per IAM l'utente.

Quanto segue è un ARN argomento denominato MyTopic nella regione us-east-2, appartenente a 123456789012. Account AWS

arn:aws:sns:us-east-2:123456789012:MyTopic

Se disponi di un argomento denominato MyTopic in ciascuna delle diverse regioni SNS supportate da Amazon, puoi specificare gli argomenti con quanto segueARN.

arn:aws:sns:*:123456789012:MyTopic

Puoi utilizzare i caratteri jolly * e ? nel nome dell'argomento. Ad esempio, quanto segue potrebbe fare riferimento a tutti gli argomenti creati da Bob ai quali ha aggiunto il prefisso bob_.

arn:aws:sns:*:123456789012:bob_*

Per tua comodità, quando crei un argomento, Amazon SNS restituisce l'argomento ARN nella risposta.

SNSAPIAzioni Amazon

In una IAM politica, puoi specificare tutte le azioni SNS offerte da Amazon. Tuttavia, le Unsubscribe azioni ConfirmSubscription and non richiedono l'autenticazione, il che significa che, anche se specifichi tali azioni in una policy, IAM non limiteranno l'accesso degli utenti a tali azioni.

Ogni operazione che specifichi in una policy deve essere preceduta dalla stringa in minuscolo sns:. Per specificare tutte SNS le azioni Amazon, ad esempio, dovresti usaresns:*. Per un elenco delle azioni, consulta Amazon Simple Notification Service API Reference.

Chiavi SNS della policy di Amazon

Amazon SNS implementa le seguenti chiavi di policy AWS estese, oltre ad alcune chiavi specifiche del servizio.

Per un elenco delle chiavi di condizione supportate da ciascuna di esse Servizio AWS, consulta Azioni, risorse e chiavi di condizione Servizi AWS nella Guida per l'IAMutente. Per un elenco delle chiavi di condizione che possono essere utilizzate in più modi Servizi AWS, consulta le chiavi di contesto delle condizioni AWS globali nella Guida per l'IAMutente.

Amazon SNS utilizza le seguenti chiavi specifiche del servizio. Utilizza queste chiavi nelle policy che limitano l'accesso alle richieste Subscribe.

  • sns:endpoint: l'indirizzo e-mail URL fornito ARN da una Subscribe richiesta o da un abbonamento precedentemente confermato. Utilizza questa chiave con le condizioni di stringa (vedi Politiche di esempio per Amazon SNS) per limitare l'accesso a specifici endpoint (ad esempio, *@yourcompany.com).

  • sns:protocol– il valore protocol di una richiesta Subscribe o di una sottoscrizione confermata in precedenza. Utilizza questa chiave con le condizioni di stringa (vedi Politiche di esempio per Amazon SNS) per limitare la pubblicazione a specifici protocolli di consegna (ad esempio, https).

Politiche di esempio per Amazon SNS

Questa sezione mostra diverse semplici politiche per il controllo dell'accesso degli utenti ad AmazonSNS.

Nota

In futuro, Amazon SNS potrebbe aggiungere nuove azioni che dovrebbero essere incluse logicamente in una delle seguenti politiche, in base agli obiettivi dichiarati della politica.

Esempio 1: autorizzare un gruppo a creare e gestire argomenti

In questo esempio, creiamo una policy che autorizza l'accesso a CreateTopic, ListTopics, SetTopicAttributes e DeleteTopic.

{ "Statement": [{ "Effect": "Allow", "Action": ["sns:CreateTopic", "sns:ListTopics", "sns:SetTopicAttributes", "sns:DeleteTopic"], "Resource": "*" }] }
Esempio 2: autorizzare il reparto IT a pubblicare messaggi in un particolare argomento

In questo esempio, creiamo un gruppo per il reparto IT e assegniamo una policy che autorizza l'accesso a Publish per l'argomento desiderato.

{ "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }
Esempio 3: Offri agli utenti la Account AWS possibilità di iscriversi agli argomenti

In questo esempio, creiamo una policy che consente di accedere all'operazione Subscribe, con condizioni di corrispondenza di stringa per le chiavi di policy sns:Protocol e sns:Endpoint.

{ "Statement": [{ "Effect": "Allow", "Action": ["sns:Subscribe"], "Resource": "*", "Condition": { "StringLike": { "SNS:Endpoint": "*@example.com" }, "StringEquals": { "sns:Protocol": "email" } } }] }
Esempio 4: autorizzare un partner a pubblicare messaggi in un particolare argomento

Puoi utilizzare una SNS policy di Amazon o una IAM policy per consentire a un partner di pubblicare su un argomento specifico. Se il tuo partner ha una polizza Amazon Account AWS, potrebbe essere più semplice utilizzare una SNS politica Amazon. Tuttavia, chiunque nell'azienda del partner possieda le credenziali AWS di sicurezza può pubblicare messaggi sull'argomento. Questo esempio presuppone che tu voglia limitare l'accesso a una determinata persona (o applicazione). Per fare ciò devi trattare il partner come un utente all'interno della tua azienda e utilizzare una IAM politica anziché una SNS politica Amazon.

Per questo esempio, creiamo un gruppo chiamato WidgetCo che rappresenta l'azienda partner; creiamo un utente per la persona (o applicazione) specifica presso l'azienda partner che deve accedere; quindi inseriamo l'utente nel gruppo.

Quindi alleghiamo una politica che concede al gruppo l'Publishaccesso all'argomento specifico denominato WidgetPartnerTopic.

Vogliamo anche impedire al WidgetCo gruppo di fare altro con gli argomenti, quindi aggiungiamo una dichiarazione che nega l'autorizzazione a qualsiasi SNS azione di Amazon diversa da quella Publish su argomenti diversi WidgetPartnerTopic da. Ciò è necessario solo se esiste un'ampia politica altrove nel sistema che garantisce agli utenti un ampio accesso ad AmazonSNS.

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