Python boto3脚本,用于获取未激活其MFA设备的用户的信息

时间:2018-03-20 13:06:37

标签: python amazon-web-services boto3

我是python和boto3的新手。如果这不是一个合适的地方,请原谅我。

任何人都可以帮我写一个脚本来获取所有未激活其MFA设备的用户。我可以从凭据报告中获得相同的信息。但我想使用脚本获取信息。

由于

2 个答案:

答案 0 :(得分:1)

试试这个:

import boto3

client = boto3.client('iam')
iam_users = []
response = client.list_users()
for user in response['Users']:
    iam_users.append(user['UserName'])
while 'Marker' in response:
    response = client.list_users(Marker=response['Marker'])
    for user in response['Users']:
        iam_users.append(user['UserName'])

no_mfa_users = []
for iam_user in iam_users:
    response = client.list_mfa_devices(UserName=iam_user)
    if not response['MFADevices']:
        no_mfa_users.append(iam_user)

no_mfa_users数组将包含未启用MFA的IAM用户列表。

boto3参考可以找到here

答案 1 :(得分:0)

这是lambda函数,可帮助您定义未在其帐户上激活MFA的用户。另外,我还将SNS主题添加到功能中,该功能将向您发送已定义主题的列表。

import boto3

client=boto3.client('iam')
sns=boto3.client('sns')

response = client.list_users()
userVirtualMfa = client.list_virtual_mfa_devices()
physicalString = ''


def lambda_handler(event,context):
 mfa_users=[]
 for user in response['Users']:

    userMfa = client.list_mfa_devices(UserName=user['UserName'])

    for uname in userMfa['MFADevices']:
        virtualEnabled = []
        virtualEnabled.append(uname['UserName'])

    if len(userMfa['MFADevices']) == 0 :

        if user['UserName'] not in virtualEnabled:
            mfa_users.append(user['UserName'])

 print (mfa_users)