跳至内容

不小心拒绝所有人访问 Amazon S3 存储桶后如何重新获得访问权限?

2 分钟阅读
0

我将存储桶策略错误地配置为拒绝所有用户访问我的 Amazon Simple Storage Service (Amazon S3) 存储桶。

解决方法

**重要事项:**出于安全和隐私原因,AWS Support 无法访问客户数据,也无法代表您访问存储桶策略。如果您无法重新获得对 S3 存储桶的访问权限,则 AWS Support 将无法恢复该存储桶。有关数据安全的详细信息,请参阅责任共担模式

您不符合存储桶策略中的条件

如果您不符合存储桶策略中的条件,请完成以下步骤以重新获得对您的 Amazon S3 存储桶的访问权限:

  1. AWS 账户根用户身份登录 AWS 管理控制台
    重要事项:请勿使用账户根用户身份执行日常任务。根用户凭证仅用于需要以根用户身份登录的任务。根用户凭证与具有管理员访问权限的 AWS Identity Access Management (IAM) 用户或角色不同。另外,您无法将具有允许拒绝权限的 IAM 策略附加到根用户账户。账户管理员定期更改账户根用户的密码是一种安全最佳做法。
  2. 打开 Amazon S3 控制台
  3. 导航到配置错误的桶。
  4. 选择 Permissions(权限)选项卡。
  5. Bucket Policy(存储桶策略)中,选择 Edit(编辑)。
  6. 在存储桶策略中,确定并删除导致存储桶锁定的条件。
  7. 选择 Save Changes(保存更改)。
  8. 退出 AWS 管理控制台。

在您以账户根用户身份修改存储桶策略后,具有存储桶访问权限的 IAM 用户可以应用更正后的存储桶策略。有关详细信息,请参阅 Amazon S3 存储桶策略的示例使用 Amazon S3 控制台添加存储桶策略

您满足存储桶策略中的条件

如果您满足存储桶策略条件中的条件,但无法使用根用户账户,请修改策略。

要重新获得对存储桶的访问权限,请完成以下步骤:

  1. 查看存储桶策略,以确定满足的存储桶条件。
  2. 如果您不满足存储桶策略条件,请完成所有必需的操作,以使策略的计算结果为 true。以下为可能阻止 S3 存储桶访问的存储桶策略条件示例:
    您没有将客户端 IP 地址列入允许列表。
    您没有将虚拟私有云 (VPC) 端点列入允许列表。
    该请求是从 VPC 内部发出的,但是 VPC 没有 Amazon S3 端点。
    拒绝条件会屏蔽主体且不包含条件块。
  3. 重新获得访问权限后,请确定并删除导致存储桶锁定的条件。
  4. 对更改进行测试,以验证访问控制级别是否正确。

AWS Organizations 成员账户

如果您使用 AWS Organizations,则成员账户可以重新获得意外锁定的 Amazon S3 存储桶的访问权限

要重新获得对您的 S3 存储桶的访问权限,请对成员账户执行特权操作并删除配置错误的存储桶策略。然后,添加有效的存储桶策略

有关详细信息,请参阅 Centrally managing root access for customers using AWS Organizations

使用 CloudTrail 查找存储桶名称和策略

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

如果您不知道在封锁前应用于存储桶的策略,请使用 AWS CloudTrail 来查看该事件。

要在账户中搜索最近的 PutBucketPolicy API 操作,您可以使用 CloudTrail 控制台或 AWS CLI。

CloudTrail 控制台

完成以下步骤:

  1. 打开 CloudTrail 控制台
  2. 在导航窗格中,选择事件历史记录
  3. Event history(事件历史记录)页面上的 Lookup attributes(查找属性)下,选择 Event name(事件名称)。
  4. Enter an event name(输入事件名称)搜索窗格中,选择 PutBucketPolicy 并按 Enter
  5. 选择最近的事件并查看详细信息。该事件显示包括存储桶名称和策略的请求和响应参数。

AWS CLI

运行 put-bucket-policy 命令:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=PutBucketPolicy --region example-region

**注意:**将 example-region 替换为您的 AWS 区域。

AWS 官方已更新 9 个月前