devin ai必须通过iam角色绑定最小权限策略并使用secrets manager安全存储和获取api密钥。具体包括:创建仅允许secretsmanager:getsecretvalue的自定义策略、以json格式存入结构化密钥、启用30天自动轮换、并通过boto3调用、环境变量注入或内置credential provider三种方式安全获取密钥。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Devin AI在调用OpenAI、Claude、DeepSeek等第三方API时,必须安全注入密钥,否则任务会因认证失败中断;硬编码或明文暴露密钥将直接导致账户被盗刷、账单暴增甚至服务被封禁。
创建专用IAM角色并绑定最小权限策略
登录AWS控制台→进入IAM服务→点击“角色”→“创建角色”。选择“AWS服务”作为可信实体,然后选中“EC2”(Devin AI通常以EC2实例方式运行)。
附加策略时不要搜索“AdministratorAccess”,而应手动创建自定义策略:只允许secretsmanager:GetSecretValue,资源限定为具体Secret ARN(如arn:aws:secretsmanager:us-east-1:123456789012:secret:devin/prod/api-keys-AbCdEf)。【不加资源限制等于开放全部密钥读取权限】
完成角色创建后,记下角色ARN,后续需将其挂载到Devin AI执行环境的实例配置中。
在Secrets Manager中存入结构化密钥
进入AWS Secrets Manager控制台→点击“存储新密钥”。选择“其他密钥类型”,在明文框中输入JSON格式内容:
{"openai":"sk-prod-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","claude":"sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","deepseek":"ds-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
密钥名称必须符合命名规范:仅含字母、数字、连字符和正斜杠,且不能以连字符开头或结尾。建议采用devin//格式,例如devin/prod/openai-v4。
设置自动轮换:启用后选择Lambda函数(可复用AWS官方提供的RDS轮换模板并修改为HTTP调用逻辑),轮换周期设为30天。轮换前系统会先验证新密钥能否成功调用对应API,失败则中止切换。
Devin AI代码中安全获取密钥
方法一:使用boto3原生调用(推荐用于Python-based Devin插件)
在Devin任务脚本中导入boto3,调用get_secret_value时传入Secret名称,再用json.loads()解析返回值。注意捕获ResourceNotFoundException和AccessDeniedException异常,避免密钥缺失时整个流程崩溃。
方法二:通过环境变量间接注入(适用于容器化Devin部署)
在ECS任务定义或EC2用户数据中,添加shell命令:export DEVIN_SECRETS=$(aws secretsmanager get-secret-value --secret-id devin/prod/api-keys --query SecretString --output text)。随后在Python中用os.environ.get("DEVIN_SECRETS")读取并解析。此方式要求EC2实例已绑定上一步创建的IAM角色。
方法三:利用Devin内置的credential provider扩展点(需v2.8+)
在.devin/config.yaml中添加:
credentials: provider: "aws-secrets-manager" region: "us-east-1" secret_name: "devin/prod/api-keys"
Devin运行时会自动调用该provider,将JSON中的字段映射为环境变量OPENAI_API_KEY、ANTHROPIC_API_KEY等,无需修改业务代码。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











