Chiavi di condizione di 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à.

Chiavi di condizione di Amazon S3

La sintassi delle policy di accesso consente di specificare le condizioni al momento dell'assegnazione delle autorizzazioni. Per specificare le condizioni per la validità di una policy, è possibile utilizzare l'elemento facoltativo Condition o il blocco Condition per specificare le condizioni per la validità di una policy. Puoi utilizzare chiavi predefinite AWS a livello di larghezza e chiavi specifiche di Amazon S3 per specificare le condizioni in una policy di accesso di Amazon S3.

Nell'elemento Condition è possibile creare espressioni con operatori booleani (uguale a, minore di e così via) per soddisfare la condizione rispetto ai valori contenuti nella richiesta. Ad esempio, quando si assegna a un utente l'autorizzazione per caricare un oggetto, il proprietario del bucket può richiedere che l'oggetto sia leggibile pubblicamente aggiungendo la condizione StringEquals come mostrato di seguito.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "public-read" } } } ] }

Nell'esempio, il blocco Condition specifica la condizione StringEquals che viene applicata alla coppia chiave-valore "s3:x-amz-acl":["public-read"]. Esiste un insieme predefinito di chiavi che possono essere utilizzate nell'espressione di una condizione. L'esempio utilizza la chiave di condizione s3:x-amz-acl. Questa condizione prevede che l'utente includa l'intestazione x-amz-acl con il valore public-read in ogni richiesta PUT object.

Chiavi di condizioni valide per tutto AWS

AWS fornisce un set di chiavi comuni supportate da tutti i servizi che supportano le policy. AWS Queste chiavi sono chiamate chiavi valide per tutto AWS e usano il prefisso aws:. Per un elenco completo di chiavi di condizione valide per tutto AWS, consulta Chiavi AWS disponibili per le condizioni nella Guida per l'utente di IAM. Puoi utilizzare chiavi di condizione AWS‐wide in Amazon S3. La seguente policy di bucket di esempio concede agli utenti autenticati l'autorizzazione per utilizzare l'operazione s3:GetObject se la richiesta proviene da un intervallo specifico di indirizzi IP (192.0.2.0.*), escluso l'indirizzo IP 192.0.2.188. Nel blocco di condizioni, IpAddress e NotIpAddress sono condizioni e per ogni condizione viene fornita una coppia chiave-valore per la valutazione. Entrambe le coppie chiave-valore in questo esempio utilizzano la chiave ‐wide. aws:SourceIp AWS

Nota

I valori chiave IPAddress e NotIpAddress specificati nella condizione 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:::awsexamplebucket1/*", "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 sarà invece necessario utilizzare una chiave di condizione specifica per Amazon S3. Per un elenco completo dei tipi di risorse e delle chiavi di condizione supportati per Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 nel Service Authorization Reference.

Chiavi di condizione specifiche di Amazon S3

È possibile utilizzare le chiavi di condizione di Amazon S3 con operazioni specifiche di Amazon S3. Ogni chiave di condizione esegue la mappatura all'intestazione di richiesta dello stesso nome autorizzata dall'API su cui può essere impostata la condizione. Le chiavi di condizione specifiche di Amazon S3 determinano il comportamento delle intestazioni di richiesta con lo stesso nome. Per un elenco completo delle chiavi di condizione specifiche di Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 nel Service Authorization Reference.

Ad esempio, la chiave di condizione s3:x-amz-acl che può essere utilizzata per assegnare l'autorizzazione della condizione per l'autorizzazione s3:PutObject definisce il comportamento dell'intestazione di richiesta x-amz-acl supportata dall'API PUT Object. La chiave di condizione s3:VersionId che può essere utilizzata per assegnare l'autorizzazione condizionale per l'autorizzazione s3:GetObjectVersion definisce il comportamento del parametro di query versionId impostato in una richiesta GET Object.

La seguente policy sui bucket concede l's3:PutObjectautorizzazione per due Account AWS se la richiesta include l'x-amz-aclintestazione che rende l'oggetto leggibile pubblicamente. Il blocco Condition utilizza la condizione StringEquals ed è dotato di una coppia chiave-valore, "s3:x-amz-acl":["public-read", per la valutazione. Nella coppia chiave-valore, la s3:x-amz-acl è una chiave specifica di Amazon S3, come indicato dal prefisso s3:.

{ "Version":"2012-10-17", "Statement": [ { "Sid":"AddCannedAcl", "Effect":"Allow", "Principal": { "AWS": [ "arn:aws:iam::Account1-ID:root", "arn:aws:iam::Account2-ID:root" ] }, "Action":"s3:PutObject", "Resource": ["arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringEquals": { "s3:x-amz-acl":["public-read"] } } } ] }
Importante

Non tutte le condizioni hanno significato per tutte le operazioni. Ha senso, ad esempio, includere una condizione s3:LocationConstraint in una policy che concede l'autorizzazione s3:CreateBucket di Amazon S3. Non ha tuttavia senso includere questa condizione in una policy che concede l'autorizzazione s3:GetObject. Amazon S3 può verificare la presenza di errori semantici di questo tipo che riguardano condizioni specifiche di Amazon S3. Se tuttavia stai creando una policy per un utente o un ruolo IAM e includi una condizione di Amazon S3 che non è valida sotto il profilo semantico, non viene segnalato alcun errore perché IAM non può convalidare le condizioni di Amazon S3.