Lambda関数
import { IAM } from "aws-sdk"; import AssumeRolePolicyDocument from "./assume-role-policy.json"; const iam = new IAM(); export const handler = (event: any) => { const roleParam: IAM.CreateRoleRequest = { AssumeRolePolicyDocument: JSON.stringify(AssumeRolePolicyDocument), Path: "/", RoleName: "roleName", }; const res = iam.createRole(roleParam, function (err, data) { if (err) { return err; } else { const policyParam = { PolicyArn: "arn:aws:iam::aws:<policy>", RoleName: data.Role.RoleName, }; iam.attachRolePolicy(policyParam, function (err, data) { if (err) { return err; } else { return data; } }); } }); return res; };
AssumeRolePolicyDocument.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "<信頼元>": "<信頼元>" }, "Action": "sts:AssumeRole" } ] }
Lambda関数のポリシーはIAMFullAccessをアタッチしています。
お詫び
執筆用に書き直しているのでうまく動作しない箇所があるかもしれませんがご了承ください。