presents by IT Consulting 109

AWS – IAMユーザー情報の取得

概要

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
この記事を書いた人
名前:TRUE's。 千葉県育ち、神奈川県在住のIT系フリーエンジニア。 IT系のナレッジサイトを不定期で更新中。 フォトグラファー兼エンジニアとして日々勤しんでいる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です