在IAM的用户中,我想以编程方式获取所有启用密码的用户的列表。从AWS Console,我可以轻松发现它们。但是,如何以编程方式获取他们的列表?我想用python boto来实现它。
我在这里阅读http://boto3.readthedocs.io/en/latest/reference/services/iam.html#iam,但是通过本文档中列出的大多数方法,我只能看到使用'PasswordLastUsed'的选项,在三种情况下将为null
因此,只需检查'PasswordLastUsed'是否为null我不能声称用户没有密码,因此无法获得所有密码用户。我在这里错过了什么吗?我可以使用任何其他方式或任何其他python资源来执行此操作?
答案 0 :(得分:4)
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
答案 1 :(得分:2)
我可以看到有一种方法,就在你期望它的位置......
http://boto3.readthedocs.io/en/latest/reference/services/iam.html#IAM.Client.get_credential_report
在报告中,字段password_enabled设置为false表示没有密码。
答案 2 :(得分: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))