Policy del bucket Amazon S3 per CloudTrail - AWS CloudTrail

Policy del bucket Amazon S3 per CloudTrail

Per impostazione predefinita, i bucket e gli oggetti Amazon S3 sono privati. Solo il proprietario della risorsa (l'account AWS che ha creato il bucket) può accedere al bucket e agli oggetti in esso contenuti. Il proprietario della risorsa può concedere le autorizzazioni di accesso ad altre risorse e ad altri utenti mediante una policy di accesso.

Per creare o modificare un bucket Amazon S3 per ricevere file di log per un percorso dell'organizzazione, devi cambiare la policy del bucket. Per ulteriori informazioni, consulta Creazione di un percorso per un'organizzazione con AWS Command Line Interface.

Per distribuire i file di log in un bucket S3, CloudTrail deve disporre delle autorizzazioni necessarie e non può essere configurato come bucket di tipo Requester Pays (Pagamento a carico del richiedente).

CloudTrail aggiunge automaticamente i seguenti campi nella policy:

  • SID consentiti

  • Nome del bucket

  • Nome principale del servizio per CloudTrail

  • Nome della cartella in cui i file di log vengono archiviati, compresi il nome del bucket, l'eventuale prefisso e il tuo ID account AWS

Come best practice per la sicurezza, aggiungi una chiave di condizione aws:SourceArn per la policy del bucket Amazon S3. La chiave di condizione globale di IAM aws:SourceArn aiuta a garantire che CloudTrail scriva sul bucket S3 solo per un percorso o percorsi specifici. Il valore di aws:SourceArn è sempre l'ARN del percorso (o array del percorso ARN) che utilizza il bucket per memorizzare i registri. Assicurarsi di aggiungere la chiave di condizione aws:SourceArn alle politiche del bucket S3 per i percorsi esistenti.

La policy seguente permette a CloudTrail di scrivere i file di log nel bucket delle regioni supportate. Sostituisci myBucketName, [optionalPrefix]/, myAccountID, region e trailName con i valori appropriati per la tua configurazione.

Policy del bucket S3

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

Per ulteriori informazioni su Regioni AWS, consulta Regioni supportate da CloudTrail.

Specifica di un bucket esistente per la distribuzione dei log CloudTrail

Se hai specificato un bucket S3 esistente come la posizione di storage per la distribuzione dei file di log, devi allegare al bucket una policy che permetta a CloudTrail di scrivere nel bucket.

Nota

Come best practice, usa un bucket S3 dedicato per i log CloudTrail.

Per aggiungere la policy CloudTrail richiesta a un bucket Amazon S3
  1. Apri la console Amazon S3 su https://console.aws.amazon.com/s3/.

  2. Scegli il bucket in CloudTrail dove distribuire i file di registro, quindi Autorizzazioni.

  3. Scegliere Edit (Modifica).

  4. Copiare la S3 bucket policy nella finestra Bucket Policy Editor (Editor policy bucket). Sostituire i segnaposto in corsivo con i nomi per il bucket, il prefisso e il numero di account. Se è stato specificato un prefisso durante la creazione del trail, includerlo qui. Il prefisso è un'aggiunta opzionale alla chiave dell'oggetto S3 che crea un'organizzazione con stile cartella nel tuo bucket.

    Nota

    Se il bucket esistente dispone già di una o più policy allegate, aggiungi le istruzioni per l'accesso di CloudTrail a tali policy. Valutare il set di autorizzazioni risultante per accertarsi che siano appropriate per gli utenti che accedono al bucket.

Ricezione di file di log da altri account

Puoi configurare CloudTrail in modo che distribuisca i file di log da più account AWS in un unico bucket S3. Per ulteriori informazioni, consulta Ricezione di file di log CloudTrail da più account Redazione degli ID account del proprietario del bucket per eventi dati chiamati da altri account.

Creazione o aggiornamento di un bucket Amazon S3 da utilizzare per archiviare i file di log per un percorso dell'organizzazione

Devi specificare un bucket Amazon S3 per ricevere i file di log per un percorso dell'organizzazione. Questo bucket deve avere una policy che permetta a CloudTrail di inserire i file di log per l'organizzazione nel bucket.

Di seguito è riportata una policy di esempio per un bucket Amazon S3 denominato myOrganizationBucket. Questo bucket si trova in un account AWS con l'ID 111111111111, che è l'account di gestione per un'organizzazione con ID o-exampleorgid che permette la registrazione per un percorso dell'organizzazione. Permette inoltre la registrazione per l'account 111111111111 nel caso in cui il percorso venga modificato da percorso dell'organizzazione a percorso solo per tale account. Sostituisci myOrganizationBucket, 111111111111, region e trailName con i valori appropriati per la tua configurazione.

Il criterio di esempio include una chiave di condizione aws:SourceArn per la policy del bucket Amazon S3. La chiave di condizione globale IAM aws:SourceArn aiuta a garantire che CloudTrail scriva sul bucket S3 solo per trail specifici. In un trail dell'organizzazione, il valore di aws:SourceArn deve essere un ARN trail di proprietà dell'account di gestione e utilizza l'ID dell'account di gestione.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myOrganizationBucket", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:111111111111:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/111111111111/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:111111111111:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/o-exampleorgid/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:111111111111:trail/trailName" } } } ] }

