要解决“AWS S3 - 策略未应用于由另一个账户拥有的对象”问题,您需要按照以下步骤进行操作:
- 登录到AWS控制台并打开S3服务。
- 导航到出现问题的存储桶(Bucket)。
- 点击存储桶的名称,进入存储桶的概览页面。
- 在页面上方的菜单栏中,选择“权限”选项卡。
- 在“权限”选项卡中,找到“访问控制列表(Access Control List,ACL)”部分。
- 找到“Owner”列下的账户ID,并记下该ID。
- 在页面下方的“内联策略”部分,找到适用于存储桶的策略。
- 检查策略中的资源(Resource)部分,确保它适用于存储桶中的对象。
例如,如果策略是为特定前缀(prefix)指定的,确保存储桶中的对象也具有该前缀。
- 如果策略中的资源部分是正确的,则您可能需要检查对象的所有者。
对象的所有者与存储桶的所有者可以是不同的账户。
在这种情况下,您需要更新存储桶中的对象所有者,以便与存储桶的所有者相同。
- 使用AWS CLI或AWS SDK中的适当命令,将对象的所有者更改为存储桶的所有者。
下面是一个使用AWS CLI的示例命令:
aws s3api put-object-acl --bucket your-bucket-name --key your-object-key --acl bucket-owner-full-control
替换“your-bucket-name”为存储桶的名称,将“your-object-key”替换为对象的键(Key)。
11. 重复步骤10,为存储桶中的所有对象更改所有者。
12. 返回S3控制台,并尝试访问存储桶中的对象,以确保策略已成功应用于所有对象。
通过执行上述步骤,您可以解决“AWS S3 - 策略未应用于由另一个账户拥有的对象”问题,并确保策略已正确应用于存储桶中的所有对象。