2017-06-01 106 views
2

IAM中的用户中,我想以编程方式获取所有启用密码的用户的列表。从AWS控制台,我可以很容易地发现它们。但是,如何以编程方式获取他们的列表?我想用python boto来得到它。使用boto3,如何检查AWS IAM用户是否有密码?

我读了这里http://boto3.readthedocs.io/en/latest/reference/services/iam.html#iam,但大部分是在本文档中列出的方式,我只能看到使用“PasswordLastUsed”选项,这将是空三种情况

  1. 的用户没有密码
  2. 密码存在但从未使用过
  3. 没有与用户关联的登录数据。

所以,只要检查'PasswordLastUsed'是否为空,我不能声称用户没有密码,从而无法获得所有用户的密码。我在这里错过了什么吗?任何其他方式或任何其他Python资源我可以用来做到这一点?

回答

3
import boto3 

iam = boto3.resource('iam') 
def isPasswordEnabled(user): 
    login_profile = iam.LoginProfile(user) 
    try: 
    login_profile.create_date 
    print True 
    except: 
    print False 

>>> isPasswordEnabled('user1') 
True 
>>> isPasswordEnabled('user2') 
False 
+0

我会解析csv文件,但这看起来很简单,即使它是异常驱动的开发;)。 –

+0

@helloV,完美的男人!这就是我正在寻找的..谢谢! :) –

0

您可以使用GetLoginProfile API请求来确定IAM用户是否具有登录配置文件。如果没有与用户关联的登录配置文件,该请求将返回404响应。像这样的代码应该工作:

import boto3 
iam = boto3.client('iam') 
user_name = 'bob' 
try: 
    response = iam.get_login_profile(UserName=user_name) 
except Exception, e: 
    if e.response['ResponseMetadata']['HTTPStatusCode'] == 404: 
     print('User {} has no login profile'.format(user_name)) 
相关问题