subir servidores servicios nube glacier aws archivos amazon-web-services amazon-s3

amazon-web-services - servidores - sign in amazon aws



No se pueden descargar los archivos cargados por el cubo s3 de la cuenta compartida (4)

Creé un depósito en Amazon s3 y agregué una política de depósito que le da acceso a otra cuenta de usuario para cargar archivos en él. Agregué la siguiente política de depósito.

Sin embargo, ahora no puedo descargar los archivos subidos por el compartidor. Supongo que no les he dado derechos de acl. ¿Cómo debo proceder para descargar los archivos? ¿Pueden otorgar permiso de su parte para sus archivos cargados?

{ "Version": "2008-10-17", "Id": "Policyxxxxxxxxxxxx", "Statement": [ { "Sid": "Stmtxxxxxxxxxxxxx", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<account_number>:root" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject" ], "Resource": "arn:aws:s3:::<bucket_name>/*" }, { "Sid": "Stmtxxxxxxxxxxx", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<account_number>:root" }, "Action": [ "s3:PutBucketLogging", "s3:PutBucketNotification", "s3:ListBucket" ], "Resource": "arn:aws:s3:::<bucket_name>" } ] }



Por lo tanto, el problema es que el depósito de amazon s3 aplica la política de depósito solo a los objetos que posee el propietario del depósito. Por lo tanto, si usted es el propietario del depósito y le otorgó permiso de objeto put a través de la política de depósito, eso significa que también debe asegurarse de que le den permiso durante la carga del objeto. Al otorgar permisos de cuenta cruzada para cargar objetos, uno puede restringir solo los objetos que solo tengan permiso de lectura.

Fuente: http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html Discusión relacionada: https://forums.aws.amazon.com/thread.jspa?messageID=524342&%20#524342 Ejemplo política de cubos:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"111", "Effect":"Allow", "Principal":{ "AWS":"1111111111" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::examplebucket/*" }, { "Sid":"112", "Effect":"Deny", "Principal":{ "AWS":"1111111111" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::examplebucket/*", "Condition":{ "StringNotEquals":{ "s3:x-amz-grant-full-control":[ "[email protected]" ] } } } ] }


Enfrenté un problema similar

Copié archivos de <sharerprofile> a una nueva cuenta de Amazon en el depósito <bucketname> cubo <bucketname> y no pude descargar los archivos de la nueva cuenta de Amazon debido a la protección de acceso.

Entonces hice lo siguiente:

aws --profile <sharerprofile> s3api put-object-acl --acl authenticated-read --bucket <bucketname> --key <pathofthefileInBucket>

No encontré cómo hacer esto automáticamente para varios archivos, así que tuve que repetir el mismo comando para cada archivo


Estaba enfrentando una situación similar a la de que no se otorgó acceso completo a la cuenta de destino que la política de bloque que otorga el acceso de lectura en la nube no funciona.

Además de "s3:x-amz-grant-full-control":[ "[email protected]" ] , o id=xxx , otra forma es usar la ACL enlatada . Al usar el bucket-owner-full-control del bucket-owner-full-control , no es necesario que mencionemos un correo electrónico específico o una identificación canónica.

{ "Statement":[ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"s3:PutObject", "Resource":["arn:aws:s3:::examplebucket/*","arn:aws:s3:::examplebucket"] }, { "Effect":"Deny", "Principal":{"AWS":"111111111111"}, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::examplebucket/*", "Condition": { "StringNotEquals": {"s3:x-amz-acl":"bucket-owner-full-control"} } } ] }