【发布时间】:2023-02-15 20:19:38
【问题描述】:
我对 S3 有点陌生,我知道可以通过存储桶策略或 acl 访问我的存储桶/对象。问题是可以为每个对象授予 acl 访问权限,所以我不清楚如何全面审查谁获得了访问权限,即使是对存储桶中的单个对象也是如此。我的问题是如何从 aws Web 管理控制台或 boto3 轻松准确地评估它,以确保我是唯一有权访问我的存储桶及其所有对象的人。
【问题讨论】:
标签: amazon-web-services amazon-s3 boto3
我对 S3 有点陌生,我知道可以通过存储桶策略或 acl 访问我的存储桶/对象。问题是可以为每个对象授予 acl 访问权限,所以我不清楚如何全面审查谁获得了访问权限,即使是对存储桶中的单个对象也是如此。我的问题是如何从 aws Web 管理控制台或 boto3 轻松准确地评估它,以确保我是唯一有权访问我的存储桶及其所有对象的人。
【问题讨论】:
标签: amazon-web-services amazon-s3 boto3
这并不容易。
首先,让我们回顾一下授予权限的方式:
Amazon S3 控制台允许您Review bucket access using Access Analyzer for S3:
S3 访问分析器会提醒您注意 S3 存储桶,这些存储桶配置为允许访问互联网上的任何人或其他 AWS 账户,包括您组织外部的 AWS 账户。对于每个公共或共享存储桶,您都会收到有关公共或共享访问的来源和级别的调查结果。例如,适用于 S3 的访问分析器可能会显示存储桶具有通过存储桶访问控制列表 (ACL)、存储桶策略、多区域访问点策略或访问点策略提供的读取或写入访问权限。有了这些知识,您就可以立即采取准确的纠正措施,将您的存储桶访问权限恢复到您想要的状态。
但是,它不会为您提供谁可以访问哪些存储桶的完整列表。
你想“确保你是唯一有权访问存储桶的人”——这会需要检查桶策略和所有 IAM 用户的权限.这样做没有捷径可走。
【讨论】:
我认为其他答案非常详细地回答了大多数选项。 但通常每个桶都包含公共数据、非公共数据或敏感数据。对于不应包含公共数据的任何存储桶,只需禁用它和 CloudFormation
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html
此外,存储桶支持加密,当您允许 KMS 加密时,您还可以通过 KMS 密钥控制对数据的访问。对于敏感数据,这是值得考虑的事情。
否则 - 是的,确实很难确保帐户中没有任何政策不允许您帐户中的任何用户访问他们不应该访问的内容。一种方法可能是只控制谁可以修改 IAM 策略(iam:* 权限)。还有用于控制策略和查找漏洞的自动工具。仅出于一个目的,创建一个也不难。
即使存储桶是完全私有的,对象也可以通过其他方式公开——通常是通过 CloudFront。
【讨论】:
否则 - 是的,很难确保帐户中没有任何政策不允许您帐户中的任何用户访问他们不应该访问的内容
至少,现在会更简单。
从 ”Controlling ownership of objects and disabling ACLs for your bucket“:开始于2023 年 4 月, Amazon S3 将更改所有新 S3 存储桶的 S3 阻止公共访问和对象所有权(禁用 ACL)的默认设置。
对于此更新后创建的新存储桶,
- 所有 S3 阻止公共访问设置都将启用, 和
- S3 访问控制列表 (ACL) 将被禁用.
这些默认值是保护 Amazon S3 中数据的推荐最佳实践。
您可以在创建存储桶后调整这些设置。有关更多信息,请参阅 AWS 新闻博客中的 Default settings for new S3 buckets FAQ 和 Heads-Up: Amazon S3 Security Changes Are Coming in April of 2023。
【讨论】: