この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Miamとは?
Miamとは、AWSアカウントのIAM情報をコード管理出来るツールです。
使い勝手はRoute53とほぼ同様なので、AWS環境をコード管理していると重宝出来ると思います。
GitHub
使い方
Miamをインストール
% gem build miam.gemspec
% gem install miam-0.2.4.beta8.gem
% gem list miam
*** LOCAL GEMS ***
miam (0.2.4.beta8)
※本記事執筆時、gem install miam
でインストールを行った所少し古いバージョンがインストールされ、
そのバージョンで作業を実施すると、パスワードポリシーのエラーが表示されました。
そのため、今回は0.2.4 beta8を使用しております。
Miamオプション
Usage: miam [options]
-p, --profile PROFILE_NAME
--credentials-path PATH
-k, --access-key ACCESS_KEY
-s, --secret-key SECRET_KEY
-r, --region REGION
-a, --apply
-f, --file FILE
--dry-run
--account-output FILE
-e, --export
-o, --output FILE
--split
--split-more
--format=FORMAT
--export-concurrency N
--target REGEXP
--ignore-login-profile
--no-color
--no-progress
--debug
IAM情報をエクスポート
IAM情報を一つのDSL or JSONファイルでエクスポートします。
DSL
% miam -e -o <エクスポートファイル名>
Export IAM to `miam-export`
% tree
.
└── miam-export
JSON
% miam -e -o <エクスポートファイル名>
% miam -e --format=json -o <エクスポートファイル名>
Export IAM to `miam-export.json`
各IAM情報をエクスポート
IAMユーザー、グループ、ロール、ポリシーレベルで情報を取得します。
DSL
% miam -e --split
.
├── IAMfile
├── groups.iam
├── policies.iam
├── roles.iam
└── users.iam
JSON
% miam -e --split --format=json
.
├── groups.iam.json
├── instance_profiles.iam.json
├── policies.iam.json
├── roles.iam.json
└── users.iam.json
詳細な各IAM要素で情報をエクスポート
IAMユーザー、グループ、ロール、ポリシーレベルの各項目レベルで情報を取得します。
DSL
% miam -e --split-more
.
├── IAMfile
├── groups
│ └── xxxxxxxx.iam
├── policies
│ ├── xxxxxxxx.iam
│ ├── xxxxxxxx.iam
│ └── xxxxxxxx.iam
├── roles
│ ├── xxxxxxxx.iam
│ ├── xxxxxxxx.iam
│ ├── xxxxxxxx.iam
│ └── xxxxxxxx.iam
└── users
├── xxxxxxxx.iam
├── xxxxxxxx.iam
└── xxxxxxxx.iam
JSON
% miam -e --split-more --format=json
.
├── groups
│ └── xxxxxxxx.iam.json
├── policies
│ ├── xxxxxxxx.iam.json
│ ├── xxxxxxxx.iam.json
│ └── xxxxxxxx.iam.json
├── roles
│ ├── xxxxxxxx.iam.json
│ ├── xxxxxxxx.iam.json
│ ├── xxxxxxxx.iam.json
│ └── xxxxxxxx.iam.json
└── users
├── xxxxxxxx.iam.json
├── xxxxxxxx.iam.json
└── xxxxxxxx.iam.json
IAM変更
DSL or JSONファイルをテスト実行する(dry-run)
% miam --dry-run -a -f <DSLファイル or JSONファイル>
DSL or JSONファイルを実行する
% miam -a -f <DSLファイル or JSONファイル>
最後に
使い方を記載していきましたが、多くのIAMユーザーやロールが作成されている環境で
アタッチ済みポリシーの確認などの情報整理には大きく貢献してくれるツールと思いました。