Tengo la siguiente política de acceso establecida en un usuario de IAM en mi cuenta de AWS. La política hace referencia al nombre del depósito que es "xo-staging".
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToGetBucketLocation", "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AccessToWebsiteBuckets", "Effect": "Allow", "Action": [ "s3:PutBucketWebsite", "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::xo-staging", "arn:aws:s3:::xo-staging/*" ] }, { "Sid": "AccessToCloudfront", "Effect": "Allow", "Action": [ "cloudfront:GetInvalidation", "cloudfront:CreateInvalidation" ], "Resource": "*" } ] }Estoy implementando una aplicación Gatsby desde mi máquina local a Github donde estoy usando Github Actions para ejecutar un script de compilación e implementación.
En mi archivo package.json configuré "implementar" en el valor de gatsby-plugin-s3 deploy --yes; export AWS_PAGER=\"\"; aws cloudfront create-invalidation --distribution-id E5FDMTLPHUTLTL --paths '/*'; en mi archivo workflows.yml configuré "implementar" en npm run deploy .
En Github, mi compilación tiene éxito pero mi implementación falla. El error que recibo me dice "AccessControlListNotSupported: el depósito no permite ACL".
Revisé los permisos reales del depósito en AWS e intenté seleccionar diferentes opciones, pero siempre aparece el mismo mensaje de error. En otras palabras, he intentado eliminar todos los bloqueos en el acceso público y las ACL, pero el problema persiste.
¿Puede alguien sugerir qué podría necesitar cambiar para que esta implementación completa funcione?
Vaya a su depósito, en la pestaña Permisos , busque Propiedad del objeto y haga clic en Editar . Seleccione las ACL habilitadas y lea atentamente las advertencias de AWS sobre posibles riesgos de seguridad
Agregando capturas de pantalla a la respuesta proporcionada por @rudieros