Amazon web services 访问html文件中的s3

Amazon web services 访问html文件中的s3,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,我有一个HTML文件,其中包含自动化测试运行的截图。这些屏幕截图存储在s3存储桶中。我将把这个HTML文件附加到电子邮件中。因此,我们希望这些屏幕截图能够呈现出来,并且任何在笔记本电脑上打开HTML报告的人都可以看到。 挑战 -我在公司防火墙后面,因此不能允许公众访问s3存储桶 我可以从ec2实例通过IAM访问s3 bucket,并将使用相同的方法将屏幕截图上传到s3 我目前正在探索以下选项 通过cloudfront url访问S3(不确定通过cloudfront提供的访问控制策略)。此选项将需

我有一个HTML文件,其中包含自动化测试运行的截图。这些屏幕截图存储在s3存储桶中。我将把这个HTML文件附加到电子邮件中。因此,我们希望这些屏幕截图能够呈现出来,并且任何在笔记本电脑上打开HTML报告的人都可以看到。 挑战 -我在公司防火墙后面,因此不能允许公众访问s3存储桶

我可以从ec2实例通过IAM访问s3 bucket,并将使用相同的方法将屏幕截图上传到s3

我目前正在探索以下选项

  • 通过cloudfront url访问S3(不确定通过cloudfront提供的访问控制策略)。此选项将需要大量的回退,因此将是最后的手段
  • 在HTML文件中嵌入javascript以访问EC2上的托管服务。然后,该服务从S3获取对象

  • 您可以简单地设置“仅查看”公共策略(请参阅底部)。这将允许任何人访问和查看具有正确URL的图像

    通过cloudfront url访问S3(不确定通过cloudfront提供的访问控制策略)。此选项将需要大量的回退,因此将是最后的手段

    我认为这不是一个正确的解决办法。这是过度的工程

    在HTML文件中嵌入javascript以访问EC2上的托管服务。然后,该服务从S3获取对象

    在我看来,这也是不必要的开销,你可能正在处理

    很简单,解决方案就是--

  • 只允许公众访问。因此,无论谁拥有完整路径正确的URL都可以访问,在您的情况下,它将是嵌入的HTML报告,其中包含S3的链接,类似于

  • 创建一些复杂的URL模式,这样就没有人能轻易猜到它,因此就没有安全漏洞

  • 公共访问策略如下所示

    {
    "Version":"2012-10-17",
     "Statement":[
      {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }    ]    }
    

    您的公司防火墙与其他用户的S3访问无关。您可以创建一个允许任何人读取访问的策略。考虑创建一个新的S3桶,在S3桶中容纳您的网页和截屏,启用桶的静态网站托管,最后简单地将链接(而不是内联HTML页面)发送给相关方。