AWS Robomaker 오류: (AccessDeniedException) 사용자: arn:aws:iam...은(는) robomaker:CreateSimulationJob을 수행할 권한이 없습니다.

AWS Robomaker 오류: (AccessDeniedException) 사용자: arn:aws:iam...은(는) robomaker:CreateSimulationJob을 수행할 권한이 없습니다.

Meta.stackexchange.com#141944저와 같은 "AWS + 개인 사용"에 대한 질문을 여기에서 질문할 수 있으므로 제가 올바른 사이트에 있기를 바랍니다.

튜토리얼에 이어AWS Robomaker(aws.amazon.com), "AWS RoboMaker에서 컨테이너를 사용하여 로봇 및 시뮬레이션 애플리케이션 생성 및 실행" 섹션 6단계에서 다음 명령 실행이 오류(creds 교체)와 함께 실패합니다.

내가 무엇을 놓치고 있거나 잘못되었나요? 기본적으로 이 AWS 계정을 새로 생성했기 때문에 구성이 많이 이루어지지 않았습니다.

$ 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
create_simulation_job.json의 내용

(튜토리얼에서는 명확하지 않기 때문에 Robomaker의 robomaker-helloworld-sim-app 시뮬레이션 앱에서 "application"의 ARN을 가져오는 것으로 추측했습니다.)

    "maxJobDurationInSeconds": 3600,
    "iamRole": "arn:aws:iam::292945459999:role/RoboMaker-HelloWorld-Role",
    "robotApplications": [
        {
            "application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
            "applicationVersion": "$LATEST",
            "launchConfig": {
                "environmentVariables": {
                    "ROS_IP": "ROBOMAKER_ROBOT_APP_IP",
                    "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
                    "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345"
                },
                "streamUI": false,
                "command": [
                    "roslaunch", "hello_world_robot", "rotate.launch"
                ]
            },
            "tools": [
                {
                    "streamUI": true,
                    "name": "robot-terminal",
                    "command": "/entrypoint.sh && xfce4-terminal",
                    "streamOutputToCloudWatch": true,
                    "exitBehavior": "RESTART"
                }
            ]
        }
    ],
    "simulationApplications": [
        {
            "application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
            "launchConfig": {
                "environmentVariables": {
                  "ROS_IP": "ROBOMAKER_SIM_APP_IP",
                  "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
                  "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345",
                  "TURTLEBOT3_MODEL":"waffle_pi"
                },
                "streamUI": true,
                "command": [
                    "roslaunch", "hello_world_simulation", "empty_world.launch"
                ]
            },
            "tools": [
                {
                    "streamUI": true,
                    "name": "gzclient",
                    "command": "/entrypoint.sh && gzclient",
                    "streamOutputToCloudWatch": true,
                    "exitBehavior": "RESTART"
                }
            ]
        }
    ]
}

IAM 사용자에게는 다음과 같은 권한이 있습니다.AdministratorAccess, AWSDeepRacerRoboMakerAccessPolicy, AWSRoboMaker_FullAccess

$ 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

답변1

스스로 해결했습니다.

생각하다나는 aws robomaker create-robot-application명령을 실행하는 것을 잊었다튜토리얼(aws.amazon.com), "Robomaker -> 개발 -> 로봇 애플리케이션"에서 로봇 앱을 볼 수 없었기 때문입니다. 그래서 먼저 (재)실행했습니다.

aws robomaker create-robot-application \
--name $robotapp \
--robot-software-suite name=General \
--environment uri=$ecruri/$robotapp:latest

그런 다음 파일의 ARN을 create_simulation_job.jsoncreate-robot-application이 방금 반환한 ARN으로 바꾸고 aws robomaker create-simulation-job명령을 실행했는데 이번에는 통과했습니다. 예상대로 "Robomaker -> 시뮬레이션 실행 -> 시뮬레이션 작업"에 시뮬레이션 작업이 표시됩니다.

OP의 create_simulation_job.json에는 분명히 잘못된 한 가지가 있습니다. "로봇 앱"의 ARN이 예상되는 곳에 "sim app"의 ARN을 전달하고 있었습니다(오류 메시지에서는 이를 명확하게 나타내지 않았지만).

    "robotApplications": [
        {
            "application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
    :

관련 정보