在 AWS 环境中,单纯使用用户名和密码进行身份验证已不能满足安全性要求。启用多重身份验证(Multi-Factor Authentication, MFA)是提高 IAM 用户访问安全性的重要措施。
为什么要启用 MFA?
仅凭用户名和密码进行身份验证存在以下安全隐患:
- 密码泄露风险: 用户密码可能会被猜测、暴力破解或从其他渠道泄露,导致账户被盗用。
- 密码爆破攻击: 黑客可以通过自动化程序尝试大量密码,最终成功猜到密码。
- 权限过度分配: IAM 用户可能被授予过多的权限,一旦账户被黑客控制,后果不堪设想。
启用 MFA 可以有效抵御这些风险。即使用户的密码被泄露,攻击者也无法访问您的 AWS 资源,因为还需要提供额外的验证因素(如手机 APP 生成的动态验证码)。这大大提高了账户的安全性。
检查 IAM 用户 MFA 启用情况
我们可以使用以下 Python 代码来检查 IAM 用户是否已启用 MFA:
import boto3
import pandas as pd
# 创建 IAM 客户端
iam = boto3.client('iam')
# 获取所有 IAM 用户
users = iam.list_users()['Users']
# 遍历每个用户,检查是否启用了 MFA
user_list = []
for user in users:
data = {}
response = iam.list_mfa_devices(UserName=user['UserName'])
if not response['MFADevices']:
data["UserName"] = user['UserName']
user_list.append(data)