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
Amazon web services S3允许某人读写_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services S3允许某人读写

Amazon web services S3允许某人读写,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我创建了一个s3服务器,其中包含大量图像。我现在正试图创建一个符合我需要的桶策略。首先,我希望每个人都有阅读权限,这样他们就可以看到图片。然而,我也想给一个特定的网站上传和删除图像的权限。此网站未存储在亚马逊服务器上?我怎样才能做到这一点?到目前为止,我已经创建了一个bucket策略,使每个人都能看到图像 { "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm",

我创建了一个s3服务器,其中包含大量图像。我现在正试图创建一个符合我需要的桶策略。首先,我希望每个人都有阅读权限,这样他们就可以看到图片。然而,我也想给一个特定的网站上传和删除图像的权限。此网站未存储在亚马逊服务器上?我怎样才能做到这一点?到目前为止,我已经创建了一个bucket策略,使每个人都能看到图像

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::examplebucket/*"
        }
    ]
}
你可以到你的桶里去。要做到这一点,另一台服务器将需要

如果另一台服务器是您拥有的EC2实例,那么您可以通过使用IAM角色启动它来轻松完成这一任务。如果另一台服务器是其他人拥有的EC2实例,那么您可以通过允许他们在您的帐户中担任适当的IAM角色来委派对他们的访问。但是对于非EC2服务器,就像这里的情况一样,您必须以其他方式提供AWS凭据

一种方法是添加一个IAM用户,该用户的策略允许在资源arn:aws:s3:::exampleback/*上使用s3:PutObject和s3:DeleteObject,然后将这些凭据提供给另一个服务器

更好的方法是创建具有相同策略的IAM角色,然后让其他服务器承担该角色。有利的一面是凭证必须定期旋转,因此,如果凭证泄漏,则曝光窗口较小。但是,要承担角色,另一台服务器仍需要进行身份验证,因此需要一些基本IAM用户凭据,除非您有办法通过身份联合获取凭据。您可以添加具有担任上述角色的权限但没有其他权限的基本IAM用户,并将基本IAM用户凭据提供给其他服务器。以这种方式使用AssumeRole时,您应该需要一个。您还可以使用策略条件将承担此角色的实体限制为其他服务器的特定IP地址,但不能100%确定这是否可行。

Bucket策略将很好地为每个人提供只读访问

要向应用程序授予特定权限,请执行以下操作:

为应用程序创建IAM用户这也会创建访问凭据 为IAM用户分配一个策略,该策略提供与Bucket策略非常相似的所需权限 然后,应用程序使用提供的访问凭据对AmazonS3进行API调用 另见: