You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从AWS Glacier向S3桶恢复数据失败:遇权限错误

问题解决与指导

首先解决AccessDeniedException错误

你的CLI命令里的--account-id参数用错了,你填的AKIA3XOWVUQKSRK6R5N4是IAM用户的Access Key ID,而Glacier要求的account-id是你的AWS账号ID(12位数字),也就是错误信息里的806293447701。修正后的命令应该是:

aws glacier initiate-job --account-id 806293447701 --vault-name bitcoin-class --job-parameters file://inventory-retrieval.json

另外,确认你的IAM策略是否正确关联到用户salman,有时候会出现策略已创建但未附加到用户的情况。你可以在IAM控制台检查用户的权限列表,确认AmazonGlacierFullAccess确实已附加。


你的问题解答

1. 恢复流程中是否有我忽略的特定配置?

  • 除了上面提到的account-id参数错误,还要检查你的恢复任务参数文件inventory-retrieval.json:如果是要提取归档到S3,参数里需要指定SNSTopic(接收任务完成通知)和ArchiveId(单个归档恢复时),或者配置InventoryRetrieval的同时指定后续S3目标。
  • 确保Glacier vault所在区域(us-west-2)与你CLI配置的区域一致,否则需要在命令里加上--region us-west-2参数。
  • 检查是否开启了Vault锁,如果Vault有锁策略,可能会限制InitiateJob操作。

2. 如何调试数据未出现在S3桶中的问题?

  • 首先确认Glacier恢复任务是否成功完成:用aws glacier describe-job命令查询任务状态,命令示例:
    aws glacier describe-job --account-id 806293447701 --vault-name bitcoin-class --job-id <你的任务ID>
    
    只有当任务状态为Succeeded时,数据才会准备好。
  • 检查S3桶的权限:确保Glacier有写入该S3桶的权限,你可以在S3桶的权限策略里添加允许Glacier服务写入的规则,或者确认你的IAM用户有足够的S3权限来触发传输。
  • 查看CloudTrail日志:搜索Glacier的InitiateJob和CompleteMultipartUpload(大文件场景)操作,以及S3的PutObject操作,确认是否有错误日志。
  • 检查S3桶的存储类和区域:确保桶的区域与Glacier vault区域兼容,或者跨区域传输是否被允许。

3. 将恢复的数据传输至S3是否需要额外步骤?

是的,需要额外步骤:

  • 如果是单个归档恢复:在initiate-job的参数文件里,需指定SNSTopic,任务成功后,可使用aws glacier get-job-output命令将数据下载到本地再上传到S3;也可以在恢复任务中配置直接归档到S3(需在参数里指定S3Destination配置,包括桶名、存储类、权限等)。
  • 如果是批量归档恢复:先发起inventory retrieval任务获取所有归档列表,然后逐个发起归档恢复任务,每个任务完成后再将数据传输到S3。
  • 注意:Glacier恢复任务有不同的检索速度(标准、批量、快速),不同速度的任务完成时间不同:批量1-5小时,标准3-5小时,快速1-5分钟(仅限小归档)。

内容的提问来源于stack exchange,提问作者Salman Khalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:02:18