Creó un usuario de IAM, con acceso completo a S3 (S3:*) en un ARN específico (solo un depósito). Cargar y eliminar trabajos, pero no poder cambiar el nombre o copiar/pegar.
Esta es mi política de IAM.
{ "Sid": "Stmt1490288788", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] }No sé si esta es la solución correcta, pero dar permiso a ListAllMyBuckets funcionó para mí.
Acabo de agregar otra declaración junto con la anterior.
{ "Sid": "Stmt1490288788", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] }{ "Sid": "Stmt1490289746001", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "arn:aws:s3:::*" ] }Por lo tanto, esta política enumera todos los depósitos, pero solo permite poner/eliminar/obtener acceso al depósito específico. Todavía me pregunto cuál es la relación entre renombrar/copiar y enumerar todos los permisos del depósito.
Si bien en realidad no hay una función de cambio de nombre en S3, algunas interfaces pueden intentar implementarla mediante el uso de acciones S3 PUT de copia de objetos y ELIMINAR entre bastidores. Su implementación puede requerir otros permisos a nivel de depósito para completarse, por lo que puede estar fallando con su política. Prueba esto:
{ "Sid": "Stmt1490288788", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }La diferencia es que esto otorga permisos a las acciones realizadas en el propio depósito (el primer recurso declarado), así como los objetos en el depósito (el segundo recurso declarado).