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

AWS Braket SDK/CLI调用量子设备报显式拒绝授权错误求解

Amazon Braket 显式拒绝访问问题解决方案

核心原因

IAM权限判定规则中,*显式拒绝(Explicit Deny)*优先级高于所有允许策略,即使你给用户绑定了AdministratorAccess全权限策略,只要存在任意一条规则对目标操作/资源配置了拒绝,就会触发你看到的报错,和你安装的SDK、CLI版本无关,是权限规则层面的拦截。

排查解决步骤

按以下优先级逐一排查:

  • 检查组织服务控制策略(SCP)拦截
    如果你的账号属于AWS Organizations企业组织下的成员账号,90%的概率是组织管理员配置的SCP默认拦截了Braket服务访问。很多企业会在根OU、业务OU层级挂载SCP,默认禁止未审批的公共服务访问,Braket作为较新的量子计算服务经常在默认拦截列表里。你需要联系组织管理员,检查对应账号挂载的SCP规则,移除针对braket:*操作的Deny配置,或者给你的IAM用户/角色加例外规则。
  • 检查IAM用户的权限配置
    进入IAM控制台打开hblab-rnd用户的权限详情页,逐一检查所有挂载的规则:
    • 除了你手动添加的三个Braket相关托管策略,还要检查是否存在自定义内联策略、其他托管策略里写了"Effect": "Deny",且Action覆盖braket:GetDevice/braket:*、Resource匹配报错里的设备ARN
    • 重点检查权限边界(Permissions Boundary):如果给该用户配置了权限边界,边界规则里没有允许的Braket操作,哪怕用户本身有AdministratorAccess权限,也会被显式拒绝
  • 确认服务开通状态与区域配置
    • 首次使用Braket需要先登录AWS控制台进入Amazon Braket服务页,完成服务条款确认、开通服务,服务未手动开通时会直接返回显式拒绝错误
    • 你执行命令和跑代码时没有显式指定区域,会默认读取aws configure配置的默认区域,要确认该区域是Braket已上线的区域(支持的区域包括us-east-1、us-west-2、eu-west-2、ap-northeast-1等),如果默认区域配了未上线Braket的区域(比如中国区站点、部分新上线区域),也会报同类权限错误
  • 检查资源级策略
    同账号访问Braket资源时这步概率极低,如果前面三步都没找到问题,再检查账号下是否配置了Braket资源级策略,显式拒绝了你的用户访问对应设备。

验证方式

排查完成后先显式指定支持的区域跑CLI命令验证:
aws braket get-device --device-arn arn:aws:braket:::device/qpu/ionq/ionQdevice --region us-east-1
命令能正常返回设备信息后,再运行调整后的Python代码(显式指定区域避免默认配置读错):

import boto3
from braket.aws import AwsDevice
from braket.circuits import Circuit
# 显式指定Braket可用区域
boto3.setup_default_session(region_name="us-east-1")
device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")
bell = Circuit().h(0).cnot(0, 1)
task = device.run(bell, shots=100)
print(task.result().measurement_counts)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:33:25