Gestión de usuarios de AWS IAM por correo electrónico
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
- •Access Key y Secret de AWS
Nodos utilizados (13)
Categoría
{
"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
}
]
]
}
}
}¿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.
Flujos de trabajo relacionados recomendados
Oneclick AI Squad
@oneclick-aiThe 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.
Compartir este flujo de trabajo