[英]How to automatically invite an IAM user via email after creating account using boto3?
我正在使用boto3
編程方式創建 IAM 用戶。
我還想邀請我剛剛使用電子郵件創建的用戶。
這是我迄今為止嘗試創建和更新密碼的方法。
iam.create_user(UserName='username')
iam.create_login_profile(
UserName='username',
Password='password',
PasswordResetRequired=False
)
但是我還沒有找到在創建后自動向用戶發送邀請電子郵件的選項。
有沒有辦法自動發送帶有密碼的邀請郵件,以便用戶可以登錄?
就像是
invite_mail='somemail'
沒有內置的 AWS 功能可以向用戶發送他們的登錄信息。
事實上,甚至沒有用於存儲 IAM 用戶電子郵件地址的標准字段。
您需要自己編寫此類功能。
您可以使用雲跟蹤在 IAM 用戶創建事件時觸發 Lambda,並使用 AWS SES 客戶端向新創建的用戶發送電子郵件。 您可以使用像 abc.xyx@company.com 這樣的正則表達式來驗證電子郵件的格式。 僅當用戶名采用電子郵件格式時才能執行此操作。
import boto3
import logging
ses_client = boto3.client('ses', region_name='us-east-1')
iam_client = boto3.client('iam')
response = iam_client.create_user(
Path='string',
UserName='string',
PermissionsBoundary='string',
Tags=[
{
'Key': 'string',
'Value': 'string'
},
]
)
#if username as email id
user_email = response['User']['UserName']
#if user has tagged with email
#user_email = response['User']['Tags']['KeyName']
SMTP_FROM = 'EMAIL_ADDRESS'
html = "html_email_template"
SMTP_TO = user_email
try:
response = ses_client.send_email(
Source=SMTP_FROM,
Destination={
'ToAddresses': SMTP_TO
},
Message={
'Body': {
'Html': {
'Charset': "UTF-8",
'Data': html,
}
},
'Subject': {
'Data': 'New User Created '
}
}
)
logger.info(response)
except ClientError as e:
logger.error(e.response['Error']['Message'])
else:
logger.info("Email sent! Message ID: " + response['MessageId'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.