Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

279
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda