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 bucket限制为特定IAM用户,使其只能通过API令牌访问S3 bucket_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 如何将S3 bucket限制为特定IAM用户,使其只能通过API令牌访问S3 bucket

Amazon web services 如何将S3 bucket限制为特定IAM用户,使其只能通过API令牌访问S3 bucket,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我们有一个类似Dropbox的应用程序,我们将用户文件存储在S3中。用户这样做的唯一方法是通过应用程序(类似于dropbox) 出于有效的隐私考虑,我们希望限制对S3 bucket的访问,以便只能通过应用程序访问该bucket的内容,我们已经为该应用程序创建了API令牌,并使用该令牌访问内容 我们甚至不希望根帐户能够遍历特定S3存储桶的内容 然而,在需要一些管理干预的情况下,我们希望能够授予特定用户帐户物理遍历S3存储桶并在该时间点执行任何需要的操作的能力。一旦所述管理任务完成,应撤销访问权限

我们有一个类似Dropbox的应用程序,我们将用户文件存储在S3中。用户这样做的唯一方法是通过应用程序(类似于dropbox)

出于有效的隐私考虑,我们希望限制对S3 bucket的访问,以便只能通过应用程序访问该bucket的内容,我们已经为该应用程序创建了API令牌,并使用该令牌访问内容

我们甚至不希望根帐户能够遍历特定S3存储桶的内容

然而,在需要一些管理干预的情况下,我们希望能够授予特定用户帐户物理遍历S3存储桶并在该时间点执行任何需要的操作的能力。一旦所述管理任务完成,应撤销访问权限

你们遇到过这种情况吗?人们将如何着手实施这样的事情


感谢您的想法

与AWS帐户关联的根凭据具有完全权限。即使他们没有,他们也有能力删除阻止权限。公司通常通过添加多因素身份验证(MFA)设备并将其锁定在保险箱中来保护其根登录

您可以轻松编写一个桶策略,该策略拒绝除特定IAM用户之外的所有访问,并且您的应用程序可以使用该IAM用户执行以下操作之一:

  • 下载内容,然后直接将其提供给客户,或
  • 创建预先签名的URL,允许对Amazon S3中的私有对象进行有时间限制的访问,然后将这些URL提供给客户端,以便客户端可以从Amazon S3下载该对象
可以通过修改Bucket策略来授予临时访问权限。当然,您应该限制普通用户修改Bucket策略的能力


对于这些额外的敏感信息,您可能应该创建一个单独的AWS帐户。这样,只有少数人可以访问该帐户,从而防止意外授予访问权限。例如,如果系统管理员被授予访问帐户a中所有S3存储桶的权限,则他们将无法访问帐户B中的存储桶。

与AWS帐户关联的根凭据具有完全权限。即使他们没有,他们也有能力删除阻止权限。公司通常通过添加多因素身份验证(MFA)设备并将其锁定在保险箱中来保护其根登录

您可以轻松编写一个桶策略,该策略拒绝除特定IAM用户之外的所有访问,并且您的应用程序可以使用该IAM用户执行以下操作之一:

  • 下载内容,然后直接将其提供给客户,或
  • 创建预先签名的URL,允许对Amazon S3中的私有对象进行有时间限制的访问,然后将这些URL提供给客户端,以便客户端可以从Amazon S3下载该对象
可以通过修改Bucket策略来授予临时访问权限。当然,您应该限制普通用户修改Bucket策略的能力


对于这些额外的敏感信息,您可能应该创建一个单独的AWS帐户。这样,只有少数人可以访问该帐户,从而防止意外授予访问权限。例如,如果系统管理员被授予访问帐户a中所有S3存储桶的权限,他们将无法访问帐户B中的存储桶。

我相信您可以通过S3存储桶策略实现这一点,但是,您将无法阻止根帐户访问S3。如果是这样的话,根帐户的意义何在?我相信您可以通过S3 bucket策略实现这一点,但是,您无法阻止根帐户访问S3。如果是这样的话,根帐户的意义何在?