it-swarm.it

Problema di autorizzazione Amazon S3 - Come impostare le autorizzazioni per tutti i file contemporaneamente?

Ho caricato alcuni file tramite Amazon AWS mangement.

Ho ricevuto un errore 403. Accesso negato. Ho scoperto che ho bisogno di impostare permisson per visualizzare.

Come farlo per tutti i file sul bucket? So che è possibile impostare l'autorizzazione per ogni file. Ci vogliono molte volte quando si hanno veramente tanti file che devono essere visibili a tutti. 

74
Rails beginner

Suggerisco di applicare una politica del bucket1 nel secchio in cui si desidera memorizzare il contenuto pubblico. In questo modo non devi impostare ACL per ogni oggetto. Ecco un esempio di un criterio che renderà tutti i file nel bucket mybucket public.

{
    "Version": "2008-10-17",
    "Id": "http better policy",
    "Statement": [
        {
            "Sid": "readonly policy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
        }
    ]
}

Questo * in "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" consente la ricorsione.


1 Si noti che un criterio Bucket è diverso da un criterio IAM. (Per uno si verifica un errore se si tenta di includere Principal in un criterio IAM.) Il criterio Bucket può essere modificato passando alla radice del bucket nella console Web AWS e espandendo Proprietà> Autorizzazioni. Le sottodirectory di un bucket hanno anche Proprietà> Autorizzazioni, ma non c'è alcuna opzione per Edit bucket policy

115
cloudberryman

Ho usato Cloudberry Explorer per fare il lavoro :) Cioè: http://cloudberrylab.com/free-Amazon-s3-Explorer-cloudfront-IAM.aspx

5
Rails beginner

È possibile selezionare la directory che si desidera rendere pubblica.

Premi "altro" e contrassegnalo come pubblico; renderà la directory e tutti i file accessibili come pubblici.

5
mohammad zein

Puoi modificare gli ACL solo per un oggetto unico (benna o oggetto), soy dovrai cambiarli uno per uno. 

Alcune applicazioni di gestione S3 consentono di applicare lo stesso ACL a tutti gli elementi in un bucket, ma internamente applica l'ACL a ciascuno di essi.

Se carichi i tuoi file a livello di codice, è importante specificare l'ACL mentre carichi il file, quindi non devi modificarlo in seguito. Il problema dell'utilizzo di un'applicazione di gestione S3 (come Cloudberry, Transmit, ...) è che la maggior parte di loro utilizza l'ACL predefinito (solo lettura privata) quando si carica ciascun file.

4
Daniel García

Ho avuto lo stesso problema durante il caricamento dei file attraverso il programma (Java) al s3 bucket ..

Errore: Nessuna intestazione 'Access-Control-Allow-Origin' è presente sulla risorsa richiesta L'origine ' http: // localhost: 9000 ' non è quindi consentita l'accesso. La risposta aveva codice di stato HTTP 403

Ho aggiunto l'identità Origin e modificato la configurazione di bucket policy e CORS, quindi tutto ha funzionato correttamente.

2
Manju Shingadi

È possibile impostare ACL su ogni file usando aws cli:

BUCKET_NAME=example
BUCKET_DIR=media
NEW_ACL=public-read

aws s3 ls $BUCKET_NAME/$BUCKET_DIR/ | \
awk '{$1=$2=$3=""; print $0}' | \
xargs -t -I _ \
aws s3api put-object-acl --acl $NEW_ACL --bucket $BUCKET_NAME --key "$BUCKET_DIR/_"
1
moppag

Per rendere pubblica una grande quantità di file, fai quanto segue:

  1. Vai a Interfaccia web S3
  2. Aprire il secchio richiesto
  3. Seleziona i file e le cartelle richiesti facendo clic sulle caselle di controllo a sinistra dell'elenco
  4. Fai clic sul pulsante «Altro» nella parte superiore dell'elenco, fai clic su «Crea pubblico»
  5. Confermare facendo clic su "Rendi pubblico". I file non avranno un accesso pubblico in scrittura nonostante l'avvertenza indichi «... leggi questo oggetto, leggi e scrivi permessi».
1
Finesse

Usando S3 Browser puoi aggiornare i permessi usando la GUI, anche in modo ricorsivo. È uno strumento utile e gratuito per uso non commerciale. 

1
Paul Siersma

Usa Generatore di politiche AWS per generare una politica adatta alle tue esigenze. L'elemento principale nel generatore di politiche dovrebbe essere l'utente/ruolo IAM che useresti per accedere all'oggetto (i) . L'ARN della risorsa dovrebbe essere arn: aws: s3 ::: mybucket/sub/dirs/are/supportato/*

Quindi, fai clic su "Aggiungi istruzione" e segui. Alla fine otterrai un JSON che rappresenta la politica. Incollalo nella sezione di gestione dei criteri del bucket s3 che si trova nella "tua pagina bucket s3 in AWS -> autorizzazioni -> criterio bucket".

0
user2906555

Trasmetti 5

Volevo aggiungerlo qui per i potenziali utenti macOS che hanno già l'app FTP splendidamente predisposta, chiamata Transmit by Panic.

Avevo già Panic e supporta i bucket S3 (non sono sicuro di quale versione fosse disponibile, ma penso che gli aggiornamenti fossero gratuiti). Supporta anche l'aggiornamento ricorsivo delle autorizzazioni di lettura e scrittura.

È sufficiente fare clic con il pulsante destro del mouse sulla directory che si desidera aggiornare e selezionare le autorizzazioni di lettura e scrittura su cui si desidera impostarle.

Non sembra terribilmente veloce ma puoi aprire il file di registro andando su Window> Transcript in modo che tu sappia che sta facendo qualcosa.

0
Joshua Pinter