跳至内容

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

2 分钟阅读
0

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

解决方法

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

**重要事项:**出于安全和隐私原因,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. 获取存储桶策略的副本。您可以通过 CloudTrail 记录、仍有访问权限的团队成员或在 AWS Support 的帮助下获得此副本。

  2. 如果您不满足存储桶策略条件,请完成所有必需的操作,使策略评估为 true。以下是可能阻止 S3 存储桶访问的存储桶策略条件以及获取访问权限的操作示例:

    条件类型操作
    IP 地址允许列表 (aws:SourceIP)通过允许的 IP 地址进行连接或使用 VPN。
    Amazon Virtual Private Cloud (Amazon VPC) (aws:sourceVpc)在指定的 Amazon VPC 内发出请求。
    Amazon VPC 端点 (aws:sourceVpce)使用正确的端点发出请求。
    多重身份验证 (MFA) 要求 (aws:MultiFactorAuthPresent)开启并使用 MFA 身份验证。
    拒绝语句中的条件块缺失使用根用户访问权限。
  3. 重新获得访问权限后,请确定并删除导致存储桶锁定的条件。

  4. 对更改进行测试,验证访问控制级别是否正确。

AWS Organizations 成员账户

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

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

有关详细信息,请参阅使用 AWS Organizations 集中管理客户的根访问权限

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

如果您不知道在锁定前应用于存储桶的策略,请使用 AWS CloudTrail 来查看该事件。要在账户中搜索最近的 PutBucketPolicy API 操作,您可以使用 CloudTrail 控制台或 AWS CLI。

**注意:**CloudTrail 事件历史记录涵盖过去 90 天的事件。您可以将 CloudTrail 配置为将管理事件日志发送到 Amazon S3 存储桶以获得更长时间的记录。要获取超过 90 天前的 PutBucketPolicy 操作记录,您必须查询 Amazon S3 中的 CloudTrail 日志

要在控制台中使用 CloudTrail,请完成以下步骤:

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

要通过 AWS CLI 使用 CloudTrail,请运行以下 put-bucket-policy 命令:

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

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

AWS 官方已更新 5 个月前