Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在使用boto3创建帐户后通过电子邮件自动邀请IAM用户?_Python_Amazon Web Services_Boto3_Amazon Iam - Fatal编程技术网

Python 如何在使用boto3创建帐户后通过电子邮件自动邀请IAM用户?

Python 如何在使用boto3创建帐户后通过电子邮件自动邀请IAM用户?,python,amazon-web-services,boto3,amazon-iam,Python,Amazon Web Services,Boto3,Amazon Iam,我正在使用bot3以编程方式创建IAM用户 我还想邀请我刚刚使用电子邮件创建的用户 以下是我迄今为止为创建和更新密码所做的尝试 iam.create_user(UserName='username') iam.create_login_profile( UserName='username', Password='password', PasswordResetRequired=False ) 但我还没有找到一个选项,可以在创建邀请电子邮件后自动向用户发送邀请电子邮件

我正在使用
bot3
以编程方式创建IAM用户

我还想邀请我刚刚使用电子邮件创建的用户

以下是我迄今为止为创建和更新密码所做的尝试

iam.create_user(UserName='username')
iam.create_login_profile(
    UserName='username',
    Password='password',
    PasswordResetRequired=False
)
但我还没有找到一个选项,可以在创建邀请电子邮件后自动向用户发送邀请电子邮件

是否有任何方法可以自动发送带有密码的邀请邮件,以便用户可以登录

差不多

invite_mail='somemail'

AWS没有向用户发送登录信息的内置功能

事实上,甚至没有一个标准字段来存储IAM用户的电子邮件地址

您需要自己编写此类功能。

1 您可以使用云跟踪在IAM用户创建事件时触发Lambda,并使用AWS SES客户端向新创建的用户发送电子邮件。您可以使用类似于abc的正则表达式验证电子邮件的格式。xyx@company.com. 只有当用户名为电子邮件格式时,才能执行此操作

2.
既然你已经在使用boto3,你有没有尝试过使用SNS或SES发送电子邮件?是的。这就是我一直在用的。我用Django中的
send\u mail()
发送邮件。我只是在想是否有其他方法可以用boto3来做。谢谢你的澄清。
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'])