All flash briefing requests are coming from an Alexa device (probably via an Amazon service) so there should be a way to identify and allow these without making an S3 bucket fully public.
This could most likely be achieved using Conditions or Principals but we would have to know the details of the request.
Has anyone achieved this? OR Does anyone have a sample request when a Flash Briefing skill is attempting to retrieve the JSON (or RSS) file?
Here is sample code that allows for the flash briefing but makes the bucket fully public, allowing anyone to use up resources:
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::numbers:role/my-role-to-update"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource": "arn:aws:s3:::my-bucket"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource": "arn:aws:s3:::my-bucket"
}
]
}