View a markdown version of this page

Blocco dell'accesso pubblico allo storage Amazon S3 - Amazon Simple Storage 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à.

Blocco dell'accesso pubblico allo storage Amazon S3

La funzionalità Amazon S3 Block Public Access fornisce impostazioni per punti di accesso, bucket, account e ti aiuta AWS Organizations a gestire l'accesso pubblico alle risorse Amazon S3. Per impostazione predefinita, nuovi bucket, access point e oggetti non consentono l'accesso pubblico. Tuttavia, gli utenti possono modificare le policy di bucket, le policy di access point o le autorizzazioni degli oggetti per consentire l'accesso pubblico. Le impostazioni di blocco dell'accesso pubblico in S3 sostituiscono le policy e le autorizzazioni, in modo da limitare l'accesso pubblico a queste risorse.

Con S3 Block Public Access, gli amministratori dell'organizzazione, gli amministratori degli account e i proprietari di bucket possono configurare facilmente controlli centralizzati per limitare l'accesso pubblico alle proprie risorse Amazon S3, che vengono applicati indipendentemente dal modo in cui le risorse vengono create.

Puoi gestire le impostazioni di Block Public Access a più livelli: a livello di organizzazione (utilizzo AWS Organizations), a livello di account e a livello di bucket e punto di accesso. Per istruzioni sulla configurazione dell'accesso pubblico ai blocchi, consulta Configurazione del blocco dell'accesso pubblico.

Quando Amazon S3 riceve una richiesta di accesso a un bucket o a un oggetto, determina se per il bucket o l'account del proprietario del bucket è applicata un'impostazione di blocco dell'accesso pubblico. Se l'account fa parte di una policy AWS Organizations con Block Public Access, Amazon S3 verifica anche le impostazioni a livello di organizzazione. Se la richiesta è stata effettuata tramite un punto di accesso, Amazon S3 controlla anche la presenza di impostazioni di blocco dell'accesso pubblico per il punto di accesso. Se è presente un'impostazione di blocco dell'accesso pubblico che vieta l'accesso richiesto, Amazon S3 rifiuta la richiesta.

Il blocco dell'accesso pubblico di Amazon S3 comprende quattro impostazioni. Queste impostazioni sono indipendenti e possono essere usate in qualunque combinazione. Ogni impostazione può essere applicata a un punto di accesso, a un bucket o a un intero Account AWS. A livello di organizzazione, tutte e quattro le impostazioni vengono applicate insieme come politica unificata: non è possibile selezionare le singole impostazioni in modo granulare. Se le impostazioni di blocco dell'accesso pubblico per il punto di accesso, il bucket o l'account sono diverse, Amazon S3 applica la combinazione più restrittiva di impostazioni del punto di accesso, del bucket e dell'account. Account-level le impostazioni ereditano automaticamente le politiche a livello di organizzazione quando presenti e S3 adotta la politica più restrittiva tra le impostazioni a livello di bucket e quelle effettive a livello di account. Ad esempio, se la tua organizzazione ha una politica di blocco dell'accesso pubblico abilitata, ma per un bucket specifico l'opzione Block Public Access è disabilitata a livello di bucket, il bucket sarà comunque protetto perché S3 applica le impostazioni a livello di bucket più restrittive. organization/account Al contrario, se la politica dell'organizzazione è disabilitata ma per un bucket è abilitata l'opzione Block Public Access, quel bucket rimane protetto dalle relative impostazioni a livello di bucket.

Quando Amazon S3 valuta se un'operazione è vietata da un'impostazione di blocco dell'accesso pubblico, rifiuta qualsiasi richiesta che violi una politica dell'organizzazione (che applica l'impostazione BPA dell'account) o un punto di accesso, un bucket o un'impostazione dell'account.

Importante

