In che modo Amazon S3 autorizza una richiesta - Amazon Simple Storage Service

In che modo Amazon S3 autorizza una richiesta

Quando Amazon S3 riceve una richiesta, ad esempio un'operazione su un bucket o su un oggetto, verifica innanzitutto che il richiedente disponga delle autorizzazioni necessarie. Amazon S3 valuta quindi tutte le policy di accesso, le policy utente e le policy basate sulle risorse (la policy del bucket e le ACL del bucket e dell'oggetto) pertinenti per decidere se autorizzare la richiesta.

Per determinare se il richiedente dispone dell'autorizzazione per eseguire l'operazione specifica, Amazon S3, quando riceve una richiesta, effettua le operazioni riportate di seguito, nell'ordine indicato:

  1. Converte tutte le policy di accesso (la policy utente, la policy del bucket e le ACL) pertinenti in un insieme di policy da valutare in fase di esecuzione.

  2. Valuta l'insieme di policy risultante nelle fasi successive. In ciascuna fase, Amazon S3 valuta un sottoinsieme di policy in un contesto specifico, in base all'autorità del contesto.

    1. Contesto dell'utente – Nel contesto dell'utente l'account padre a cui l'utente appartiene è l'autorità del contesto.

      Amazon S3 valuta un sottoinsieme di policy di proprietà dell'account padre. Questo sottoinsieme include la policy utente che l'account padre ha associato all'utente. Se l'account padre è proprietario anche della risorsa nella richiesta (bucket, oggetto), Amazon S3 valuta, allo stesso tempo, anche le policy della risorsa (la policy del bucket e le ACL del bucket e dell'oggetto) corrispondenti.

      Per eseguire l'operazione, un utente deve essere autorizzato da un account padre.

      Questa fase si applica solo se la richiesta viene eseguita da un utente in un Account AWS. Se la richiesta viene eseguita utilizzando le credenziali root di un Account AWS, Amazon S3 ignora questa fase.

    2. Contesto del bucket: nel contesto del bucket, Amazon S3 valuta le policy che appartengono all'account Account AWS proprietario del bucket.

      Se la richiesta riguarda un'operazione su un bucket, il richiedente deve essere disporre dell'autorizzazione concessa dal proprietario del bucket. Se la richiesta riguarda un oggetto, Amazon S3 valuta tutte le policy appartenenti al proprietario del bucket per verificare che quest'ultimo non abbia negato in modo esplicito l'accesso all'oggetto. Se è stato impostato un rifiuto esplicito, Amazon S3 non autorizza la richiesta.

    3. Contesto dell'oggetto – Se la richiesta riguarda un oggetto, Amazon S3 valuta il sottoinsieme di policy che appartengono al proprietario dell'oggetto.

Di seguito sono riportati alcuni degli scenari di esempio che illustrano come Amazon S3 autorizza una richiesta.

Esempio Il richiedente è un principale IAM

Se il richiedente è un principal IAM, Amazon S3 deve determinare se l'Account AWS parent, al quale appartiene il principal, ha concesso al principal l'autorizzazione necessaria per eseguire l'operazione. Inoltre, se la richiesta riguarda un'operazione su un bucket, ad esempio una richiesta per elencare il contenuto del bucket, Amazon S3 deve verificare che il proprietario del bucket abbia concesso al richiedente l'autorizzazione per eseguire l'operazione. Per eseguire un'operazione specifica su una risorsa, un principal IAM deve disporre dell'autorizzazione concessa sia dall'Account AWS parent al quale appartiene sia dall'Account AWS proprietario della risorsa.

Esempio Il richiedente è un principale IAM: se si tratta di una richiesta per un'operazione su un oggetto che il proprietario del bucket non possiede.

Se la richiesta riguarda un'operazione su un oggetto che non appartiene al proprietario del bucket, oltre a verificare che il richiedente disponga delle autorizzazioni concesse dal proprietario dell'oggetto, Amazon S3 deve anche controllare la policy del bucket per assicurarsi che il proprietario del bucket non abbia impostato un rifiuto esplicito sull'oggetto. Il proprietario del bucket (che paga la fattura) può negare in modo esplicito l'accesso agli oggetti nel bucket, indipendentemente dall'utente a cui appartiene. Il proprietario del bucket può anche eliminare tutti gli oggetti nel bucket.

Per impostazione predefinita, quando un altro Account AWS carica un oggetto nel bucket S3, tale account (l'object writer) possiede l'oggetto, ne ha accesso e può concedere ad altri utenti l'accesso tramite le liste di controllo degli accessi (ACL). È possibile utilizzare Object Ownership per modificare questo comportamento di default in modo che le ACL siano disabilitate e che tu, in qualità di proprietario del bucket, possieda automaticamente ogni oggetto nel tuo bucket. Di conseguenza, il controllo degli accessi per i tuoi dati è basato su policy, come policy IAM, policy bucket S3, policy endpoint del cloud privato virtuale (VPC) e policy di controllo dei servizi (SCP) di AWS Organizations. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Per ulteriori informazioni su come Amazon S3 valuta le policy di accesso per autorizzare o negare le richieste di operazioni su bucket e oggetti, consulta i seguenti argomenti: