はじめに

クラウドインテグレーション事業部の嶋﨑です。

AWSアカウント上の全IAMユーザーが持っているIAMポリシーをExcelファイルにエクスポートする方法について、ChatGPTで得られた回答で実際にできるのか試してみました。

ChatGPT

https://openai.com/blog/chatgpt/

ChatGPTの使用方法については、検索すると多数出てきますので本記事では割愛します。

ChatGPTへの命令文

ChatGPTからの回答

あっという間に作成されました!
このコードで実際に実現できるのか検証してみます。

ChatGPTによって出力されたコードを実行するにはAWS CLI (Command Line Interface) でAWSの認証情報をセットアップし、Pythonがインストールされている環境で実行する必要があります。

■認証情報の設定

設定方法についてはaws configureコマンドを実行して設定する手順が一般的です。
今回は弊社独自の方法で認証情報の設定を行なっておりますので割愛します。

AWS CLI のインストールと更新の手順
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

AWS CLI を設定する
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration

■python、Boto3のインストール

AWS SDK for Python (Boto3)
https://aws.amazon.com/jp/sdk-for-python/

Python、Boto3がインストールされていない場合はインストールします。
以下ドキュメントを参考にインストールしました。

Migrating to Python 3
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/migrationpy3.html#guide-migration-py3

shimazaki2:~ shimazaki$ python3 -m pip install boto3
Collecting boto3
Obtaining dependency information for boto3 from https://files.pythonhosted.org/packages/0c/51/1bbfa5647840f9231cd82a8e65ba6d859eb0e98cc7139babfb4563b43957/boto3-1.28.80-py3-none-any.whl.metadata
Downloading boto3-1.28.80-py3-none-any.whl.metadata (6.7 kB)
Collecting botocore<1.32.0,>=1.31.80 (from boto3)
Obtaining dependency information for botocore<1.32.0,>=1.31.80 from https://files.pythonhosted.org/packages/7d/23/d189daa14ea4012cdd5f66b22ddf4f6d917bb87e636868e5fedf7c757a7c/botocore-1.31.80-py3-none-any.whl.metadata
Downloading botocore-1.31.80-py3-none-any.whl.metadata (6.1 kB)
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from boto3) (1.0.1)
Requirement already satisfied: s3transfer<0.8.0,>=0.7.0 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from boto3) (0.7.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from botocore<1.32.0,>=1.31.80->boto3) (2.8.2)
Requirement already satisfied: urllib3<2.1,>=1.25.4 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from botocore<1.32.0,>=1.31.80->boto3) (2.0.6)
Requirement already satisfied: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.32.0,>=1.31.80->boto3) (1.16.0)
Downloading boto3-1.28.80-py3-none-any.whl (135 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.8/135.8 kB 1.2 MB/s eta 0:00:00
Downloading botocore-1.31.80-py3-none-any.whl (11.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 3.2 MB/s eta 0:00:00
Installing collected packages: botocore, boto3
Successfully installed boto3-1.28.80 botocore-1.31.80

[notice] A new release of pip is available: 23.2.1 -> 23.3.1
[notice] To update, run: pip3 install --upgrade pip
shimazaki2:~ shimazaki$
shimazaki2:~ shimazaki$ python3 -c "import boto3, sys; print(f'{sys.version} \nboto3: {boto3.__version__}')"
3.12.0 (v3.12.0:0fb18b02c8, Oct 2 2023, 09:45:56) [Clang 13.0.0 (clang-1300.0.29.30)]
boto3: 1.28.80
shimazaki2:~ shimazaki$

■pythonファイルの作成

ChatGPTによって生成されたスクリプトを.pyファイルとして作成します。

・Copy codeを押下する

・コード エディターへ貼り付ける


・.pyファイルとして保存する

作成された.pyファイルを実行したいフォルダに移動させます。

なお、今回使用しているPythonのライブラリに関しては以下に記載がございます。

Python 標準ライブラリ
https://docs.python.org/ja/3/library/

openpyxl – A Python library to read/write Excel 2010 xlsx/xlsm files
https://openpyxl.readthedocs.io/en/stable/

準備ができたので、ChatGPTによって生成されたスクリプトを実行していきます。

shimazaki$ python3 iam_script.py
IAM ポリシーを Desktop に iam_policies.xlsx としてエクスポートしました。
shimazaki$

デスクトップに作成されました!!
中身を見てみるとIAMユーザーとIAMポリシーをちゃんと取得できている事が確認できます。

まとめ

今回はChatGPTを使用して、IAMユーザーが持っているIAMポリシーをExcelファイルにエクスポートする方法について質問し、ChatGPTが出した回答で実際に実現できるのか試してみました!

上手く活用すればリソース管理などに役立てるのではないかと感じました。
是非一度お試しください!