Questa policy di esempio non consente agli utenti degli account membri di accedere ai file di log creati per l'organizzazione. Per impostazione predefinita, i file di log dell'organizzazione sono accessibili solo per l'account di gestione. Per informazioni su come permettere l'accesso in lettura al bucket Amazon S3 per gli utenti IAM degli account membri, consulta Condivisione di file di log di CloudTrail tra account AWS.

Risoluzione dei problemi della policy del bucket Amazon S3

Le seguenti sezioni descrivono come risolvere i problemi relativi alla policy del bucket S3.

Errori di configurazione comuni della policy Amazon S3

Quando crei un nuovo bucket durante il processo di creazione o aggiornamento di un percorso, CloudTrail allega le autorizzazioni necessarie al bucket. La policy del bucket usa il nome principale del servizio, "cloudtrail.amazonaws.com", che permette a CloudTrail di distribuire i registri per tutte le regioni.

Se CloudTrail non distribuisce i registri per una regione, è possibile che il bucket includa una policy non aggiornata che specifica gli ID account CloudTrail per ciascuna regione. Questa policy fornisce a CloudTrail l'autorizzazione per distribuire i registri solo per le regioni specificate.

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 distribuire i registri per le regioni attuali e per quelle nuove. Come best practice per la sicurezza, aggiungi una chiave di condizione aws:SourceArn o aws:SourceAccount per la policy del bucket Amazon S3. Ciò consente di impedire l'accesso non autorizzato all'account al bucket S3. Se hai percorsi esistenti, assicurati di aggiungere una o più chiavi di condizione. Di seguito è riportato l’esempio di configurazione consigliata della policy. Sostituisci myBucketName, [optionalPrefix]/, myAccountID, region e trailName con i valori appropriati per la tua configurazione.

Esempio Policy del bucket con il nome principale del servizio
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

Modifica di un prefisso per un bucket esistente

Se cerchi di aggiungere, modificare o rimuovere un prefisso di file di log per un bucket S3 che riceve i log da un percorso, è possibile che venga visualizzato il seguente errore: There is a problem with the bucket policy (Si è verificato un problema con la policy del bucket). Una policy del bucket con un prefisso errato può far sì che un trail non sia in grado di distribuire i log nel bucket. Per risolvere questo problema, utilizza la console Amazon S3 per aggiornare il prefisso nella policy del bucket e quindi utilizza la console CloudTrail per specificare lo stesso prefisso per il bucket nel percorso.

Per aggiornare il prefisso del file di log per un bucket Amazon S3
  1. Apri la console Amazon S3 su https://console.aws.amazon.com/s3/.

  2. Scegli il bucket per cui modificare il prefisso, quindi Autorizzazioni.

  3. Scegliere Edit (Modifica).

  4. Nella policy del bucket, per l'azione s3:PutObject modificare la voce Resource per aggiungere, modificare o rimuovere il prefisso/ del file di log, a seconda dei casi.

    "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/prefix/AWSLogs/myAccountID/*",
  5. Seleziona Salva.

  6. Aprire la console CloudTrail all'indirizzo https://console.aws.amazon.com/cloudtrail/.

  7. Scegliere il trail e in Storage location (Percorso di storage) fare clic sull'icona a forma di matita per modificare le impostazioni del bucket.

  8. In Bucket S3, scegliere il bucket con il prefisso che si sta modificando.

  9. In Log file prefix (Prefisso file di log), aggiornare il prefisso in modo che corrisponda al prefisso immesso nella policy del bucket.

  10. Seleziona Salva.

Risorse aggiuntive

Per ulteriori informazioni sulle policy e i bucket S3, consulta la Guida per gli sviluppatori di Amazon Simple Storage Service.