Amazon web services AWS S3认证用户策略

Amazon web services AWS S3认证用户策略,amazon-web-services,amazon-s3,acl,bucket,Amazon Web Services,Amazon S3,Acl,Bucket,我试图设置一个S3策略桶,但它根本不起作用。我需要允许上传文件给匿名用户,但只有经过身份验证的用户才能下载这些文件。我试了两个想法: { "Id": "Policy1378380575437", "Statement": [ { "Sid": "Stmt1378380436712", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::my_bucket/*",

我试图设置一个S3策略桶,但它根本不起作用。我需要允许上传文件给匿名用户,但只有经过身份验证的用户才能下载这些文件。我试了两个想法:

{
  "Id": "Policy1378380575437",
  "Statement": [
{
  "Sid": "Stmt1378380436712",
  "Action": [
    "s3:PutObject"
  ],
  "Effect": "Allow",
  "Resource": "arn:aws:s3:::my_bucket/*",
  "Principal": {
    "AWS": [
      "*"
    ]
  }
},
{
  "Sid": "Stmt1378380568645",
  "Action": [
    "s3:GetObject"
  ],
  "Effect": "Allow",
  "Resource": "arn:aws:s3:::my_bucket/*",
  "Principal": {
    "AWS": [
      "arn:aws:iam::1111111111:root"
    ]
  }
 }
 ]
}
但问题是默认情况下允许使用GetObject,这意味着匿名用户可以下载文件。我试图为GetObject*添加一个新的Sid Denigation,但Denigates always override允许

我很感激你的建议


谢谢。

我想你可以用ACL来做这件事。将bucket上的权限更改为要求ACL“已验证读取”。您的用户必须在上载时设置该ACL标志,否则将出现“拒绝访问”错误,但如果您能让他们设置该标志,我认为这可能对您有用。

我需要一种与此相反的方法。我需要一个用户只允许下载资源,如果登录到我的网站。我想我可以使用公共读取acl来实现这一点,但这意味着任何有链接的人都可以下载资源,无论他们是否登录到网站。但是,我希望只有那些登录的人才能下载该文件。这种抽象可能吗?