Non riesco a capire come impostare la politica del bucket per ottenere ciò che voglio. Qualsiasi aiuto sarebbe molto apprezzato! Le mie regole desiderati sono:Come impostare il criterio bucket S3 su (principalmente) privato quando object acl è pubblico?
- utenti nel mio account hanno accesso tramite criteri utente, quindi non dovrebbe essere necessario l'accesso specificamente concessa loro
- utenti anonimi (o nessuno al di fuori il mio account AWS) non dovrebbe avere accesso, ad eccezione :
- una cartella/temp_public deve avere un oggetto pubblico GetObject (ovvero se si conosce l'URL è possibile ottenere il file)
- queste politiche devono eseguire l'override dell'oggetto ACL sui file nel bucket, a volte gli ACL dell'oggetto vengono impostati leggere in pubblico
La ragione per la creazione della politica di secchio è che molti degli oggetti nel secchio hanno un pubblico di leggere ACL (involontariamente impostato quando sono stati caricati i file, ma potrebbe anche accadere in futuro, quindi voglio ignorare l'ACL dell'oggetto con il secchio ACL).
Ignorando la cartella temp_public, speravo ho potuto solo fare questo:
{
"Version": "2008-10-17",
"Id": "Policy123456789",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
(dove 123456789012
è il mio numero di conto AWS), ma ottengo l'accesso negato per tutti gli utenti con tale politica secchio. Immagino che NotPrincipal non stia funzionando in questo caso?
grazie per eventuali suggerimenti!
Rory
UPDATE: cross-postato sui forum here AWS, e ha risposto!