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

上次更新时间:2021 年 3 月 19 日

我的 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) 实例。

注意:Amazon EC2 实例还必须使用允许通过 VPC 终端节点传向 Amazon S3 的流量的路由表。此外,该实例必须具有有权限访问 S3 存储桶的角色或凭证

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

aws s3api get-bucket-policy --bucket example_bucket

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

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

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

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

aws s3api delete-bucket-policy --bucket example_bucket

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

6.    从能访问存储桶的 AWS 账户中,通过运行 put-bucket-policy 命令将已更正的存储桶策略添加到存储桶中:

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

VPC ID 或 VPC 终端节点 ID 无效

如果存储桶策略中的 VPC ID 或 VPC 终端节点 ID 无效(或输入错误),则您会收到错误消息。要更新无效(或错误)的策略,您必须拥有 AWS 账户根用户访问权限。即使具有管理员级别的访问权限,您也无法编辑或删除策略。

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

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

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

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

注意:打开存储桶后,您可能会在控制台中看到“Access Denied”错误。即使看到此错误,也可以继续执行下一个步骤。

3.    选择路由视图。

4.    选择存储桶策略

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

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

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

警告:此步骤使用根用户凭证(访问密钥)。最佳做法是仅在紧急情况或恢复情况下使用根用户凭证。除非必要,否则应避免使用根账户凭据。有关更多信息,请参阅隐藏您的 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.    通过运行 put-bucket-policy 命令,将已更正的存储桶策略添加到存储桶中:

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

AWS 最佳实践

更正存储桶策略后,请确保遵守以下最佳实践:


这篇文章对您有帮助吗?


您是否需要账单或技术支持?