Policy degli argomenti Amazon SNS per CloudTrail - AWS CloudTrail

Policy degli argomenti Amazon SNS per CloudTrail

Per inviare notifiche a un argomento SNS, CloudTrail deve disporre delle autorizzazioni necessarie. CloudTrail allega automaticamente le autorizzazioni necessarie all'argomento quando crei un argomento Amazon SNS durante il processo di creazione o aggiornamento di un percorso nella console CloudTrail.

Importante

Come best practice di sicurezza, per limitare l'accesso all'argomento SNS, si consiglia di modificare manualmente la policy IAM allegata all'argomento SNS per aggiungere chiavi della condizione, dopo aver creato o aggiornato un percorso per inviare notifiche SNS. Per ulteriori informazioni, consultare Best practice di sicurezza per la policy dell'argomento SNS in questo argomento.

CloudTrail aggiunge automaticamente la seguente istruzione alla policy con i seguenti campi:

  • SID consentiti.

  • Nome principale del servizio per CloudTrail.

  • Argomento SNS, compresi regione, ID account e nome argomento.

La policy seguente permette a CloudTrail di inviare notifiche sulla distribuzione dei file di log dalle regioni supportate. Per ulteriori informazioni, consultare Regioni supportate da CloudTrail. Si tratta della policy di default allegata a una policy di argomento SNS nuova o esistente quando crei o aggiorni un percorso e scegli di abilitare le notifiche SNS.

Policy dell'argomento SNS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:SNSTopicOwnerAccountId:SNSTopicName" } ] }

Per utilizzare un argomento Amazon SNS crittografato con AWS KMS per inviare notifiche, devi inoltre abilitare la compatibilità tra l'origine eventi (CloudTrail) e l'argomento crittografato, aggiungendo la seguente istruzione alla policy della AWS KMS key.

Policy della chiave KMS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" } ] }

Per ulteriori informazioni, consulta Abilitare la compatibilità tra le origini eventi dai servizi AWS e gli argomenti crittografati.

Best practice di sicurezza per la policy dell'argomento SNS

Per impostazione predefinita, l'istruzione della policy IAM che CloudTrail allega all'argomento Amazon SNS permette al principale di servizio CloudTrail di pubblicare su un argomento SNS, identificato da un ARN. Per impedire a un utente malintenzionato di accedere all'argomento SNS e di inviare notifiche per conto di CloudTrail ai destinatari dell'argomento, modifica manualmente la policy dell'argomento SNS CloudTrail per aggiungere una chiave della condizione aws:SourceArn all'istruzione della policy allegata da CloudTrail. Il valore di questa chiave è l'ARN del percorso o un array di ARN del percorso che utilizzano l'argomento SNS. Poiché include sia l'ID del percorso specifico che l'ID dell'account proprietario del percorso, limita l'accesso all'argomento SNS solo agli account che dispongono dell'autorizzazione per gestire il percorso. Prima di aggiungere chiavi della condizione alla policy dell'argomento SNS, ottieni il nome dell'argomento SNS dalle impostazioni del percorso nella console CloudTrail.

Anche la chiave di condizione aws:SourceAccount è supportata, ma non consigliata.

Per aggiungere la chiave della condizione aws:SourceArn alla policy dell'argomento SNS
  1. Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/v3/home.

  2. Nel pannello di navigazione, scegli Topics (Argomenti).

  3. Scegli l'argomento SNS visualizzato nelle impostazioni del percorso, quindi scegli Edit (Modifica).

  4. Espandi Access policy (Policy di accesso).

  5. Nell'editor JSON Access policy (Policy d'accesso), cerca un blocco simile al seguente esempio.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Aggiungi un nuovo blocco per una condizione, aws:SourceArn, come mostrato nell'esempio seguente. Il valore di aws:SourceArn è l'ARN del percorso di cui stai inviando notifiche a SNS.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail3" } } }
  7. Al termine della modifica della policy dell'argomento SNS, scegli Save changes (Salva modifiche).

