Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

273
Views
La acción del depósito de S3 no se aplica a ningún recurso

Estoy siguiendo las instrucciones de esta respuesta para generar la siguiente política de depósito S3:

 { "Id": "Policy1495981680273", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1495981517155", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::surplace-audio", "Principal": "*" } ] }

me devuelve el siguiente error:

La acción no se aplica a ningún recurso(s) en la declaración

¿Qué me falta en mi póliza?

over 4 years ago · Santiago Trujillo
15 answers
Answer question

0

Debe verificar el patrón del arn definido en la etiqueta de recurso para la política-

"Recurso": "arn:aws:s3:::s3mybucketname/*"

Agregar "/*" al final ayudaría a resolver el problema si lo enfrenta incluso después de haber desbloqueado su política de acceso público para su depósito.

over 4 years ago · Santiago Trujillo Report

0

También me he enfrentado a un problema similar al crear el depósito.

 { "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mrt9949" ] } ] }

He cambiado el código anterior a

 { "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mrt9949/*" ] } ] }

agregue /* al nombre de su depósito, resolverá el problema

Aquí mi nombre de cubo es mrt9949

over 4 years ago · Santiago Trujillo Report

0

En mi caso la solución a este error fue intentar eliminar algunas de las Acciones que estaba aplicando. Algunos de ellos no son relevantes o no pueden funcionar con este recurso. En este caso no me dejaría incluir estos:

GetBucketAcl ListBucket ListBucketMultipartUploads

over 4 years ago · Santiago Trujillo Report

0

También puede configurar ListBuckets para cada carpeta, así

 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESPuts-1521238702575", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::buckets.email/*", "Condition": { "StringEquals": { "aws:Referer": "[red]" } } }, { "Sid": "Stmt1586754972129", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::596322993031:user/[red]" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::buckets.email", "Condition": { "StringEquals": { "s3:delimiter": "/", "s3:prefix": [ "", "domain.co", "domain.co/user" ] } } }, { "Sid": "Stmt1586754972129", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::596322993031:user/[red]" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::buckets.email", "Condition": { "StringLike": { "s3:prefix": "domain.co/user/*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::596322993031:user/[red]" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::buckets.email/domain.co/user/*" } ] }

Estas reglas se usan junto con SES para recibir un correo electrónico, pero permiten que un usuario externo vea los archivos que SES colocó en el depósito. Seguí las instrucciones de aquí: https://aws.amazon.com/blogs/security/writing-iam-policies-grant-access-to-user-specific-folders-in-an-amazon-s3-bucket/

Además, debe especificar el prefijo como domain.co/user/ CON una barra inclinada al final cuando use el SDK; de lo contrario, se le denegará el acceso. espero que ayude a alguien

over 4 years ago · Santiago Trujillo Report

0

  • Vaya a Amazon S3 en su instancia.
  • Vaya a la pestaña Permisos -> Acceso público.
  • Selecciona Editar y desmarca Bloquear todos los accesos públicos y guardar.
  • Verá la etiqueta 'Público' en la pestaña Permiso y en la Lista de control de acceso.
over 4 years ago · Santiago Trujillo Report

0

Siempre que intente aplicar políticas de depósito de uso. Recuerde esto, si está utilizando acciones como "s3:ListBucket", "s3:GetBucketPolicy", "s3:GetBucketAcl", etc. que están relacionadas con el depósito, el atributo de recurso en la política debe mencionarse como <"Resource": " arn:aws:s3:::nombre_depósito">.

Ex.

 { "Version": "2012-10-17", "Id": "Policy1608224885249", "Statement": [ { "Sid": "Stmt1608226298927", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetBucketPolicy", "s3:GetBucketAcl", "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket_name" } ] }

Si utiliza acciones como "s3:GetObject", "s3:DeleteObject", "s3:GetObject", etc., que están relacionadas con el objeto, el atributo de recurso en la política debe mencionarse como <"Resource": "arn:aws: s3:::nombre_depósito/*">.

ex.

 { "Id": "Policy1608228066771", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1608228057071", "Action": [ "s3:DeleteObject", "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*", "Principal": "*" } ] }

Finalmente, si usa acciones como "s3:ListBucket", "s3:GetObject", etc., estas acciones están relacionadas tanto con el depósito como con el objeto, entonces el atributo de recurso en la política debe mencionarse como <"Recurso": ["arn:aws: s3:::bucket_name/*", "Resource": "arn:aws:s3:::bucket_name">.

ex.

 { "Version": "2012-10-17", "Id": "Policy1608224885249", "Statement": [ { "Sid": "Stmt1608226298927", "Effect": "Allow", "Principal": "*", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*" ] } ] }
over 4 years ago · Santiago Trujillo Report

0

Esto es tan simple que solo agrega "/*" al final. Solo ha proporcionado el enlace del directorio raíz, pero la acción debe aplicarse al objeto.

Escriba, "Recurso": "arn:aws:s3:::surplace-audio/*"

over 4 years ago · Santiago Trujillo Report

0

Desde AWS > Documentación > AWS Identity and Access Management > Guía del usuario https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html

Está claramente definido en una nota. Algunos servicios no le permiten especificar acciones para recursos individuales.

usa el comodín * en el elemento Resource

"Recurso": "arn:aws:s3:::surplace-audio/*"

over 4 years ago · Santiago Trujillo Report

0

De los documentos de IAM, http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Action

Algunos servicios no le permiten especificar acciones para recursos individuales; en su lugar, cualquier acción que enumere en el elemento Action o NotAction se aplica a todos los recursos de ese servicio. En estos casos, utiliza el comodín * en el elemento Resource.

Con esta información, el recurso debería tener un valor como el siguiente:

 "Resource": "arn:aws:s3:::surplace-audio/*"
over 4 years ago · Santiago Trujillo Report

0

La acción de error no se aplica a ningún recurso en la declaración

Simplemente significa que la acción (que escribió en la política) no se aplica al recurso. Estaba tratando de hacer público mi cubo para que cualquiera pueda descargarlo. Recibía un error hasta que eliminé ("s3:ListBucket") de mi estado de cuenta.

 { "Id": "Policyxxxx961", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxxxx4365", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket-name/*", "Principal": "*" } ] }

Debido a que el depósito de lista no se aplica dentro del depósito, al eliminar esta política de acción funcionó bien.

over 4 years ago · Santiago Trujillo Report

0

Me encontré con este problema y encontré una solución más corta para aquellos que desean tener ListBucket y GetObject en la misma política. Lo importante es enumerar tanto el nombre del depósito como el nombre del depósito/* en Recurso.

 { "Id": "Policyxxxx961", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxxxx4365", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Principal": "*" } ] }
over 4 years ago · Santiago Trujillo Report

0

Simplemente quitar el permiso s3:ListBucket no fue realmente una solución lo suficientemente buena para mí, y probablemente no lo sea para muchos otros.

Si desea el permiso s3:ListBucket , solo necesita tener el arn simple del depósito (sin /* al final), ya que este permiso se aplica al depósito en sí y no a los elementos dentro del depósito.

Como se muestra a continuación, debe tener el permiso s3:ListBucket como una declaración separada de los permisos relacionados con elementos dentro del depósito como s3:GetObject y s3:PutObject :

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Principal": { "AWS": "[IAM ARN HERE]" }, "Resource": "arn:aws:s3:::my-bucket-name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Principal": { "AWS": "[IAM ARN HERE]" }, "Resource": "arn:aws:s3:::my-bucket-name/*" } ] }
over 4 years ago · Santiago Trujillo Report

0

Solo haga un cambio en el recurso de política json.

 "Resource": ["arn:aws:s3:::bucket-name/*"]

Nota: agregue /* después del nombre del depósito

Documentos de referencia: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html

over 4 years ago · Santiago Trujillo Report

0

Para solucionar este problema, lo que debe hacer en la regla de política es ubicar el Resource y agregar su arn en la matriz, uno con * y el segundo sin * al final. Esto solucionará el error.

 { "Version": "2012-10-17", "Id": "Policy3783783783738", "Statement": [ { "Sid": "Stmt1615891730703", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::76367367633:user/magazine-demo-root-user" }, "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:GetBucketLocation", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:Get*", "s3:Put*" ], "Resource": [ "arn:aws:s3:::magazine-demo", "arn:aws:s3:::magazine-demo/*" ] } ] }
over 4 years ago · Santiago Trujillo Report

0

Es posible que tenga varias declaraciones de política y este error es muy genérico. Lo mejor es comentar todas las demás declaraciones excepto cualquiera (como solo GetObject, ListBuckets o PutObject) y ejecutar el código y ver. Si funciona bien, significa que la ruta del ARN es correcta. De lo contrario, el ARN debe incluir solo el nombre del depósito o un nombre de depósito con /*.

Algunos recursos como ListBucket aceptan ARN con el nombre completo como "arn:aws:s3:::bucket_name", mientras que GetObject o PutObject esperan /* después de bucket_name. ¡Cambie los ARN de acuerdo con el servicio y debería funcionar ahora!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!