L'accesso pubblico viene concesso a bucket e oggetti tramite liste di controllo accessi (ACL), policy per access point, policy di bucket o tutti. Per garantire che l'accesso pubblico sia bloccato per tutti gli access point, i bucket e gli oggetti di Amazon S3, ti consigliamo di attivare tutte e quattro le impostazioni per bloccare l'accesso pubblico per l'account. Per le organizzazioni che gestiscono più account, prendi in considerazione l'utilizzo di politiche di accesso pubblico a blocchi a livello di organizzazione per il controllo centralizzato. Inoltre, ti consigliamo di attivare anche tutte e quattro le impostazioni per ogni bucket per conformarti al controllo Security Foundational AWS Security Best Practices di Security. S3.8 Queste impostazioni bloccano l'accesso pubblico per tutti i bucket e access point correnti e futuri.

Prima di applicare queste impostazioni, verifica che le applicazioni funzionino correttamente senza accesso pubblico. Se è richiesto un certo livello di accesso pubblico ai bucket o agli oggetti, ad esempio per ospitare un sito Web statico come descritto in Hosting di un sito Web statico tramite Amazon S3, puoi personalizzare le impostazioni individuali in funzione dei casi d'uso di storage.

L'abilitazione di Blocca accesso pubblico aiuta a proteggere le risorse, impedendo che l'accesso pubblico sia concesso attraverso le policy delle risorse o le liste di controllo degli accessi (ACL) direttamente collegate alle risorse S3. Oltre ad abilitare l’opzione Blocca accesso pubblico, controlla attentamente le seguenti policy per verificare che non forniscano l’accesso pubblico:

  • Identity-based politiche collegate ai AWS principali associati (ad esempio, i ruoli IAM)

  • Resource-based politiche allegate alle AWS risorse associate (ad esempio, chiavi AWS Key Management Service (KMS))

Nota
  • È possibile abilitare le impostazioni di blocco dell'accesso pubblico solo per organizzazioni, punti di accesso, bucket e. Account AWS Amazon S3 non supporta le impostazioni di blocco dell'accesso pubblico per i singoli oggetti.

  • Quando applichi le impostazioni di blocco dell'accesso pubblico a un account, le impostazioni si applicano a tutti a Regioni AWS livello globale. Le impostazioni possono non diventare effettive in tutte le regioni immediatamente o allo stesso momento, ma vengono infine propagate in tutte le regioni.

  • Quando si applicano politiche di accesso pubblico a blocchi a livello di organizzazione, queste si propagano automaticamente agli account dei membri selezionati e sostituiscono le impostazioni a livello di account.

Impostazioni di blocco dell'accesso pubblico

Il blocco dell'accesso pubblico in S3 comprende quattro impostazioni. È possibile applicare queste impostazioni in qualsiasi combinazione a singoli access point, bucket o a interi account Account AWS. A livello di organizzazione, è possibile abilitare o disabilitare tutte e quattro le impostazioni contemporaneamente solo utilizzando un approccio «tutte» o «nessuna»: il controllo granulare sulle singole impostazioni non è disponibile. Se applichi un'impostazione a un account, questa si applica a tutti i bucket e i punti di accesso di proprietà di quell'account. Account-level le impostazioni ereditano automaticamente dalle politiche dell'organizzazione, se presenti. Analogamente, se applichi un'impostazione a un bucket, questa si applica a tutti gli access point associati al bucket.

