Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Esempi di policy per i bucket che utilizzano le chiavi di condizione

Modalità Focus
Esempi di policy per i bucket che utilizzano le chiavi di condizione - 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à.

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à.

È possibile utilizzare in linguaggio delle policy di accesso per specificare le condizioni quando si concedono le autorizzazioni. È possibile utilizzare l'elemento opzionale Condition, o blocco Condition, per specificare le condizioni per l'entrata in vigore di una policy.

Per le policy che utilizzano le chiavi di condizioni di Amazon S3 per operazioni su oggetti e bucket, consulta gli esempi seguenti. Per ulteriori informazioni su queste chiavi di condizione, consulta Chiavi di condizione per Amazon S3. Per un elenco completo delle azioni, delle chiavi di condizione e delle risorse di Amazon S3 che è possibile specificare nelle policy, consulta Azioni, risorse e chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.

Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

Esempi: Chiavi di condizione di Amazon S3 per operazioni sugli oggetti

Gli esempi seguenti mostrano come si possono usare le chiavi di condizione specifiche di Amazon S3 per le operazioni sugli oggetti. Per un elenco completo delle azioni, delle chiavi di condizione e delle risorse di Amazon S3 che è possibile specificare nelle policy, consulta Azioni, risorse e chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.

Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

Molte delle policy di esempio mostrano come è possibile utilizzare le chiavi di condizione con le operazioni PUT Object. Le operazioni PUT Object permettono intestazioni specifiche della lista di controllo degli accessi (ACL) che è possibile utilizzare per concedere autorizzazioni basate sulle liste ACL. Utilizzando queste chiavi di condizione, è possibile impostare una condizione per richiedere autorizzazioni di accesso specifiche quando l'utente carica un oggetto. Puoi anche concedere autorizzazioni basate su ACL con l'operazione. PutObjectAcl Per ulteriori informazioni, consulta il riferimento PutObjectAclall'API Amazon S3 Amazon Simple Storage Service. Per ulteriori informazioni su ACLs, consultaPanoramica delle liste di controllo accessi (ACL).

Esempio 1: concessione dell'autorizzazione a s3:PutObject che richiede che gli oggetti siano memorizzati utilizzando la crittografia lato server

Si supponga che l'Account A possieda un bucket. L'amministratore dell'account vuole concedere a Jane, un utente dell'account A, l'autorizzazione a caricare oggetti con la condizione che Jane richieda sempre la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3). L'amministratore del conto A può specificare questo requisito utilizzando la chiave di condizione s3:x-amz-server-side-encryption, come mostrato. La coppia chiave-valore nel seguente blocco Condition specifica la chiave di condizione s3:x-amz-server-side-encryption e SSE-S3 (AES256) come tipo di crittografia:

"Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" }}

Quando si verifica questa autorizzazione utilizzando il AWS CLI, è necessario aggiungere la crittografia richiesta utilizzando il --server-side-encryption parametro, come illustrato nell'esempio seguente. Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni.

aws s3api put-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg --body c:\HappyFace.jpg --server-side-encryption "AES256" --profile AccountAadmin

Esempio 2: Concessione all'indirizzo s3:PutObject dell'autorizzazione a copiare oggetti con una restrizione sull'origine della copia

