Estoy siguiendo las instrucciones de esta respuesta para generar la siguiente política de bucket de S3:
{
"Id": "Policy1495981680273",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1495981517155",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::surplace-audio",
"Principal": "*"
}
]
}
Recibo 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?
amazon-web-services
amazon-s3
Philip Kirkbride
fuente
fuente
Respuestas:
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, las acciones que enumere en el elemento Action o NotAction se aplicarán a todos los recursos de ese servicio. En estos casos, usa el comodín * en el elemento Resource.
Con esta información, el recurso debe tener un valor como el siguiente:
fuente
Eliminar el
s3:ListBucket
permiso no fue realmente una buena solución para mí, y probablemente no lo sea para muchos otros.Si desea el
s3:ListBucket
permiso, solo debe tener el arn simple del depósito (sin el/*
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
s3:ListBucket
permiso como una declaración separada de los permisos relacionados con los elementos dentro del depósito comos3:GetObject
ys3:PutObject
:fuente
La acción de error no se aplica a ningún recurso (s) 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í un error hasta que eliminé ("s3: ListBucket") de mi declaración.
Debido a que el depósito de lista no se aplica dentro del depósito, eliminar esta política de acción funcionó bien.
fuente
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.
fuente
Principal
no está permitido para la gramática de la política S3.También me he enfrentado a un problema similar al crear el depósito.
He cambiado el código anterior a
agregue / * al nombre de su depósito, resolverá el problema
Aquí mi nombre de cubo es mrt9949
fuente
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
fuente
Debe verificar el patrón del arn definido en la etiqueta Resource para Policy-
"Recurso": "arn: aws: s3 ::: s3mybucketname / *"
Con la adición de "/ *" 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 Bucket.
fuente
fuente
También puede configurar ListBuckets para cada carpeta, así
Estas reglas se utilizan junto con SES para recibir un correo electrónico, pero permiten que un usuario externo vea los archivos que SES puso en el depósito. Seguí las instrucciones desde 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 barra al final cuando use el SDK; de lo contrario, se le denegará el acceso. espero que ayude a alguienfuente