我的存储桶策略中的 VPC 或 VPC 终端节点 ID 有误。如何修改该策略以便我可以访问该存储桶?

上次更新时间:2019 年 4 月 9 日

我无法访问 Amazon Simple Storage Service (Amazon S3) 存储桶,因为存储桶策略中的 Amazon Virtual Private Cloud (Amazon VPC) ID 或 VPC 终端节点 ID 有误。如何修改该策略以便我可以再次访问该存储桶?

解决方法

VPC ID 或 VPC 终端节点 ID 有效,但它指向错误的 VPC

如果存储桶策略中的 VPC ID 或 VPC 终端节点 ID 有效,但指向错误的 VPC,请按以下步骤操作:

注意:如果您在存储桶策略中指定了一个 VPC ID,则相应的 VPC 必须关联一个 VPC 终端节点,才能访问存储桶并更正策略。

1.    连接到当前允许的 VPC 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,该实例还使用路由表来允许流量通过 VPC 终端节点流向 Amazon S3。此外,该实例还必须拥有具有存储桶访问权限的角色或凭证

2.    在该实例中,运行以下 AWS 命令行界面 (AWS CLI) 命令来获取存储桶策略:

aws s3api get-bucket-policy --bucket example_bucket

3.    复制现有的存储桶策略,然后将它用作后续步骤的参考。

4.    运行以下命令以删除存储桶策略:

警告:以下命令会删除整个存储桶策略。请务必保留现有存储桶策略的副本,以供参考。

aws s3api delete-bucket-policy --bucket example_bucket

5.    编辑之前的存储桶策略,以指向正确的 VPC 或 VPC 终端节点。或者,如果您不需要受 VPC 限制的访问权限,请完全删除 VPC 限制。然后,将已更正的策略保存为 JSON 文档。

6.    在有权访问存储桶的 AWS 账户中,通过运行以下命令将已更正的存储桶策略添加到存储桶:

aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json

VPC ID 或 VPC 终端节点 ID 无效

如果存储桶策略中的 VPC ID 或 VPC 终端节点 ID 无效(例如,输入错误或 VPC 已不存在),那么您必须拥有 AWS 账户根用户访问权限,才能删除或编辑不正确的策略。即便您使用具有管理员级访问权限的 AWS Identity and Access Management (IAM) 用户或角色,也无法删除或编辑策略。

注意:这些步骤不适用于 AWS GovCloud(美国)。如果您是 AWS GovCloud(美国)用户,请联系 AWS Support 寻求帮助。

按照以下步骤,使用 Amazon S3 控制台来更正存储桶策略:

1.    以根用户身份登录 Amazon S3 控制台

2.    选择包含您要删除或编辑的存储桶策略的存储桶。

注意:打开存储桶后,您可能会在控制台中看到“访问被拒绝”错误。即使您看到此错误,也可以继续进行后续步骤。

3.    选择权限视图。

4.    选择存储桶策略

5.    要完全删除存储桶策略,请选择删除。如只需编辑 VPC ID 或 VPC 终端节点 ID,请在存储桶策略编辑器中更正 ID,然后选择保存

警告:如要完全删除存储桶策略,请务必保留现有存储桶策略的副本,以供参考。

按照以下步骤,使用 AWS CLI 来更正存储桶策略:

警告:此步骤使用根用户凭证(访问密钥),AWS 建议仅在紧急或恢复情况下使用该凭证。除非有必要,否则不要使用根账户凭证。有关更多信息,请参阅隐藏您的 AWS 账户根用户访问密钥

1.    运行以下命令以配置 AWS CLI:

aws configure

2.    该命令会返回要求输入您的凭证的提示。输入您的根用户凭证。有关如何生成这些凭证的说明,请参阅创建根用户的访问密钥

3.    运行以下命令以获取存储桶策略:

aws s3api get-bucket-policy --bucket example_bucket

4.    复制现有的存储桶策略,然后将它用作后续步骤的参考。

5.    运行以下命令以删除存储桶策略:

警告:以下命令会删除整个存储桶策略。请务必保留现有存储桶策略的副本,以供参考。

aws s3api delete-bucket-policy --bucket example_bucket

6.    编辑之前的存储桶策略,以指向正确的 VPC 或 VPC 终端节点。或者,如果您不需要受 VPC 限制的访问权限,请完全删除 VPC 限制。然后,将已更正的策略保存为 JSON 文档。

7.    通过运行以下命令将已更正的存储桶策略添加到存储桶:

aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json

重要提示:作为 AWS 安全最佳实践,请务必在更正存储桶策略后执行以下操作:


这篇文章对您是否有帮助?

我们可以改进什么?


需要更多帮助?