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

2024-04-28 00:06:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和boto3不太熟悉。请原谅,如果这不适合问。在

有谁能帮我写一个脚本来获取所有未激活MFA设备的用户。我可以从凭证报告中得到同样的结果。但我想用脚本获取信息。在

谢谢


Tags: 用户脚本mfa报告boto3凭证
2条回答

激活的lambda函数不能帮助用户定义这个函数。我还添加了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)

试试这个:

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。在

相关问题 更多 >