AWS Robomaker-Fehler: (AccessDeniedException) Benutzer: arn:aws:iam... ist nicht autorisiert auszuführen: robomaker:CreateSimulationJob

AWS Robomaker-Fehler: (AccessDeniedException) Benutzer: arn:aws:iam... ist nicht autorisiert auszuführen: robomaker:CreateSimulationJob

meta.stackexchange.com#141944schlägt vor, dass eine Frage zu „AWS + persönliche Nutzung“ wie meine hier gestellt werden kann, also hoffe ich, dass ich auf der richtigen Site bin.

Nach einem Tutorial vonAWS Robomaker(aws.amazon.com), im Abschnitt „Erstellen und Ausführen von Roboter- und Simulationsanwendungen mit Containern in AWS RoboMaker“, Schritt 6, schlägt die Ausführung des folgenden Befehls mit dem Fehler (Anmeldeinformationen ersetzt) ​​fehl.

Was übersehe/mache ich falsch? Ich habe dieses AWS-Konto grundsätzlich neu erstellt, daher wurden nicht so viele Konfigurationen vorgenommen.

$ 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
Inhalt von create_simulation_job.json

(Da es im Tutorial unklar ist, habe ich geraten, die ARN der „Anwendung“ aus der Simulations-App robomaker-helloworld-sim-app auf Robomaker zu übernehmen.)

    "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"
                }
            ]
        }
    ]
}

Der IAM-Benutzer verfügt über die folgenden Berechtigungen: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

Antwort1

Habe es selbst beschlossen.

ICHdenkenIch habe vergessen, den Befehl auszuführen aws robomaker create-robot-applicationimLernprogramm (aws.amazon.com), da ich die Roboter-App unter „Robomaker -> Entwicklung -> Roboteranwendungen“ nicht gesehen habe. Also habe ich zuerst (erneut) Folgendes ausgeführt:

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

Dann ersetze ich die ARN in create_simulation_job.jsonder Datei durch die, die gerade von der Create-Robot-Anwendung zurückgegeben wurde, führe aws robomaker create-simulation-jobden Befehl aus und da er dieses Mal erfolgreich war, sehe ich wie erwartet einen Simulationsjob unter „Robomaker -> Simulationslauf -> Simulationsjobs“.

In create_simulation_job.json im OP ist ein eindeutiger Fehler: Ich habe die ARN von „Sim App“ übergeben, wo die von „Robot App“ erwartet wurde (obwohl das aus der Fehlermeldung nicht klar hervorging).

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

verwandte Informationen