In una richiesta di PUT oggetto, quando si specifica un oggetto di origine, la richiesta è un'operazione di copia (vedere CopyObject). Di conseguenza, il proprietario del bucket può concedere all'utente l'autorizzazione a copiare oggetti con restrizioni sull'origine, ad esempio:

  • Consente di copiare gli oggetti solo dal bucket di origine specificato (ad esempio, amzn-s3-demo-source-bucket).

  • Consente di copiare gli oggetti dal bucket di origine specificato e solo gli oggetti il cui prefisso del nome della chiave inizia con un prefisso specifico, come ad esempio public/ (ad esempio, amzn-s3-demo-source-bucket/public/*).

  • Consente di copiare solo un oggetto specifico dal bucket di origine (ad esempio, amzn-s3-demo-source-bucket/example.jpg).

La seguente policy del bucket concede a un utente (Dave) l'autorizzazione s3:PutObject. Questa policy gli consente di copiare gli oggetti solo a condizione che la richiesta includa l'intestazione s3:x-amz-copy-source e che il valore dell'intestazione specifichi il prefisso del nome della chiave /amzn-s3-demo-source-bucket/public/*. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "cross-account permission to user in your own account", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*" }, { "Sid": "Deny your user permission to upload object if copy source is not /bucket/prefix", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*", "Condition": { "StringNotLike": { "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/*" } } } ] }
Verifica la politica con AWS CLI

È possibile verificare l'autorizzazione utilizzando il AWS CLI copy-object comando. È possibile specificare l'origine aggiungendo il parametro --copy-source; il prefisso del nome della chiave deve corrispondere al prefisso consentito nella policy. È necessario fornire le credenziali all'utente Dave utilizzando il parametro --profile. Per ulteriori informazioni sulla configurazione di AWS CLI, consulta Developing with Amazon S3 using the AWS CLI nell'Amazon S3 API Reference.

aws s3api copy-object --bucket amzn-s3-demo-source-bucket --key HappyFace.jpg --copy-source amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg --profile AccountADave
Concessione dell'autorizzazione a copiare solo un oggetto specifico

La policy di cui sopra utilizza la condizione StringNotLike. Per concedere l'autorizzazione a copiare solo un oggetto specifico, è necessario modificare la condizione da StringNotLike a StringNotEquals e quindi specificare la chiave dell'oggetto esatto, come mostrato nell'esempio seguente. Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni.

"Condition": { "StringNotEquals": { "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg" } }

Esempio 3: concessione dell'accesso a una versione specifica di un oggetto

Si supponga che l'account A possieda un bucket con controllo delle versioni abilitato. Il bucket ha diverse versioni dell'oggetto HappyFace.jpg. L'amministratore dell'account A vuole ora concedere all'utente Dave il permesso di ottenere solo una versione specifica dell'oggetto. L'amministratore dell'account può ottenere questo risultato concedendo all'utente Dave l'autorizzazione s3:GetObjectVersion in modo condizionato, come mostrato nell'esempio seguente. La coppia chiave-valore nel blocco Condition specifica la chiave di condizione s3:VersionId. In questo caso, per recuperare l'oggetto dal bucket con controllo delle versioni abilitato specificato, Dave deve conoscere l'ID esatto della versione dell'oggetto. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

Per ulteriori informazioni, consulta GetObjectnel riferimento all'API di riferimento di Amazon Simple Storage Service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:GetObjectVersion", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg" }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:GetObjectVersion", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg", "Condition": { "StringNotEquals": { "s3:VersionId": "AaaHbAQitwiL_h47_44lRO2DDfLlBO5e" } } } ] }
Testa la policy con AWS CLI

È possibile verificare le autorizzazioni contenute in questa politica utilizzando il AWS CLI get-object comando con il --version-id parametro per identificare la versione specifica dell'oggetto da recuperare. Il comando recupera la versione specificata dell'oggetto e la salva nel file OutputFile.jpg.

aws s3api get-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg OutputFile.jpg --version-id AaaHbAQitwiL_h47_44lRO2DDfLlBO5e --profile AccountADave

Esempio 4: concessione di autorizzazioni in base ai tag degli oggetti

Per esempi su come utilizzare le chiavi di condizione del tagging degli oggetti con le operazioni di Amazon S3, consulta Tagging e policy di controllo degli accessi.

Esempio 5: Limitazione dell'accesso in base all'ID Account AWS del proprietario del bucket

Puoi utilizzare la chiave aws:ResourceAccount o s3:ResourceAccount condition per scrivere policy endpoint IAM o Virtual Private Cloud (VPC) che limitano l'accesso di utenti, ruoli o applicazioni ai bucket Amazon S3 di proprietà di un ID specifico. Account AWS È possibile utilizzare queste chiavi di condizione per limitare l'accesso dei client all'interno del VPC ai bucket non di proprietà dell'utente.

Tuttavia, tieni presente che alcuni AWS servizi si basano sull'accesso a bucket gestiti. AWS Pertanto, l'utilizzo della chiave aws:ResourceAccount o s3:ResourceAccount nelle policy IAM potrebbe influire sull'accesso a queste risorse. Per ulteriori informazioni, consulta le seguenti risorse:

Per ulteriori informazioni sulle chiavi di condizione aws:ResourceAccount e s3:ResourceAccount ed esempi che mostrano come usarle, consulta Limitare l'accesso ai bucket Amazon S3 di proprietà di specifici Account AWS nello AWS Storage Blog.

Esempio 6: Richiesta di una versione TLS minima

È possibile utilizzare la chiave di condizione s3:TlsVersion per scrivere policy IAM, endpoint di cloud privato virtuale (VPCE) o bucket che limitano l'accesso di utenti o applicazioni ai bucket Amazon S3 in base alla versione TLS utilizzata dal client. È possibile utilizzare questa chiave di condizione per scrivere policy che richiedono una versione TLS minima.

Il seguente esempio di policy del bucket nega le richieste di PutObject da parte di client che hanno una versione di TLS precedente a 1.2, ad esempio 1.1 o 1.0. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "NumericLessThan": { "s3:TlsVersion": 1.2 } } } ] }

Il seguente esempio di policy del bucket consente le richieste di PutObject da parte di client che hanno una versione TLS successiva alla 1.1, ad esempio 1.2, 1.3 o successiva:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "NumericGreaterThan": { "s3:TlsVersion": 1.1 } } } ] }

Esempio 7: Esclusione di alcuni principali da un'istruzione Deny

La seguente policy dei bucket nega a s3:GetObject l'accesso a amzn-s3-demo-bucket, tranne che ai principali con il numero di account 123456789012. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Effect": "Deny", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }

Esempio 8: imporre ai client di caricare oggetti in modo condizionale in base ai nomi delle chiavi degli oggetti o ETags

Con le scritture condizionali, è possibile aggiungere un'intestazione aggiuntiva alle richieste di WRITE per specificare le precondizioni dell'operazione S3. Questa intestazione specifica una condizione che, se non viene soddisfatta, comporta il fallimento dell'operazione S3. Ad esempio, si può evitare la sovrascrittura di dati esistenti convalidando che non vi siano oggetti con lo stesso nome di chiave già presenti nel bucket durante il caricamento degli oggetti. In alternativa, puoi controllare il tag di entità di un oggetto (ETag) in Amazon S3 prima di scrivere un oggetto.

Per esempi di policy di bucket che utilizzano le condizioni in una policy di bucket per imporre scritture condizionali, consulta Applicazione delle scritture condizionali sui bucket Amazon S3.

Esempi: Chiavi di condizione di Amazon S3 per le operazioni sui bucket

I seguenti esempi di policy mostrano come sia possibile utilizzare chiavi di condizione specifiche di Amazon S3 per le operazioni sui bucket.

Esempio 1: concessione dell'autorizzazione a s3:GetObject con una condizione su un indirizzo IP

È possibile concedere agli utenti autenticati il permesso di utilizzare l'azione s3:GetObject se la richiesta proviene da un intervallo specifico di indirizzi IP (ad esempio, 192.0.2.*), a meno che l'indirizzo IP non sia uno di quelli che si desidera escludere (ad esempio, 192.0.2.188). Nel blocco Condition, IpAddress e NotIpAddress sono condizioni e a ciascuna condizione viene fornita una coppia chiave-valore da valutare. Entrambe le coppie chiave-valore in questo esempio utilizzano la aws:SourceIp AWS chiave wide. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

Nota

I valori delle chiavi IPAddress e NotIpAddress specificati nel blocco Condition utilizzano la notazione CIDR, come descritto in RFC 4632. Per ulteriori informazioni, consulta http://www.rfc-editor. org/rfc/rfc4632.txt.

{ "Version": "2012-10-17", "Id": "S3PolicyId1", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": "*", "Action":"s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition" : { "IpAddress" : { "aws:SourceIp": "192.0.2.0/24" }, "NotIpAddress" : { "aws:SourceIp": "192.0.2.188/32" } } } ] }

Puoi anche utilizzare altre chiavi di condizione AWS a livello di ‐wide nelle policy di Amazon S3. Ad esempio, è possibile specificare le chiavi di condizione aws:SourceVpce e aws:SourceVpc nelle policy di bucket per gli endpoint VPC. Per esempi specifici consulta Controllo dell'accesso dagli endpoint VPC con policy di bucket.

Nota

Per alcune chiavi di condizione AWS globali, sono supportati solo determinati tipi di risorse. Pertanto, verificare se Amazon S3 supporta la chiave di condizione globale e il tipo di risorsa che si desidera utilizzare, o se invece è necessario utilizzare una chiave di condizione specifica di Amazon S3. Per un elenco completo dei tipi di risorse e delle chiavi di condizione supportate per Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.

Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

Esempio 2: recupero di un elenco di oggetti in un bucket con un prefisso specifico

È possibile utilizzare il tasto s3:prefix condition per limitare la risposta di ListObjectsV2Funzionamento dell'API sui nomi delle chiavi con un prefisso specifico. Se si è il proprietario del bucket, si può usare questa chiave di condizione per limitare un utente a elencare il contenuto di un prefisso specifico nel bucket. La chiave di condizione s3:prefix è utile se gli oggetti del bucket sono organizzati per prefissi di nomi di chiavi.

La console di Amazon S3 utilizza i prefissi dei nomi delle chiavi per mostrare un concetto di cartella. Solo la console supporta il concetto di cartelle, mentre l'API Amazon S3 supporta solo bucket e oggetti. Ad esempio, se si hanno due oggetti con i nomi delle chiavi public/object1.jpg e public/object2.jpgla console mostra gli oggetti sotto la cartella public. Nell'API Amazon S3 questi sono oggetti con prefissi, non oggetti nelle cartelle. Per ulteriori informazioni sull'utilizzo di prefissi e delimitatori per filtrare le autorizzazioni di accesso, consulta Procedura guidata: controllo dell'accesso a un bucket con policy utente.

Nel seguente scenario, il proprietario del bucket e l'account padre a cui appartiene l'utente sono gli stessi. Il proprietario del bucket può quindi utilizzare una policy del bucket o una policy dell'utente per concedere l'accesso. Per ulteriori informazioni su altre chiavi di condizione che è possibile utilizzare con l'operazione ListObjectsV2 API, consulta ListObjectsV2.

Nota

Se per il bucket è abilitato il controllo delle versioni, per elencare gli oggetti nel bucket è necessario concedere l'autorizzazione s3:ListBucketVersions nelle policy seguenti, invece dell'autorizzazione s3:ListBucket. Il permesso s3:ListBucketVersions supporta anche la chiave di condizione s3:prefix.

Policy utente

La seguente politica utente concede l's3:ListBucketautorizzazione (vedi ListObjectsV2) con un'Conditionistruzione che richiede all'utente di specificare un prefisso nella richiesta con un valore di. projects Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action": "s3:ListBucket", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket", "Condition" : { "StringEquals" : { "s3:prefix": "projects" } } }, { "Sid":"statement2", "Effect":"Deny", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition" : { "StringNotEquals" : { "s3:prefix": "projects" } } } ] }

L'istruzione Condition limita l'utente a elencare solo le chiavi degli oggetti che hanno il prefisso projects. L'aggiunta dell'istruzione esplicita Deny impedisce all'utente di elencare le chiavi con qualsiasi altro prefisso, indipendentemente dalle altre autorizzazioni di cui dispone. Ad esempio, è possibile che l'utente ottenga l'autorizzazione a elencare le chiavi degli oggetti senza alcuna restrizione, sia attraverso l'aggiornamento della precedente policy dell'utente sia attraverso una policy del bucket. Poiché le istruzioni esplicite Deny sovrascrivono sempre le istruzioni Allow, se l'utente tenta di elencare chiavi diverse da quelle che hanno il prefisso projects, la richiesta viene rifiutata.

Policy del bucket

Se si aggiunge l'elemento Principal alla policy utente di cui sopra, che identifica l'utente, si ottiene una policy del bucket, come mostrato nell'esempio seguente. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/bucket-owner" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition" : { "StringEquals" : { "s3:prefix": "projects" } } }, { "Sid":"statement2", "Effect":"Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/bucket-owner" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition" : { "StringNotEquals" : { "s3:prefix": "projects" } } } ] }
Verificate la politica con AWS CLI

È possibile testare la politica utilizzando il seguente list-object AWS CLI comando. Nel comando, vengono fornite le credenziali utente utilizzando il parametro --profile. Per ulteriori informazioni sulla configurazione e l'utilizzo di AWS CLI, consulta Developing with Amazon S3 using the AWS CLI nel Amazon S3 API Reference.

aws s3api list-objects --bucket amzn-s3-demo-bucket --prefix projects --profile AccountA

Esempio 3: impostazione del numero massimo di chiavi

Puoi utilizzare la chiave di s3:max-keys condizione per impostare il numero massimo di chiavi che un richiedente può restituire in un ListObjectsV2 o ListObjectVersions. Per impostazione predefinita, queste operazioni API restituiscono fino a 1.000 chiavi. Per un elenco di operatori di condizione numerici che è possibile utilizzare con s3:max-keys e i relativi esempi, consulta Operatori di condizione numerici nella Guida per l'utente di IAM.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.