【问题标题】:SNS topic to send IAM user list to emaiil将 IAM 用户列表发送到电子邮件的 SNS 主题
【发布时间】:2019-03-06 04:32:25
【问题描述】:

我有一个 python 脚本,它获取 IAM 用户名和他们最后一次登录到 AWS 控制台。我已将 SNS 主题配置为将最终结果发送到我的邮件。但我在电子邮件中收到的结果仅显示一个用户名。其余用户名丢失。请对此提供帮助

today = datetime.datetime.now()

PhysicalString =''

for user in resource.users.all():
    if user.password_last_used is not None:
        delta = (today - user.password_last_used.replace(tzinfo=None)).days
        final_result=("username: ", [user.user_name][0]," - ",str(delta) , "days")
        physicalString = 'IAM user details : \n\n' + ''.join(final_result)
        response = sns.publish(
            TopicArn='************************',
            Message= physicalString,
            Subject='IAM USER',
        )
        return final_result

【问题讨论】:

  • 您设置 if 条件来避免没有password_last_used 的用户。也许这就是它只针对一个的原因。
  • 如果条件仅排除上次使用没有密码的用户。但是有很多用户在两天前使用了他们的密码。电子邮件输出仅显示一个用户名,但是当我执行程序直到 final_result 时,它给出了正确的输出。添加 sns 主题时出现问题。

标签: python-3.x amazon-web-services aws-lambda amazon-sns


【解决方案1】:

您的代码在for 语句中使用了return

因此,代码将在第一个带有非空password_last_used 的用户之后退出。

还有一些奇怪的地方:

  • PhysicalString ='' 正在定义一个未使用的变量(大写 P
  • final_result 将只包含 一个用户 的信息,因此尚不清楚此信息是什么/为什么通过 return 传递的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2017-09-19
    • 1970-01-01
    • 2012-07-02
    • 2021-08-16
    相关资源
    最近更新 更多