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

创建Spot Datafeed订阅时S3桶配置报错InaccessibleStorageLocation求助

解决Spot数据订阅S3桶权限配置问题

一、先确认S3桶的基础要求

  • 桶得和你创建Spot订阅的AWS账户在同一个区域,而且桶名必须全局唯一(跨区域的话直接就会报错)。
  • 先确认桶真的存在,执行aws s3 ls s3://my-bucket验证,能列出桶内内容就说明桶没问题。

二、给S3桶配置正确的Bucket Policy

核心是要允许EC2服务账户往桶里写入数据,同时你的IAM用户也得具备操作桶的权限。

1. 添加Bucket Policy

把下面JSON中的my-bucket替换成你的桶名,你的AWS账户ID换成12位数字的账户ID(可通过aws sts get-caller-identity查询),然后将策略粘贴到S3桶的权限设置中:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-bucket/*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "你的AWS账户ID"
        }
      }
    }
  ]
}

2. 给你的IAM用户添加权限

你的IAM用户至少需要具备以下权限,可将下方策略附加到目标用户或角色上:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSpotDatafeedSubscription",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*",
        "*"
      ]
    }
  ]
}

三、检查桶的其他配置

  • 不要给桶开启过于严格的阻止公共访问规则(Spot数据订阅不需要公共访问,仅需允许EC2服务账户写入即可)。
  • 如果桶启用了加密(比如SSE-KMS),需确保EC2服务账户具备对应KMS密钥的访问权限,否则会触发权限报错。

四、重新执行创建命令

完成以上配置后,再次运行:

aws ec2 create-spot-datafeed-subscription --bucket my-bucket

如果需要给数据文件添加分类前缀,可追加--prefix spot-data参数。


内容的提问来源于stack exchange,提问作者Julia Bambie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 10:12:36