繁体   English   中英

使用boto(AWS Python),如何获取IAM用户列表?

[英]Using boto (AWS Python), how do I get a list of IAM users?

新手问题。 我期望能够执行以下操作:

import boto
from boto.iam.connection import IAMConnection
cfn = IAMConnection()
cfn.get_all_users()
for user in userList:
    print user.user_id

连接工作正常,但最后一行返回错误“'unicode'对象没有属性'user_id'”。

我做了一个type(userList) ,它把该类型报告为<class'boto.jsonresponse.Element'>,它没有出现(?)待记录。 使用普通的JSON解析似乎也不起作用。

另一个来源看 ,它的意图似乎是应该将这种操作的结果“ pythonized”。

无论如何,我对boto还是很陌生,所以我认为有一些简单的方法可以做到,而我只是没有偶然发现。

谢谢!

对于某些较旧的AWS服务,boto从服务中获取XML响应并将其转换为漂亮的Python对象。 对于其他人,它接受XML响应并将其直接音译为本地Python数据结构。 boto.iam模块是后一种形式。 因此, get_all_users()返回的实际数据如下所示:

{u'list_users_response':
  {u'response_metadata': {u'request_id': u'8d694cbd-93ec-11e3-8276-993b3edf6dba'},   
   u'list_users_result': {u'users': 
     [{u'path': u'/', u'create_date': u'2014-01-21T17:19:45Z', u'user_id': 
       u'<userid>', u'arn': u'<arn>', u'user_name': u'foo'},
      {...next user...}
     ]
  }
}

因此,您想要的所有数据都在那里,很难找到。 返回的boto.jsonresponse.Element对象确实为您提供了一些帮助。 您实际上可以执行以下操作:

data = cfn.get_all_users()
for user in data.user:
    print(user['user_name'])

但在大多数情况下,您只需要在返回的数据中进行挖掘,即可找到所需的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM