AWS IAM-Benutzer per E-Mail verwalten

Fortgeschritten

Dies ist ein DevOps, Multimodal AI-Bereich Automatisierungsworkflow mit 13 Nodes. Hauptsächlich werden Code, AwsIam, Switch, EmailSend, EmailReadImap und andere Nodes verwendet. Automatisierte AWS IAM-Benutzerverwaltung per E-Mail-Befehl

Voraussetzungen
  • AWS Access Key und Secret
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "CIJpDmGwbF9xSHqc",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Manage AWS IAM Users via Email",
  "tags": [],
  "nodes": [
    {
      "id": "6a3a0d65-00c8-4760-aef1-778dc216a38b",
      "name": "Daten aus E-Mail extrahieren",
      "type": "n8n-nodes-base.code",
      "position": [
        220,
        920
      ],
      "parameters": {
        "jsCode": "const emailBody = $json[\"textPlain\"] || \"\";\n\n// Helper function to match patterns\nfunction matchFirst(patterns) {\n  for (const pattern of patterns) {\n    const match = emailBody.match(pattern);\n    if (match) return match[1];\n  }\n  return null;\n}\n\n// Detect user name\nconst userName = matchFirst([\n  /user[:\\s*]*([a-zA-Z0-9._-]+)/i,\n  /username\\s+([a-zA-Z0-9._-]+)/i\n]);\n\n// Detect group name\nconst groupName = matchFirst([\n  /group[:\\s*]*([a-zA-Z0-9._-]+)/i,\n  /groupname\\s+([a-zA-Z0-9._-]+)/i\n]);\n\n// Decide task type\nlet task_type = null;\nif (/create user/i.test(emailBody)) task_type = \"create_user\";\nelse if (/delete user/i.test(emailBody)) task_type = \"delete_user\";\nelse if (/add user to group/i.test(emailBody)) task_type = \"add_user_to_group\";\nelse if (/get user$/i.test(emailBody)) task_type = \"get_user\";\nelse if (/get many users/i.test(emailBody)) task_type = \"get_many_users\";\nelse if (/remove user from group/i.test(emailBody)) task_type = \"remove_user_from_group\";\nelse if (/update user/i.test(emailBody)) task_type = \"update_user\";\n\nreturn [\n  {\n    json: {\n      userName,\n      groupName,\n      task_type\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
      "name": "Make massage For Email",
      "type": "n8n-nodes-base.code",
      "position": [
        880,
        920
      ],
      "parameters": {
        "jsCode": "const taskType = $json.task_type || \"\";\nconst userName = $json.userName || \"\";\nconst groupName = $json.groupName || \"\";\nconst status = $json.status || \"\"; // \"success\" or \"fail\"\nconst errorMsg = $json.error || \"\";\n\n// Create readable task name\nconst taskMap = {\n  create_user: \"Create User\",\n  delete_user: \"Delete User\",\n  add_user_to_group: \"Add User to Group\",\n  get_user: \"Get User\",\n  get_many_users: \"Get Many Users\",\n  remove_user_from_group: \"Remove User from Group\",\n  update_user: \"Update User\"\n};\n\nlet message = \"\";\n\nif (status === \"success\") {\n  message = `✅ ${taskMap[taskType] || \"Task\"} completed successfully.\\n`;\n  if (userName) message += `User: ${userName}\\n`;\n  if (groupName) message += `Group: ${groupName}\\n`;\n} else {\n  message = `❌ ${taskMap[taskType] || \"Task\"} failed.\\n`;\n  if (userName) message += `User: ${userName}\\n`;\n  if (groupName) message += `Group: ${groupName}\\n`;\n  if (errorMsg) message += `Error: ${errorMsg}\\n`;\n}\n\nreturn {\n  json: {\n    subject: `${status === \"success\" ? \"Success\" : \"Failure\"} - ${taskMap[taskType] || \"IAM Task\"}`,\n    body: message\n  }\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "798b73f3-92d4-43ad-9f3b-1221f885c7b1",
      "name": "E-Mail-Antwort senden",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1100,
        920
      ],
      "webhookId": "9be96438-96fa-48c1-8cea-75c179322fb3",
      "parameters": {
        "text": "={{$json[\"message\"]}}",
        "options": {
          "replyTo": "={{ $('GET Email Request').item.json.from }}"
        },
        "subject": "={{$json[\"subject\"]}}",
        "toEmail": "={{ $('GET Email Request').item.json.from }}",
        "fromEmail": "abc@gmail.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "G1kyF8cSWTZ4vouN",
          "name": "SMTP -test"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f38dc5ba-90e8-41c3-bc73-c2efcbf9ceaf",
      "name": "Benutzer erstellen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        320
      ],
      "parameters": {
        "userName": "={{ $json.username }}",
        "operation": "create",
        "requestOptions": {},
        "additionalFields": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f8f3a743-d919-49ad-ba78-9873dd034e8f",
      "name": "Benutzer löschen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        520
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "userName",
          "value": "={{ $json.username }}"
        },
        "operation": "delete",
        "requestOptions": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "be25ba9c-2362-43d4-a670-d98a39515130",
      "name": "Benutzer zu Gruppe hinzufügen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        720
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "userName",
          "value": "={{ $json.username }}"
        },
        "group": {
          "__rl": true,
          "mode": "groupName",
          "value": "={{ $json.groupname }}"
        },
        "operation": "addToGroup",
        "requestOptions": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2dc04cc3-224f-433b-bada-f04584f57321",
      "name": "Benutzer abrufen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        920
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "userName",
          "value": "={{ $json.username }}"
        },
        "operation": "get",
        "requestOptions": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "198b262e-fe75-454b-9609-b84a824a0880",
      "name": "Mehrere Benutzer abrufen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        1120
      ],
      "parameters": {
        "requestOptions": {},
        "additionalFields": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3bd5fda6-0669-4dd0-a15b-5fb10ee23bd2",
      "name": "Benutzer aus Gruppe entfernen",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        1320
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "userName",
          "value": "={{ $json.username }}"
        },
        "group": {
          "__rl": true,
          "mode": "groupName",
          "value": "={{ $json.groupname }}"
        },
        "operation": "removeFromGroup",
        "requestOptions": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dbc30150-ccb6-492f-b956-e86da72dcf6c",
      "name": "Benutzer aktualisieren",
      "type": "n8n-nodes-base.awsIam",
      "position": [
        660,
        1520
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "userName",
          "value": "={{ $json.username }}"
        },
        "userName": "={{ $json.newusername }}",
        "operation": "update",
        "requestOptions": {},
        "additionalFields": {}
      },
      "credentials": {
        "aws": {
          "id": "KRRqQf7ufs26Mvaq",
          "name": "AWS account - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d0635da5-3ac9-494c-944a-e3352dcaa685",
      "name": "E-Mail-Anfrage abrufen",
      "type": "n8n-nodes-base.emailReadImap",
      "position": [
        0,
        920
      ],
      "parameters": {
        "options": {
          "customEmailConfig": "[\"UNSEEN\", [\"SUBJECT\", \"iam\"]]"
        }
      },
      "credentials": {
        "imap": {
          "id": "zTEGYssr7MSVeCs3",
          "name": "IMAP-test"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "53281026-4fc1-40d8-834a-1085e049f011",
      "name": "Aufgabentyp prüfen",
      "type": "n8n-nodes-base.switch",
      "position": [
        440,
        836
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "99e9f0b2-e19b-45c5-a60e-317d772e6291",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "{{ json.task_type}}",
                    "rightValue": "create_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "4e72b4c7-eed9-4039-84c7-773a4dee2eb6",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type}}",
                    "rightValue": "delete_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "aef1b8b8-9175-4819-9cb8-87209e4b2954",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type}}",
                    "rightValue": "add_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a256941b-0882-4ee1-9126-491da78f5fb4",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type.}}",
                    "rightValue": "get_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a502de56-2efa-4766-b883-65d8cefaab1a",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type}}",
                    "rightValue": "get_many_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "62aae8fd-71f2-4194-af78-b8d42179a2d0",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type}}",
                    "rightValue": "remove_user"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "e70fb51d-7d2e-4ed2-bdde-7edd03059033",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ json.task_type}}",
                    "rightValue": "update_user"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "32ac6b9c-62b5-4493-9f8d-d0de9fca4211",
      "name": "Notizzettel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        520
      ],
      "parameters": {
        "color": 5,
        "width": 680,
        "height": 340,
        "content": "## How It Works\n- **GET Email Request** - Captures incoming email requests.\n- **Extract Data from Email** - Parses email content to extract user management commands.\n- **Check Type of Task** - Validates the type of task (e.g., create, delete, update).\n- **Get User** - Retrieves user details from AWS IAM.\n- **Get Many Users** - Fetches multiple user details if required.\n- **Create User** - Creates a new IAM user.\n- **Delete User** - Deletes an existing IAM user.\n- **Add to Group** - Assigns a user to a group.\n- **Remove from Group** - Removes a user from a group.\n- **Update User** - Updates user details.\n- **Make Message for Email** - Prepares a confirmation email.\n- **Send Email Response** - Sends the confirmation email."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a67ad521-0006-4818-a40d-8cc3d753bdb9",
  "connections": {
    "2dc04cc3-224f-433b-bada-f04584f57321": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f38dc5ba-90e8-41c3-bc73-c2efcbf9ceaf": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f8f3a743-d919-49ad-ba78-9873dd034e8f": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dbc30150-ccb6-492f-b956-e86da72dcf6c": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "198b262e-fe75-454b-9609-b84a824a0880": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be25ba9c-2362-43d4-a670-d98a39515130": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d0635da5-3ac9-494c-944a-e3352dcaa685": {
      "main": [
        [
          {
            "node": "6a3a0d65-00c8-4760-aef1-778dc216a38b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "53281026-4fc1-40d8-834a-1085e049f011": {
      "main": [
        [
          {
            "node": "f38dc5ba-90e8-41c3-bc73-c2efcbf9ceaf",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "f8f3a743-d919-49ad-ba78-9873dd034e8f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "be25ba9c-2362-43d4-a670-d98a39515130",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2dc04cc3-224f-433b-bada-f04584f57321",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "198b262e-fe75-454b-9609-b84a824a0880",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "3bd5fda6-0669-4dd0-a15b-5fb10ee23bd2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "dbc30150-ccb6-492f-b956-e86da72dcf6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aa61fe8f-53f3-4f5f-bdcf-a7c439586215": {
      "main": [
        [
          {
            "node": "798b73f3-92d4-43ad-9f3b-1221f885c7b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3bd5fda6-0669-4dd0-a15b-5fb10ee23bd2": {
      "main": [
        [
          {
            "node": "aa61fe8f-53f3-4f5f-bdcf-a7c439586215",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a3a0d65-00c8-4760-aef1-778dc216a38b": {
      "main": [
        [
          {
            "node": "53281026-4fc1-40d8-834a-1085e049f011",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - DevOps, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes13
Kategorie2
Node-Typen6
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Oneclick AI Squad

Oneclick AI Squad

@oneclick-ai

The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34