恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

【Bug已解决】AWS Bedrock Agent Access Denied with Claude 3 解决方案

  • 首页
  • 资讯中心
  • /
  • 【Bug已解决】AWS Bedrock Agent Access Denied with Claude 3 解决方案

相关资讯

第21章 传感器融合实战:多传感器融合架构设计 2026/8/21 20:06:10
AI研究助手安全威胁:深度解析研究轨迹劫持攻击与防御 2026/8/21 20:06:10
以太网、TCP/IP、Socket与工业以太网协议:从概念到实战的完整解析 2026/8/21 20:06:10

最新资讯

基于SpringBoot的在线家政服务预约系统设计与实现(源码+lw+部署文档+讲解等)
Stable Diffusion本地部署:秋叶整合包保姆级教程与问题全解
AI算力供应链波动下,开发者如何优化GPU利用率与构建弹性架构
HermesAgent:比openclaw更强大的桌面agent
LangGraph实战:从零构建AI Agent工作流与状态管理
66天从政策到落地:国内首个矿用具身智能中试基地亮相榆林,极端环境成AI练兵场

今日推荐

OpenCode AI编程助手:从核心原理到本地部署的完整实践指南
基于SpringBoot与Vue的企业资产与采购管理系统设计与实现(程序+文档+讲解)
Linux命令-uucico(UUCP传输程序)

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

【Bug已解决】AWS Bedrock Agent Access Denied with Claude 3 解决方案

