用途:帮助 AI 智能体安全使用 AWS Secrets Manager 中的密钥、凭证、API key、token 与密码,避免通过 get-secret-value 之类调用把明文密钥带入上下文,降低泄漏到日志、会话记录或下游工具调用的风险。
主要能力与规则:禁止调用 get-secret-value 或 batch-get-secret-value(含 CLI、SDK、MCP、curl 等方式),也禁止直接读取本地 Secrets Manager Agent(localhost:2773)的密钥值。应改用 {{resolve:secretsmanager:<secret-id>:<field-type>:<json-key>:<version-stage>}} 引用;field-type、json-key、version-stage 可省略,分别默认 SecretString、完整值、AWSCURRENT。
使用方式:asm-exec 会扫描命令参数中的 {{resolve:...}} 并解析后执行目标命令,密钥只存在于子进程。示例:asm-exec -- psql "host=mydb.example.com user={{resolve:secretsmanager:prod/db-creds:SecretString:username}} password={{resolve:secretsmanager:prod/db-creds:SecretString:password}}" -c "SELECT * FROM users LIMIT 10"。解析后端依次为 localhost:2773 的 SMA,或经 SigV4 签名的 AWS MCP 端点(调用 aws___run_script)。区域取自 ARN 或 AWS_REGION / AWS_DEFAULT_REGION。可用 ASM_EXEC_MCP_TIMEOUT 调整超时。
适用场景:数据库连接、Docker 环境变量注入、配置文件模板生成等需要密钥但不暴露给智能体的任务。
前提与限制:需 SMA 可达或 AWS 凭证可解析,并具备 secretsmanager:GetSecretValue 权限;asm-exec 不通过本地 AWS CLI 回退解析。该机制是尽力防御而非安全边界,仍需配合 IAM 最小权限、CloudTrail 监控和 VPC 端点策略。启用 aws-core 插件时,PreToolUse 钩子会自动拦截 get-secret-value 调用。