用途:通过该仓库的 aws-ai CLI 包装器执行 AWS 操作,让智能体驱动的任务中 MFA 与会话流程保持可预测。适用于用户要求经此助手运行 AWS CLI、希望智能体不本地安装 AWS CLI 即操作 AWS、以及需要 assume-role 加临时凭证的会话/MFA 处理场景。
使用前提:用户需克隆 https://github.com/KaribuLab/aws-cli-helper.git,并执行 docker build -t aws-ai 构建镜像。首次执行前确认 .env 存在或已设置 AWS_AI_PROFILE、AWS_AI_ASSUME_ROLE_ARN、AWS_AI_MFA_SERIAL_ARN、AWS_REGION。
主要用法:优先 Docker 流程,命令为 docker run --rm -it -v ~/.aws:/home/user/.aws --env-file ~/.aws-ai/.env aws_ia <aws args>。首次使用需由用户本人运行 docker run --rm -it -v ~/.aws:/home/user/.aws --env-file ~/.aws-ai/.env aws_ia sts get-caller-identity 完成凭证预热,以捕获一次 MFA 并存储临时会话凭证。预热后经助手执行操作:docker run --rm -i -v ~/.aws:/home/user/.aws --env-file ~/.aws-ai/.env aws_ia <service> <operation> [flags]。
限制与规则:STS 会话为 15 分钟,智能体应在预热成功后第 13 分钟暂停并请用户重新运行上述 sts get-caller-identity,成功后再继续自动化。若输出显示 MFA/会话失败(如 MultiFactorAuthentication failed、expired session token、invalid session 等且未指明被拒 API 动作),应请求重新预热并重试原命令一次,勿与 IAM 权限错误混淆。若返回 AccessDenied、UnauthorizedOperation、not authorized to perform 且指明具体 API 动作,则属所承担角色策略不足,应告知用户需在 IAM 策略中允许的具体 Action;含资源 ARN 时给出最小 Statement 示例;未列出动作时可根据子命令推断并说明不确定性。凭证持久化失败时可继续当前结果,但需警告后续命令可能再次要求 MFA。不得在回复中暴露 MFA 码、会话令牌或密钥值;除明确要求外,应总结命令结果而非倾倒原始日志。