我有一个HTML文件,其中包含自动化测试运行的屏幕截图。这些屏幕截图存储在s3存储桶中。我将把这个HTML文件附加到电子邮件中。因此,这些屏幕截图将被呈现,并且对于在其笔记本电脑上打开HTML报告的任何人都可以看到。 挑战 - 我在公司防火墙后面因此无法允许公共访问s3存储桶
我可以通过ec2-instance的IAM访问访问s3存储桶,并使用相同的方式将屏幕截图上传到s3。
我目前正在探索以下选项
答案 0 :(得分:0)
您只需设置仅查看公共政策(请参阅底部)。这将允许任何人访问和查看具有正确URL的图像。
通过cloudfront url访问S3(不确定有关通过cloudfront提供的访问控制策略)。这个选项需要大量的IT支持,因此将是最后的手段
在我看来,这不是一个正确的解决方案。这是过度工程。
在HTML文件中嵌入javascript以访问EC2上的托管服务。然后,该服务从S3获取对象。
在我看来,这也是不必要的开销,你可能正在处理。
简单,解决方案将是 -
仅允许公开GET访问权限。那么拥有完整路径正确URL的人将能够访问,在您的情况下,它将嵌入具有S3链接的HTML报告,例如https://s3.amazonaws.com/bucket-name/somepath/somepath/../someimage.jpg
创建一些复杂的网址格式,以便没人能轻易猜到,因此没有安全漏洞。
公共访问政策将如下所示。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
} ] }