概要
AWS の あるAccount内の IAMユーザを取得する Pythonプログラムを作成してみました。
- IAMユーザの取得方法は、以下2パターン
- Client情報としての取得 : dict型で取得されます
- Resource情報としての取得 : list型で取得されます
実行環境
macOS Monterey 12.3.1
python 3.8.12
実行プログラム
GetUsers.py
import boto3
import pprint
## Client としてのユーザ一覧の取得
def get_users_client():
session = boto3.session.Session(profile_name='iapp')
client = session.client('iam')
# client = boto3.client('iam')
users = client.list_users()
print("\nAccount内のユーザ一覧をClient情報として取得")
pprint.pprint(users)
print(type(users))
print("")
## Resource としてのユーザ一覧の取得
def get_users_resource():
session = boto3.session.Session(profile_name='iapp')
resource = session.resource('iam')
# resource = boto3.resource('iam')
users = list(resource.users.all())
print("\nAccount内のユーザ一覧をResource情報として取得")
pprint.pprint(users)
print(type(users))
print("")
# メイン
if __name__ == '__main__':
get_users_client()
get_users_resource()
プログラムの実行
## それぞれの方法による User一覧情報の取得
$ python GetUsers.py
Account内のユーザ一覧をClient情報として取得
{'IsTruncated': False,
'ResponseMetadata': {'HTTPHeaders': {'content-length': '3187',
'content-type': 'text/xml',
'date': 'Tue, 30 Aug 2022 01:53:51 GMT',
'x-amzn-requestid': 'c68c68b8-cccc-aaaa-8536-24d8124d814f'},
'HTTPStatusCode': 200,
'RequestId': 'c68c68b8-cccc-aaaa-8536-24d8124d814f',
'RetryAttempts': 0},
'Users': [{'Arn': 'arn:aws:iam::222222222222:user/user001',
'CreateDate': datetime.datetime(2021, 4, 16, 1, 13, 8, tzinfo=tzutc()),
'PasswordLastUsed': datetime.datetime(2022, 5, 27, 5, 35, 40, tzinfo=tzutc()),
'Path': '/',
'UserId': 'AAAA2SLAHHH4QQQQQQQQQ',
'UserName': 'user001'},
{'Arn': 'arn:aws:iam::222222222222:user/costusage',
'CreateDate': datetime.datetime(2022, 8, 22, 7, 10, 58, tzinfo=tzutc()),
'Path': '/',
'UserId': 'AAAA2SLAHHH4TTTTTTTTT',
'UserName': 'costusage'},
{'Arn': 'arn:aws:iam::222222222222:user/vRealizeInsight',
'CreateDate': datetime.datetime(2019, 12, 18, 2, 25, 14, tzinfo=tzutc()),
'Path': '/',
'UserId': 'AAAA2SLAHHH4RRRRRRRRR',
'UserName': 'vRealizeInsight'}]}
<class 'dict'>
Account内のユーザ一覧をResource情報として取得
[iam.User(name='user001'),
iam.User(name='costusage'),
iam.User(name='vRealizeInsight')]
<class 'list'>
まとめ
これで Account内の IAMユーザ一覧 を取得できるようになりました
参考記事
以下の記事を参考にさせていただきました。感謝申し上げます。
Boto3(AWS SDK for Python)の利用する認証情報