Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何使用IAM和CORS正确保护S3?_Security_Amazon S3_Localhost_Cors_Amazon Iam - Fatal编程技术网

Security 如何使用IAM和CORS正确保护S3?

Security 如何使用IAM和CORS正确保护S3?,security,amazon-s3,localhost,cors,amazon-iam,Security,Amazon S3,Localhost,Cors,Amazon Iam,我已经知道如何设置CORS和IAM,所以我将图像发布到S3并显示来自S3的图像。我有两个主要问题 我所拥有的似乎不安全,因为从我对我所拥有的理解来看,任何人都可以访问它 如果我保护它,我就不能再在本地主机上正常测试了。我没有选择将其设置为可以从工作网络在本地主机上访问,因为我们都是远程的 政策 {"Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "

我已经知道如何设置CORS和IAM,所以我将图像发布到S3并显示来自S3的图像。我有两个主要问题

  • 我所拥有的似乎不安全,因为从我对我所拥有的理解来看,任何人都可以访问它
  • 如果我保护它,我就不能再在本地主机上正常测试了。我没有选择将其设置为可以从工作网络在本地主机上访问,因为我们都是远程的
  • 政策

        {"Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AddPerm",
                "Effect": "Allow",
                "Principal": "*",
                "Action": [
                    "s3:PutObjectAcl",
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::bucket-name",
                    "arn:aws:s3:::bucket-name/*"
                ]
            },
            {
                "Sid": "read only policy",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucket-name/*"
            }
        ]}
    
    科尔斯

    
    *
    得到
    邮递
    放
    头
    3000
    *
    
    那么,如何在仍然允许从本地主机进行开发的情况下保护配置


    是否将使用
    “条件”:{“StringLike”:{“aws:Referer”:[…]}}
    阻止本地主机的访问?

    您可以在不使用Referer标记的情况下锁定S3存储桶。测试完成后使用它可能更安全

    在AWS S3控制台中,您可以向自己授予访问bucket的权限。只要受让人不说“每个人”,每个人都不能访问该桶

    然后,您可以在IAM>用户>用户名中为自己生成IAM访问密钥。此密钥可用于通过bucket进行身份验证。
    您还需要通过将AmazonS3FullAccess附加为策略来授予用户


    您应该能够使用刚刚生成的用户凭据来访问和修改S3中的文件。

    Referer标记和AllowedOrigin是如何分开的?如果我创建了特定于某些来源的CORS,我甚至需要该策略吗?看起来CORS策略是用于跨来源API调用的。referer标记似乎用于bucket访问。如果要锁定对一组域的bucket访问,可以使用它。但是您也可以使用CORS来限制对一组域的bucket访问。所以我对政策的实际作用感到困惑
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        <CORSRule>
            <AllowedOrigin>*</AllowedOrigin>
            <AllowedMethod>GET</AllowedMethod>
            <AllowedMethod>POST</AllowedMethod>
            <AllowedMethod>PUT</AllowedMethod>
            <AllowedMethod>HEAD</AllowedMethod>
            <MaxAgeSeconds>3000</MaxAgeSeconds>
            <AllowedHeader>*</AllowedHeader>
        </CORSRule>
    </CORSConfiguration>