Advertisement
vforvalerio87

AWS create SES SMTP user

Dec 1st, 2017
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const crypto = require("crypto")
  2. const AWS = require("aws-sdk")
  3. const iam = new AWS.IAM({ "apiVersion": "2010-05-08" })
  4.  
  5. const UserName = process.argv[2]
  6. const fromAddress = process.argv[3]
  7.  
  8. const message = "SendRawEmail"
  9. const versionInBytes = 0x02
  10.  
  11. const PolicyDocument = `{"Version":"2012-10-17","Statement":[{"Effect": "Allow","Action": "ses:SendRawEmail","Resource": "*","Condition":{"StringEquals":{"ses:FromAddress":"${fromAddress}"}}}]}`
  12.  
  13. iam.createUser({ UserName }).promise()
  14.   .then(() => iam.createAccessKey({ UserName }).promise())
  15.   .then(({ "AccessKey": { AccessKeyId, SecretAccessKey } }) => {
  16.     const smtpPassword = Buffer.concat([
  17.       Buffer.from([versionInBytes]),
  18.       crypto.createHmac("sha256", SecretAccessKey).update(message).digest()
  19.     ]).toString("base64")
  20.     console.log("AccessKeyId:", AccessKeyId),
  21.     console.log("SecretAccessKey:", SecretAccessKey)
  22.     console.log("smtpPassword:", smtpPassword)
  23.   })
  24.   .then(() => iam.putUserPolicy({ UserName, PolicyDocument, "PolicyName": "smtp-access" }).promise())
  25.   .catch(err => { console.log(err) })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement