2017-06-01 108 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)) 
相關問題