Per aggiungere la chiave della condizione aws:SourceAccount alla policy dell'argomento SNS
  1. Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/v3/home.

  2. Nel pannello di navigazione, scegli Topics (Argomenti).

  3. Scegli l'argomento SNS visualizzato nelle impostazioni del percorso, quindi scegli Edit (Modifica).

  4. Espandi Access policy (Policy di accesso).

  5. Nell'editor JSON Access policy (Policy d'accesso), cerca un blocco simile al seguente esempio.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Aggiungi un nuovo blocco per una condizione, aws:SourceAccount, come mostrato nell'esempio seguente. Il valore di aws:SourceAccount è l'ID dell'account proprietario del percorso CloudTrail. In questo esempio l'accesso all'argomento SNS viene limitato solo agli utenti che possono accedere all'account AWS 123456789012.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }
  7. Al termine della modifica della policy dell'argomento SNS, scegli Save changes (Salva modifiche).

Specificare un argomento esistente per l'invio di notifiche

Puoi aggiungere manualmente le autorizzazioni per un argomento Amazon SNS alla policy dell'argomento nella console Amazon SNS e quindi specificare l'argomento nella console CloudTrail.

Per aggiornare manualmente una policy di un argomento SNS
  1. Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/v3/home.

  2. Scegliere Topics (Argomenti) e quindi l'argomento.

  3. Scegliere Other topic actions (Altre azioni argomento) e quindi Edit topic policy (Modifica policy argomento).

  4. Scegliere Advanced view (Vista avanzata) e aggiungere l'istruzione da SNS topic policy con i valori appropriati per la regione, l'ID account e il nome di argomento.

  5. Scegli Update policy (Aggiorna policy).

  6. Se l'argomento è crittografato, devi concedere a CloudTrail le autorizzazioni kms:GenerateDataKey* e kms:Decrypt. Per ulteriori informazioni, consultare Encrypted SNS topic KMS key policy.

  7. Torna alla console CloudTrail e specifica l'argomento per il percorso.

Risoluzione dei problemi della policy dell'argomento SNS

Le seguenti sezioni descrivono come risolvere i problemi relativi alla policy degli argomenti SNS.

Errori di configurazione comuni della policy SNS

Quando crei un nuovo argomento durante il processo di creazione o aggiornamento di un percorso, CloudTrail allega le autorizzazioni necessarie all'argomento. La policy dell'argomento usa il nome principale del servizio, "cloudtrail.amazonaws.com", che permette a CloudTrail di inviare notifiche per tutte le regioni.

Se CloudTrail non invia le notifiche per una regione, è possibile che l'argomento includa una policy non aggiornata che specifica gli ID account CloudTrail per ciascuna regione. Questa policy fornisce a CloudTrail l'autorizzazione per inviare notifiche solo per le regioni specificate.

La seguente policy dell'argomento consente a CloudTrail di inviare notifiche solo per le nove regioni specificate:

Esempio Policy dell'argomento con gli ID account
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::903692715234:root", "arn:aws:iam::035351147821:root", "arn:aws:iam::859597730677:root", "arn:aws:iam::814480443879:root", "arn:aws:iam::216624486486:root", "arn:aws:iam::086441151436:root", "arn:aws:iam::388731089494:root", "arn:aws:iam::284668455005:root", "arn:aws:iam::113285607260:root" ]}, "Action": "SNS:Publish", "Resource": "aws:arn:sns:us-east-1:123456789012:myTopic" }] }

Questa policy utilizza un'autorizzazione basata su singoli ID account CloudTrail. Per distribuire i registri per una nuova regione, devi aggiornare manualmente la policy per includere l'ID account CloudTrail per tale regione. Ad esempio, poiché in CloudTrail è stato aggiunto il supporto per la regione Stati Uniti orientali (Ohio), devi aggiornare la policy in modo da aggiungere l'ARN dell'ID account per tale regione: "arn:aws:iam::475085895292:root".

Come best practice, aggiorna la policy in modo che usi un'autorizzazione con il principale del servizio CloudTrail. A tale scopo, sostituisci gli ARN degli ID account con il nome principale del servizio: "cloudtrail.amazonaws.com".

Ciò concede a CloudTrail l'autorizzazione per inviare notifiche per le regioni attuali e per quelle nuove. Di seguito è riportata una versione aggiornata del policy precedente:

Esempio Policy dell'argomento con il nome principale del servizio
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:123456789012:myTopic" }] }

Verifica che la policy includa i valori corretti:

  • Nel campo Resource, specificare il numero di account del proprietario dell'argomento. Per gli argomenti creati specificare il numero di account.

  • Specificare i valori appropriati per la regione e il nome dell'argomento SNS.

Risorse aggiuntive

Per informazioni sugli argomenti Amazon SNS e sulla relativa sottoscrizione, consulta la Guida per sviluppatori di Amazon Simple Notification Service.