メール経由でAWS IAMユーザー管理

中級

これはDevOps, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にCode, AwsIam, Switch, EmailSend, EmailReadImapなどのノードを使用。 メールによるコマンドを使用したAWS IAMユーザー管理の自動化

前提条件
  • AWS Access Key と Secret
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "CIJpDmGwbF9xSHqc",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Manage AWS IAM Users via Email",
  "tags": [],
  "nodes": [
    {
      "id": "6a3a0d65-00c8-4760-aef1-778dc216a38b",
      "name": "メールからのデータ抽出",
      "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": "メール返信を送信",
      "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": "ユーザー作成",
      "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": "ユーザー削除",
      "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": "グループへユーザー追加",
      "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": "ユーザー取得",
      "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": "複数ユーザー取得",
      "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": "グループからユーザー削除",
      "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": "ユーザー更新",
      "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": "メールリクエスト取得",
      "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": "タスク種別の確認",
      "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": "付箋メモ",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - DevOps, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数13
カテゴリー2
ノードタイプ6
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
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.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34