我的 Amazon Simple Storage Service(Amazon S3)桶指定了错误的 Amazon Virtual Private Cloud(Amazon VPC)ID 或 VPC 端点 ID。我想修复该策略,以便可以再次访问该桶。
解决方法
注意:
VPC ID 或 VPC 端点 ID 有效,但它对应的是错误的 VPC
**注意:**如果您在存储桶策略中指定了 VPC ID,则必须将 VPC 端点与 VPC 关联起来。否则,您将无法更新桶。
完成下面的步骤:
-
连接到可用 VPC 中的 Amazon Elastic Compute Cloud(Amazon EC2)实例。
**注意:**Amazon EC2 实例还必须使用一个路由表,允许流量通过 VPC 端点流向 Amazon S3。此外,该实例必须具有有权限访问 S3 桶的角色或凭证。
-
在实例中,运行 get-bucket-policy AWS CLI 命令以获取桶策略:
aws s3api get-bucket-policy --bucket example_bucket
-
**重要信息:**复制现有的桶策略,以便在以后的步骤中使用。
-
删除桶策略:
aws s3api delete-bucket-policy --bucket example_bucket
-
编辑之前的桶策略以指向正确的 VPC 或 VPC 端点。或者,如果您不需要 VPC 来限制访问,请移除 VPC 限制。
-
以 JSON 格式保存更正后的策略。
-
从有桶访问权限的 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 GovCloud(美国)。如果您是 AWS GovCloud(美国)用户,请联系 AWS Support 寻求帮助。
使用 Amazon S3 控制台更正桶策略
完成下面的步骤:
- 以根用户身份打开 Amazon S3 控制台。
- 选择包含要删除或编辑的桶策略的 Amazon S3 桶。
注意:打开桶后,您可能会在控制台中看到Access Denied错误。您仍然可以继续执行后续步骤。
- 选择权限视图。
- 选择桶策略。
- 要删除桶策略,请选择删除。如果只是要编辑 VPC ID 或 VPC 端点 ID,请在桶策略编辑器中更正 ID,然后选择保存。
**警告:**如果您要删除桶策略,请务必保留一个现有桶策略的副本以供参考。
使用 AWS CLI 更正桶策略
**警告:**此过程使用根用户凭证(访问密钥)。最佳做法是仅在紧急情况下或在进行恢复时使用根用户凭证。有关详细信息,请参阅保护您的根用户凭证,不要将其用于日常任务。
完成下面的步骤:
-
运行以下命令配置 AWS CLI:
aws configure
-
输入您的根用户凭证。有关如何生成这些凭证的说明,请参阅创建根用户的访问密钥。
-
获取桶策略:
aws s3api get-bucket-policy --bucket example_bucket
-
**重要信息:**复制现有的桶策略,以便在以后的步骤中使用。
-
运行以下命令删除桶策略:
aws s3api delete-bucket-policy --bucket example_bucket
-
编辑之前的桶策略以指向正确的 VPC 或 VPC 端点。或者,如果您不需要 VPC 来限制访问,请移除 VPC 限制。
-
以 JSON 格式保存更正后的策略。
-
运行 put-bucket-policy 命令将更正后的桶策略添加到桶:
aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json
遵循 AWS 最佳实践
更正桶策略后,请遵循以下最佳实践:
相关信息
使用桶策略控制从 VPC 端点的访问