La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-support
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à.
Gestione degli accessi aAmazon S3Bucket utilizzando policy di bucket
È possibile impostare, ottenere o eliminare unpolicy di bucketper gestire l'accesso al tuoAmazon S3Bucket.
Impostare una policy di bucket
È possibile impostare una policy di bucket per un determinato bucket S3 tramite:
-
Chiamare il client AmazonS3
setBucketPolicy
e fornendogli unSetBucketPolicyRequest -
Impostazione diretta del criterio utilizzando il
setBucketPolicy
overload che accetta il nome del bucket e il testo del criterio (in formato JSON)
Importazioni
import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.policy.Policy; import com.amazonaws.auth.policy.Principal;
Codice
s3.setBucketPolicy(bucket_name, policy_text); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Utilizzare la classe di criteri per generare o convalidare un criterio
Quando fornisce una policy di bucket asetBucketPolicy
è possibile effettuare le seguenti operazioni:
-
Specificare il criterio direttamente come stringa di testo formattato JSON
-
Crea il criterio utilizzando ilPolicyclasse
Usando ilPolicy
class, non devi preoccuparti della formattazione corretta della stringa di testo. Per ottenere il testo della policy JSON dalPolicy
classe, usa il suotoJson
metodo.
Importazioni
import com.amazonaws.auth.policy.Resource; import com.amazonaws.auth.policy.Statement; import com.amazonaws.auth.policy.actions.S3Actions; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder;
Codice
new Statement(Statement.Effect.Allow) .withPrincipals(Principal.AllUsers) .withActions(S3Actions.GetObject) .withResources(new Resource( "{region-arn}s3:::" + bucket_name + "/*"))); return bucket_policy.toJson();
LaPolicy
fornisce inoltre unafromJson
metodo che può tentare di creare un criterio utilizzando una stringa JSON passata. Il metodo lo convalida per garantire che il testo possa essere trasformato in una struttura di criteri valida e fallirà con unIllegalArgumentException
se il testo del criterio non è valido.
Policy bucket_policy = null; try { bucket_policy = Policy.fromJson(file_text.toString()); } catch (IllegalArgumentException e) { System.out.format("Invalid policy text in file: \"%s\"", policy_file); System.out.println(e.getMessage()); }
È possibile utilizzare questa tecnica per preconvalidare un criterio letto da un file o da altri mezzi.
Vedi l'esempio completo
Ottenere una policy di bucket
Per recuperare una policy per unAmazon S3bucket, chiama il client AmazonS3getBucketPolicy
metodo, passando il nome del bucket da cui ottenere la polizza.
Importazioni
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder;
Codice
try { BucketPolicy bucket_policy = s3.getBucketPolicy(bucket_name); policy_text = bucket_policy.getPolicyText(); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Se il bucket denominato non esiste, se non si ha accesso ad esso, o se non ha criteri di bucket,AmazonServiceException
viene generato.
Vedi l'esempio completo
Eliminare una policy del bucket
Per eliminare una politica del bucket, chiama il client AmazonS3deleteBucketPolicy
fornisce il nome del bucket.
Importazioni
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3;
Codice
try { s3.deleteBucketPolicy(bucket_name); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Questo metodo ha esito positivo anche se il bucket non ha già una politica. Se si specifica un nome di bucket che non esiste o se non si ha accesso al bucket,AmazonServiceException
viene generato.
Vedi l'esempio completo
Ulteriori informazioni
-
Panoramica della sintassi della policy di accessonellaAmazon Simple Storage ServiceGuida per l’utente di
-
Esempi di policy di bucketnellaAmazon Simple Storage ServiceGuida per l’utente di