Security 如何使用IAM和CORS正确保护S3?
我已经知道如何设置CORS和IAM,所以我将图像发布到S3并显示来自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", "
{"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>