发布时间:2026/8/21 20:11:10
【Bug已解决】AWS Bedrock Agent Access Denied with Claude 3 解决方案 【Bug已解决】AWS Bedrock Agent Access Denied with Claude 3 解决方案一、现象长什么样你在 AWS Bedrock 上创建/运行一个 Agent用 Claude 3 模型遇到Access Denied访问被拒绝或 Agent 调用模型时报AccessDeniedException/is not authorized to perform: bedrock:InvokeModel你的 IAM 用户能直接InvokeModel但 Agent 跑起来就 Access DeniedAgent 的执行角色execution role是你容易忽略的一环报错指向的是 Agent 背后的角色不是你登录的 IAM 用户模型访问Model Access明明已批准仍被拒。一句话Bedrock Agent 在运行时用的是它自己的执行角色execution role而不是你当前登录的 IAM 身份。Access Denied 几乎总是这个执行角色缺少bedrock:InvokeModel或bedrock:InvokeModelWithResponseStream权限或该角色未被授权使用对应的 Claude 3 模型。二、背景Bedrock Agent 的权限模型有两层你的 IAM 身份用来创建/管理 Agent需要bedrock:CreateAgent等Agent 的执行角色execution roleAgent 实际调用模型、读写知识库、调工具时用的就是这个角色。它需要bedrock:InvokeModel及流式版权限且Resource覆盖你用的 Claude 3 模型 ARN若该模型需要推理配置见 923角色还要能调用对应 profile跨服务如调用 Lambda 工具、读 S3 知识库的相应权限。很多人只给自己 IAM 用户加权限忘了 Agent 的执行角色——结果我能调Agent 不能调报 Access Denied。三、根因根因是Agent 执行角色缺少调用模型的权限Agent 运行 - 用 execution role 调 Claude 3 - role 没有 bedrock:InvokeModel on 该模型 ARN - AccessDeniedException修复方向找到 Agent 的执行角色给它加bedrock:InvokeModel*Resource 指向模型 ARN或*视安全策略。四、最小可运行复现下面用 IAM 策略思路演示执行角色需含 InvokeModel{ Version: 2012-10-17, Statement: [ { Effect: Allow, Action: [ bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream ], Resource: arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0 } ] }若角色策略里没有这段Agent 调用该模型即 Access Denied。注意 Resource 要匹配你实际用的模型 ARN 区域与 ID。from dataclasses import dataclass from typing import List dataclass class _AgentRoleCheck: allowed_actions: List[str] allowed_resources: List[str] def can_invoke(self, model_arn: str) - bool: has_action bedrock:InvokeModel in self.allowed_actions has_resource any(model_arn r or r * for r in self.allowed_resources) return has_action and has_resource def main(): # 错误执行角色只有其他权限没有 InvokeModel bad _AgentRoleCheck(allowed_actions[s3:GetObject], allowed_resources[*]) print(bad.can_invoke(arn:...:anthropic.claude-3-5-sonnet-20241022-v2:0)) # False - Denied # 正确 good _AgentRoleCheck( allowed_actions[bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream], allowed_resources[arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0], ) print(good.can_invoke(arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0)) # True五、解决方案第一层最小直接修复最小修复是给 Agent 的执行角色加bedrock:InvokeModel权限打开 Bedrock 控制台 → Agents → 你的 Agent → 找到Execution role ARN到 IAM → Roles → 该角色 → 添加内联策略{ Version: 2012-10-17, Statement: [ { Effect: Allow, Action: [bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream], Resource: arn:aws:bedrock:*:*:foundation-model/anthropic.claude-3-* } ] }确保 Bedrock 控制台的Model Access里 Claude 3 已批准模型访问是你账户级执行角色权限是角色级两者都要若用推理配置见 923Resource 要覆盖对应 profile ARN。六、解决方案第二层结构化改进把Agent 执行角色权限校验做成策略创建/改角色前自检from dataclasses import dataclass, field from typing import List dataclass(frozenTrue) class BedrockAgentAccessPolicy: Bedrock Agent 权限策略确保执行角色能调模型。 规则 - 执行角色必须含 bedrock:InvokeModel(Stream) - Resource 必须覆盖所用模型 ARN或 * - 与账户级 Model Access 是两层都要满足 required_actions: tuple ( bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream ) def diagnose(self, *, role_actions: List[str], role_resources: List[str], model_arn: str) - List[str]: problems [] for act in self.required_actions: if act not in role_actions: problems.append(f执行角色缺少 {act}) ok_res any(model_arn r or r * for r in role_resources) if not ok_res: problems.append(f执行角色 Resource 未覆盖模型 {model_arn}) return problems def is_ready(self, **kw) - bool: return not self.diagnose(**kw) def demo() - None: policy BedrockAgentAccessPolicy() print(policy.diagnose( role_actions[bedrock:InvokeModel], role_resources[arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0], model_arnarn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0)) # [] - 就绪 if __name__ __main__: demo()七、解决方案第三层断言 / CI 守护import pytest from your_module import BedrockAgentAccessPolicy def test_missing_action_detected(): policy BedrockAgentAccessPolicy() problems policy.diagnose( role_actions[s3:GetObject], role_resources[*], model_arnarn:x) assert any(InvokeModel in p for p in problems) def test_missing_resource_detected(): policy BedrockAgentAccessPolicy() problems policy.diagnose( role_actions[bedrock:InvokeModel], role_resources[arn:other], model_arnarn:target) assert any(Resource in p for p in problems) def test_ready_ok(): policy BedrockAgentAccessPolicy() assert policy.is_ready( role_actions[bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream], role_resources[arn:target], model_arnarn:target) def test_wildcard_resource_ok(): policy BedrockAgentAccessPolicy() assert policy.is_ready( role_actions[bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream], role_resources[*], model_arnarn:target) def test_stream_action_also_required(): policy BedrockAgentAccessPolicy() problems policy.diagnose( role_actions[bedrock:InvokeModel], # 缺 stream 版 role_resources[*], model_arnx) assert any(InvokeModelWithResponseStream in p for p in problems) def test_policy_frozen(): policy BedrockAgentAccessPolicy() assert bedrock:InvokeModel in policy.required_actionsCI 在部署 Agent 前跑diagnose断言执行角色权限齐备避免运行时 Access Denied。八、排查清单是否只给自己的 IAM 用户加权限忘了 Agent 的执行角色Agent 用角色调模型。执行角色是否含bedrock:InvokeModel和bedrock:InvokeModelWithResponseStreamResource 是否覆盖所用的 Claude 3 模型 ARN或*账户级 Model Access 里 Claude 3 是否已批准角色权限和模型访问是两层。是否用了推理配置923角色 Resource 要覆盖 profile ARN。Agent 是否还调 Lambda/ S3/ KB这些也需要角色相应权限。九、小结Bedrock Agent 用 Claude 3 报 Access Denied根因是 Agent 的执行角色缺少bedrock:InvokeModel权限或 Resource 未覆盖模型 ARN而不是你登录的 IAM 身份——Agent 运行时用的是它自己的角色。最小修复是给执行角色加bedrock:InvokeModel(Stream)且 Resource 覆盖模型 ARN并确保账户级 Model Access 已批准结构化做法是抽成BedrockAgentAccessPolicy自检最后用 pytest 守护执行角色权限齐备避免运行时被拒。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号