Gestión de usuarios de AWS IAM por correo electrónico

Intermedio

Este es unDevOps, Multimodal AIflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como Code, AwsIam, Switch, EmailSend, EmailReadImap. Automatizar la gestión de usuarios de AWS IAM mediante comandos por correo electrónico

Requisitos previos
  • Access Key y Secret de AWS
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "CIJpDmGwbF9xSHqc",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Manage AWS IAM Users via Email",
  "tags": [],
  "nodes": [
    {
      "id": "6a3a0d65-00c8-4760-aef1-778dc216a38b",
      "name": "Extraer datos del correo electrónico",
      "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": "Enviar respuesta por correo electrónico",
      "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": "Crear usuario",
      "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": "Eliminar usuario",
      "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": "Agregar usuario al grupo",
      "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": "Obtener usuario",
      "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": "Obtener múltiples usuarios",
      "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": "Remover usuario del grupo",
      "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": "Actualizar usuario",
      "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": "GET Email Request",
      "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": "Verificar tipo de tarea",
      "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": "Sticky Note",
      "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - DevOps, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos13
Categoría2
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

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.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34