LoginSignup
2
1

More than 1 year has passed since last update.

Pythonで AWSのAccount内のIAMユーザ一覧 を取得してみました

Posted at

概要

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)の利用する認証情報

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1