AWS CLI の各コマンドで出力された結果を加工すれば、AWS の構成情報を管理することができます。
まずは手始めにIAM(Identity and Access Management) の「ユーザー」情報を取得する方法について記載しています。
IAM ユーザー
IAM ユーザーは AWS で作成するエンティティであり、AWS とやり取りするためにこれを使用する人またはサービスを表します。AWS のユーザーは名前と認証情報で構成されます。
出力結果は「–output」オプションを指定することで変更可能ですので、 加工用途に合わせてオプションを使用してください。
「output」オプションは次のいずれかを指定します。「–output」オプションを使用しない場合は、 [ aws configure ] を行った際に [ Default output format ] として設定されているフォーマット形式がデフォルトで使用されます。
TEXT
TAB区切りのデータ形式で出力され、データを二次加工して扱う場合に適しています。
TABLE
テーブル形式で出力され、表示されるデータのラベル(カラム)の紐づきが分かり易くなっています。
JSON
JavaScript Object Notation 形式で出力され、ツリー構造からデータのディレクトリ構成が分かり易くなっています。
どのデータ形式でも表示内容に差異はありませんが、TEXT形式の場合だけ注意が必要です。
TEXT形式の場合、データが存在しない場合「空欄」として出力されますので、見た目上データ列が詰まったように見えます。
テキストエディタ等でデータを扱う際は「TAB」を記号で表記できるように設定しておいた方がよいと思います。
IAMに登録されているユーザー一覧を出力するには以下のコマンドを実行します。
aws iam list-users
実行結果
TEXT
USERS arn:aws:iam::123456789000:user/cloudwatch 2018-01-01T00:00:00Z / AIDAJT5L95ZZ9YUL49PG5 cloudwatch
USERS arn:aws:iam::123456789000:user/root 2018-01-01T00:00:00Z / AIDAJF893X34TQDV6NWUY admin
USERS arn:aws:iam::123456789000:user/s3user-web 2018-01-01T00:00:00Z / AIDAJE6CUDQJTMYX55HQY s3user-web
USERS arn:aws:iam::123456789000:user/ses-smtp 2018-01-01T00:00:00Z / AIDAJGZ2DBLHGCPBWDXW5 ses-smtp
TABLE
------------------------------------------------------------------------------------------------------------------------
| ListUsers |
+----------------------------------------------------------------------------------------------------------------------+
|| Users ||
|+--------------------------------------------+-----------------------+-------+------------------------+--------------+|
|| Arn | CreateDate | Path | UserId | UserName ||
|+--------------------------------------------+-----------------------+-------+------------------------+--------------+|
|| arn:aws:iam::123456789000:user/cloudwatch | 2018-01-01T00:00:00Z | / | AIDAJT5L95ZZ9YUL49PG5 | cloudwatch ||
|| arn:aws:iam::123456789000:user/root | 2018-01-01T00:00:00Z | / | AIDAJF893X34TQDV6NWUY | admin ||
|| arn:aws:iam::123456789000:user/s3user-web | 2018-01-01T00:00:00Z | / | AIDAJE6CUDQJTMYX55HQY | s3user-web ||
|| arn:aws:iam::123456789000:user/ses-smtp | 2018-01-01T00:00:00Z | / | AIDAJGZ2DBLHGCPBWDXW5 | ses-smtp ||
|+--------------------------------------------+-----------------------+-------+------------------------+--------------+|
JSON
{
"Users": [
{
"UserName": "cloudwatch",
"Path": "/",
"CreateDate": "2018-01-01T00:00:00Z",
"UserId": "AIDAJT5L95ZZ9YUL49PG5",
"Arn": "arn:aws:iam::123456789000:user/cloudwatch"
},
{
"UserName": "admin",
"Path": "/",
"CreateDate": "2018-01-01T00:00:00Z",
"UserId": "AIDAJF893X34TQDV6NWUY",
"Arn": "arn:aws:iam::123456789000:user/admin"
},
{
"UserName": "s3user-web",
"Path": "/",
"CreateDate": "2018-01-01T00:00:00Z",
"UserId": "AIDAJE6CUDQJTMYX55HQY",
"Arn": "arn:aws:iam::123456789000:user/s3user-web"
},
{
"UserName": "ses-smtp",
"Path": "/",
"CreateDate": "2018-01-01T00:00:00Z",
"UserId": "AIDAJGZ2DBLHGCPBWDXW5",
"Arn": "arn:aws:iam::123456789000:user/ses-smtp"
}
]
}
出力結果から以下の項目が取得できます。
項目 | 形式 | 説明 | 対応箇所 |
---|---|---|---|
Arn | string | ユーザーを識別するAmazonリソース名 | ユーザーの ARN |
CreateDate | timestamp | ユーザーが作成された日付と時刻 | 作成時刻 |
Path | string | ユーザーへのパス | パス |
UserId | string | ユーザーを識別する安定した一意の文字列 | – |
UserName | strinsg | ユーザーを識別するわかりやすい名前 | ユーザー名 |
次の情報もあわせて取得する事でIAMのユーザー構成情報が管理できるようになります。 アタッチされたポリシーを確認するには次のコマンドを実行します。
aws iam list-attached-user-policies
ポリシータイプが「AWS管理ポリシー」ではない「インラインポリシー」の場合にはカスタマイズされたポリシーの可能性があるため、次のコマンドを実行して取得しておきます。
aws iam get-user-policy