L'ereditarietà e l'applicazione delle politiche funzionano come segue:

  • Organization-level le politiche si applicano automaticamente agli account dei membri, applicando tutte le impostazioni esistenti a livello di account

  • Account-level impostazione: eredita dalle politiche dell'organizzazione, se presenti, o utilizza impostazioni configurate localmente quando non esiste alcuna politica dell'organizzazione

  • Bucket-level le impostazioni funzionano in modo indipendente ma sono soggette a restrizioni di applicazione. S3 applica la combinazione più restrittiva a tutti i livelli applicabili: impostazioni a organization/account livello e a livello di bucket. Ciò significa che un bucket eredita la protezione di base dal suo account (che può essere gestito dall'organizzazione), ma S3 applicherà la configurazione più restrittiva tra le impostazioni del bucket e le impostazioni effettive dell'account.

La tabella seguente contiene le impostazioni disponibili.

Nome Descrizione
BlockPublicAcls

Se questa opzione è impostata su TRUE, produce il comportamento seguente:

  • PutBucketAcl e PutObjectAcl falliscono se la lista di controllo degli accessi (ACL) specificata è pubblica.

  • PutObject fallisce se la richiesta include una ACL pubblica.

  • Se questa impostazione viene applicata a un account, le chiamate PUT Bucket non riescono se la richiesta include una lista di controllo degli accessi pubblica.

Quando questa impostazione è impostata suTRUE, le operazioni specificate hanno esito negativo (indipendentemente dal fatto che vengano eseguite tramite l'API REST o gli SDK). AWS CLI AWS Tuttavia, le policy e le liste di controllo degli accessi esistenti per bucket e oggetti non vengono modificate. Questa impostazione protegge l'ambiente dall'accesso pubblico, permettendo di controllare, perfezionare o modificare in altro modo le policy e le liste di controllo accessi per i bucket e gli oggetti.

Nota

I punti di accesso non hanno ACL associate. Se applicata a un punto di accesso, questa impostazione funge da passthrough al bucket sottostante. Se in un punto di accesso è attivata questa impostazione, le richieste effettuate tramite il punto di accesso si comportano come se il bucket sottostante avesse abilitato questa impostazione, indipendentemente dal fatto che il bucket abbia o meno effettivamente abilitato questa impostazione.

IgnorePublicAcls

Se questa opzione è impostata su TRUE, Amazon S3 ignora tutte le liste ACL pubbliche in un bucket e negli oggetti contenuti. Questa impostazione permette di bloccare in modo sicuro l’accesso pubblico concesso da liste di controllo degli accessi, permettendo comunque le chiamate PutObject che includono una lista di controllo degli accessi pubblica (diversamente da BlockPublicAcls, che rifiuta le chiamate PutObject che includono una lista di controllo degli accessi pubblica). L'abilitazione di questa impostazione non influisce sulla persistenza di qualsiasi lista di controllo accessi esistente e non impedisce l'impostazione di nuove liste di controllo accessi pubbliche.

Nota

Gli access point non hanno ACL associate. Se applicata a un punto di accesso, questa impostazione funge da passthrough al bucket sottostante. Se in un punto di accesso è attivata questa impostazione, le richieste effettuate tramite il punto di accesso si comportano come se il bucket sottostante avesse abilitato questa impostazione, indipendentemente dal fatto che il bucket abbia o meno effettivamente abilitato questa impostazione.

BlockPublicPolicy

L’impostazione di questa opzione su TRUE per un bucket fa sì che Amazon S3 rifiuti le chiamate a PutBucketPolicy se la policy di bucket specificata consente l’accesso pubblico. Impostando questa opzione su TRUE per un bucket, Amazon S3 rifiuta le chiamate a PutAccessPointPolicy per tutti i punti di accesso dello stesso account del bucket se la policy specificata consente l’accesso pubblico.

Impostando questa opzione su TRUE per un punto di accesso, Amazon S3 rifiuta le chiamate a PutAccessPointPolicy e PutBucketPolicy effettuate attraverso il punto di accesso se la policy specificata (per il punto di accesso o il bucket sottostante) consente l’accesso pubblico.

Puoi utilizzare questa impostazione per permettere agli utenti di gestire policy di bucket e punti di accesso impedendo loro di condividere pubblicamente il bucket o gli oggetti che contiene. L'abilitazione di questa impostazione non influisce sulle policy di access point o di bucket esistenti.

Importante

Per usare questa impostazione in modo efficace, consigliamo di applicarla a livello di account. Una policy del bucket può consentire agli utenti di modificare le impostazioni di blocco dell'accesso pubblico di un bucket. Gli utenti autorizzati a modificare la policy del bucket potrebbero inserire una policy che permette loro di disabilitare le impostazioni di blocco dell'accesso pubblico per il bucket. Se questa impostazione è abilitata per l'intero account anziché per un bucket specifico, Amazon S3 blocca le policy pubbliche anche se un utente modifica la policy del bucket per disabilitare l'impostazione.

RestrictPublicBuckets

L'impostazione di questa opzione in modo da TRUE limitare l'accesso a un punto di accesso o a un bucket con una politica pubblica solo ai responsabili del AWS servizio e agli utenti autorizzati all'interno dell'account del proprietario del bucket e dell'account del proprietario del punto di accesso. Questa impostazione blocca tutti gli accessi tra account al punto di accesso o al bucket (ad eccezione dei responsabili del AWS servizio), pur consentendo agli utenti all'interno dell'account di gestire il punto di accesso o il bucket.

L'abilitazione di questa impostazione non influisce sulle policy dell'access point o del bucket esistenti, eccetto che per il fatto che Amazon S3 blocca l'accesso pubblico e multiaccount derivato da qualsiasi policy dell'access point o del bucket pubblica, inclusa la delega non pubblica ad account specifici.

Importante
  • Le chiamate a GetBucketAcl e GetObjectAcl restituiscono sempre le autorizzazioni valide necessarie per il bucket o l’oggetto specificato. Ad esempio, supponiamo che un bucket sia associato a una lista di controllo accessi che concede l'accesso pubblico, ma che per il bucket sia anche abilitata l'impostazione IgnorePublicAcls. In questo caso, GetBucketAcl restituisce una lista ACL che riflette le autorizzazioni di accesso applicate da Amazon S3, anziché la lista ACL effettiva associata al bucket.

  • Le impostazioni del blocco dell'accesso pubblico non modificano le policy o ACL esistenti. La rimozione di una di queste impostazioni fa sì che un bucket o un oggetto con una policy o una lista di controllo accessi pubblica torni pubblicamente accessibile.

Gestione dell'accesso pubblico a blocchi a livello di organizzazione

Organization-level block public access utilizza AWS Organizations policy per gestire centralmente i controlli degli accessi pubblici di S3 in tutta l'organizzazione. Se abilitate, queste politiche si applicano automaticamente agli account selezionati e sostituiscono le impostazioni a livello di account individuali.

Per ulteriori informazioni sul blocco dell'accesso pubblico a livello di organizzazione, consulta la policy di S3 nella guida per l'utente.AWS Organizations

Esecuzione di operazioni di accesso pubblico di blocco su un punto di accesso

Per eseguire operazioni di blocco dell'accesso pubblico su un punto di accesso, utilizza il AWS CLI servizios3control.

Importante

Non è possibile modificare le impostazioni del blocco dell’accesso pubblico per un punto di accesso dopo la sua creazione. È possibile specificare le impostazioni di blocco dell’accesso pubblico per un punto di accesso solo durante la creazione del punto di accesso.

Significato di "pubblico"

Liste di controllo accessi

Amazon S3 considera pubblica una lista ACL di un bucket o di un oggetto se questa concede qualsiasi autorizzazione a membri dei gruppi predefiniti AllUsers e AuthenticatedUsers. Per ulteriori informazioni sui gruppi predefiniti, consulta Gruppi predefiniti di Amazon S3.

Policy di bucket

Quando valuta la policy di un bucket, Amazon S3 inizia presumendo che la policy sia pubblica. Quindi valuta la policy per determinare se si qualifica come non pubblica. Per essere considerata non pubblica, una policy di bucket deve concedere l'accesso solo a valori fissi (valori che non contengono caratteri jolly o una variabile di policy AWS Identity and Access Management) di uno o più degli elementi seguenti:

  • Un AWS responsabile, un utente, un ruolo o un responsabile del servizio aws:PrincipalOrgID (ad es.

  • Un insieme di blocchi Classless Inter-Domain Routings (CIDR), che utilizzano. aws:SourceIp Per ulteriori informazioni sui CIDR, consulta RFC 4632 nel sito Web RFC Editor.

    Nota

    Policy bucket che garantiscono l'accesso condizionato alla chiave di aws:SourceIp condizione con intervalli IP molto ampi (ad esempio, 0.0.0). 0/1) vengono valutati come «pubblici». Sono inclusi valori superiori a /8 per IPv4 e /32 per IPv6 (esclusi gli intervalli privati RFC1918). Il blocco dell’accesso pubblico rifiuta queste policy “pubbliche” e impedisce l’accesso multi-account ai bucket che già utilizzano queste policy “pubbliche”.

  • aws:SourceArn

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:SourceOwner

  • aws:SourceAccount

  • aws:userid, al di fuori del modello "AROLEID:*"

  • s3:DataAccessPointArn

    Nota

    Se utilizzato in una policy di bucket, questo valore può contenere un carattere jolly per il nome del punto di accesso senza rendere pubblica la policy, purché l’ID dell’account sia corretto. Ad esempio, consentendo l'accesso a arn:aws:s3:us-west-2:123456789012:accesspoint/* si consente l'accesso a qualsiasi access point associato all'account 123456789012 nella regione us-west-2, senza rendere pubblica la policy di bucket. Questo comportamento è diverso per le policy del punto di accesso. Per ulteriori informazioni, consulta Access point.

  • s3:DataAccessPointAccount

Per ulteriori informazioni sulle policy di bucket, consulta Policy dei bucket per Amazon S3.

Nota

Quando si utilizzano chiavi di contesto multivalore, è necessario utilizzare gli operatori ForAllValues o ForAnyValue.

Esempio: policy di bucket pubbliche

In queste regole le policy di esempio seguenti sono considerate pubbliche.

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow" }
{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": { "StringLike": {"aws:SourceVpc": "vpc-*"}} }

Queste policy possono essere modificate in non pubbliche includendo una delle chiavi di condizione elencate in precedenza, usando un valore fisso. Ad esempio, l'ultima policy indicata sopra può essere modificata in non pubblica impostando aws:SourceVpc su un valore fisso, come mostrato di seguito.

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": {"StringEquals": {"aws:SourceVpc": "vpc-91237329"}} }

Questo esempio mostra in che modo Amazon S3 valuta una policy di bucket che contiene concessioni di accesso sia pubblico sia non pubblico.

Questo esempio mostra in che modo Amazon S3 valuta una policy del bucket che contiene concessioni di accesso sia pubblico sia non pubblico.

Supponiamo che un bucket sia associato a una policy che concede l'accesso a un set di entità principali fisse. In base alle regole descritte in precedenza, questa policy non è pubblica. Di conseguenza, se abiliti l'impostazione RestrictPublicBuckets, la policy continua a essere valida come indicato, perché RestrictPublicBuckets si applica solo ai bucket associati a policy pubbliche. Tuttavia, se aggiungi un'istruzione pubblica alla policy, RestrictPublicBuckets ha effetto sul bucket. Consente l'accesso al bucket solo ai responsabili del AWS servizio e agli utenti autorizzati dell'account del proprietario del bucket.

Ad esempio, supponiamo che un bucket di proprietà di "Account-1" abbia una politica che contenga quanto segue:

  1. Una dichiarazione che concede l'accesso a AWS CloudTrail (che è un AWS servizio principale)

  2. Una dichiarazione che concede l'accesso all'account "» Account-2

  3. Un'istruzione che concede l'accesso al pubblico, ad esempio specificando "Principal": "*" senza Condition limitante

Questa policy viene qualificata come pubblica a causa della terza istruzione. Con questa politica in vigore e RestrictPublicBuckets abilitata, Amazon S3 consente l'accesso solo da. CloudTrail Anche se l'istruzione 2 non è pubblica, Amazon S3 disabilita l'accesso tramite ".» Account-2 Questo perché la dichiarazione 3 rende pubblica l'intera policy, quindi si applica. RestrictPublicBuckets Di conseguenza, Amazon S3 disabilita l'accesso tra account, anche se la policy delega l'accesso a un account specifico, ".» Account-2 Tuttavia, se rimuovi la dichiarazione 3 dalla policy, la policy non si qualifica come pubblica e non è più applicabile. RestrictPublicBuckets Pertanto, "Account-2" riottiene l'accesso al bucket, anche se lo lasci abilitato. RestrictPublicBuckets

Access point

Amazon S3 valuta le impostazioni di blocco dell'accesso pubblico in modo leggermente diverso per gli access point rispetto ai bucket. Le regole applicate da Amazon S3 per determinare quando una policy di un access point è pubblica sono generalmente le stesse per gli access point e per i bucket, ad eccezione delle seguenti situazioni:

  • Un access point con un'origine di rete VPC è sempre considerato non pubblico, indipendentemente dal contenuto della policy di access point.

  • Una policy di access point che concede l'accesso a un set di access point utilizzando s3:DataAccessPointArn è considerata pubblica. Tieni presente che questo comportamento è diverso rispetto alle policy di bucket. Ad esempio, una policy di bucket che concede l'accesso ai valori di s3:DataAccessPointArn che corrispondono a arn:aws:s3:us-west-2:123456789012:accesspoint/* è considerata pubblica. Tuttavia, la stessa istruzione in una policy di access point renderebbe pubblico l'access point.

Utilizzo di IAM Access Analyzer per S3 per esaminare i bucket pubblici

È possibile utilizzare IAM Access Analyzer per S3 per esaminare i bucket con ACL bucket, policy di bucket o policy del punto di accesso che concedono l'accesso pubblico. IAM Access Analyzer for S3 ti avvisa della presenza di bucket configurati per consentire l'accesso a chiunque su Internet o altro Account AWS, anche all'esterno dell'organizzazione. Account AWS Per ogni bucket pubblico o condiviso, vengono visualizzati risultati che riportano l'origine e il livello di accesso pubblico o condiviso.

In IAM Access Analyzer per S3, è possibile bloccare tutti gli accessi pubblici a un bucket con un solo clic. Inoltre, puoi eseguire il drill-down nelle impostazioni relative alle autorizzazioni a livello di bucket per configurare i livelli di accesso granulari. Per casi d'uso specifici e verificati che richiedono l'accesso pubblico o condiviso, puoi confermare e registrare l'intenzione del bucket di rimanere pubblico o condiviso archiviando i risultati per il bucket.

In rari casi, la valutazione dello strumento di analisi degli accessi IAM per S3 e del blocco dell’accesso pubblico Amazon S3 potrebbe differire a seconda che un bucket sia pubblico o meno. Questo comportamento si verifica perché il blocco dell’accesso pubblico Amazon S3 esegue la convalida dell’esistenza delle azioni oltre a valutare l’accesso pubblico. Supponi che la policy di bucket contenga un’istruzione Action che consenta l’accesso pubblico a un’azione non supportata da Amazon S3 (ad esempio, s3:NotASupportedAction). In questo caso, il blocco dell’accesso pubblico Amazon S3 valuta il bucket come pubblico perché una tale istruzione potrebbe potenzialmente renderlo pubblico se l’azione verrà successivamente supportata. Nei casi in cui il blocco dell’accesso pubblico Amazon S3 e lo strumento di analisi degli accessi AWS IAM per S3 differiscono nelle rispettive valutazioni, è consigliabile esaminare la policy di bucket e rimuovere eventuali azioni non supportate.

Per ulteriori informazioni su IAM Access Analyzer per S3, consultare Revisione dell'accesso al bucket tramite IAM Access Analyzer per S3.

Permissions

Per utilizzare le caratteristiche di blocco dell'accesso pubblico di Amazon S3, sono necessarie le autorizzazioni seguenti.

Operazione Autorizzazioni richieste
Operazione GET per lo stato della policy di bucket s3:GetBucketPolicyStatus
Operazione GET per le impostazioni di blocco dell’accesso pubblico del bucket s3:GetBucketPublicAccessBlock
Operazione PUT per le impostazioni di blocco dell’accesso pubblico del bucket s3:PutBucketPublicAccessBlock
Operazione DELETE per le impostazioni di blocco dell’accesso pubblico del bucket s3:PutBucketPublicAccessBlock
Operazione GET per le impostazioni di blocco dell’accesso pubblico dell’account s3:GetAccountPublicAccessBlock
Operazione PUT per le impostazioni di blocco dell’accesso pubblico dell’account s3:PutAccountPublicAccessBlock
Operazione DELETE per le impostazioni di blocco dell’accesso pubblico dell’account s3:PutAccountPublicAccessBlock
Operazione PUT per le impostazioni di blocco dell’accesso pubblico del punto di accesso s3:CreateAccessPoint
Nota

Per le operazioni DELETE sono necessarie le stesse autorizzazioni necessarie per le operazioni PUT. Non esistono autorizzazioni separate per le operazioni DELETE.

Configurazione del blocco dell'accesso pubblico

Per ulteriori informazioni sulla configurazione dell'accesso pubblico a blocchi per i tuoi Account AWS, i tuoi bucket Amazon S3 e i tuoi access point, consulta i seguenti argomenti: