AWS RoboMaker执行create-simulation-job命令时遭遇AccessDeniedException权限异常求助
看起来你刚开了新AWS账号,跟着RoboMaker的容器化教程走的时候卡在了创建仿真作业这一步,碰到权限拒绝的问题确实挺闹心的,我帮你梳理几个可能的排查方向:
首先看最明显的配置错误:机器人应用ARN填错了
你在create_simulation_job.json的robotApplications字段里,填的是仿真应用的ARN,但这里应该填机器人应用的ARN才对!
// 你现在的错误配置 "robotApplications": [ { "application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456", ... } ]
去RoboMaker控制台的「机器人应用」列表里找到你创建的robomaker-helloworld-robot-app(对应教程里的机器人应用),把它的ARN替换到上面的application字段里,而simulationApplications里的仿真应用ARN是对的,不用改。
检查RoboMaker角色的信任关系
你指定的IAM角色RoboMaker-HelloWorld-Role需要允许RoboMaker服务来扮演它,不然即便你的用户有权限,服务本身也没法执行操作:
- 打开IAM控制台,找到这个角色
- 切换到「信任关系」标签页
- 确认信任策略里包含以下内容:
{ "Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole" }
如果没有的话,编辑信任策略添加这段配置。
确认IAM用户权限是否生效
虽然你已经给用户加了AdministratorAccess、AWSRoboMaker_FullAccess这些权限,但新添加的IAM权限有时候需要几分钟才能同步生效。你可以尝试:
- 重新执行
aws configure刷新CLI的凭证会话 - 或者退出当前AWS CLI会话后重新登录
再核对一遍资源ARN的准确性
确保你填的所有ARN(角色ARN、机器人/仿真应用ARN)里的账号ID、区域、应用名称和版本号都没有打错,比如区域是us-east-1,账号ID是292945459999,这些细节错了也会导致权限验证失败。
附你提供的原始信息:
执行的命令:
$ aws robomaker create-simulation-job --cli-input-json file://create_simulation_job.json
错误信息:
An error occurred (AccessDeniedException) when calling the CreateSimulationJob operation: User: arn:aws:iam::292945459999:user/fname.lname is not authorized to perform: robomaker:CreateSimulationJob on resource: arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456
你的环境信息:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal $ aws --version aws-cli/1.27.64 Python/3.8.10 Linux/5.4.0-137-generic botocore/1.29.64
备注:内容来源于stack exchange,提问作者IsaacS

