presents by IT Consulting 109

AWS – IAMユーザー情報の取得(インラインポリシー)

概要


前回、IAMのユーザーのアクセス権に設定されているポリシー情報を取得する手順について記載しました。
AWS – IAMユーザー情報の取得(AWS管理ポリシー)

しかし、設定されているポリシーが「AWS管理ポリシー」の場合は取得できますが、ユーザーが任意に設定した「インラインポリシー」の場合は取得方法が変わります。

今回はアクセス権に設定されている「インラインポリシー」の取得方法について記載しています。

 

構成管理情報

IAM > ユーザー > アクセス権(インラインポリシー)

 

 

手順


IAMに登録されているユーザーにアタッチされたインラインポリシーを確認するには次のコマンドを実行します。

aws iam get-user-policy --profile felica --user-name %USENAME% --policy-name %POLICYNAME%

※[ user-name ] + [ policy-name ]毎に取得する必要があります。

 

実行結果

TEXT

hoge-web-pol   s3user-web
POLICYDOCUMENT  2012-10-17
STATEMENT       Allow   arn:aws:s3:::hoge-web
ACTION  s3:ListBucket
ACTION  s3:GetBucketLocation
STATEMENT       Allow   [u'arn:aws:s3:::hoge-web/*']   Stmt1234567890000
ACTION  s3:DeleteObject
ACTION  s3:GetObject
ACTION  s3:PutObject

TABLE

------------------------------------------------------------------------------
|                                GetUserPolicy                               |
+-------------------------------------+--------------------------------------+
|             PolicyName              |              UserName                |
+-------------------------------------+--------------------------------------+
|  hoge-web-pol                       |  s3user-web                          |
+-------------------------------------+--------------------------------------+
||                              PolicyDocument                              ||
|+-------------------------------+------------------------------------------+|
||  Version                      |  2012-10-17                              ||
|+-------------------------------+------------------------------------------+|
|||                                Statement                               |||
||+-------------+------------------------------------------------+---------+||
|||   Effect    |                   Resource                     |   Sid   |||
||+-------------+------------------------------------------------+---------+||
|||  Allow      |  arn:aws:s3:::hoge-web                         |         |||
||+-------------+------------------------------------------------+---------+||
||||                                Action                                ||||
|||+----------------------------------------------------------------------+|||
||||  s3:ListBucket                                                       ||||
||||  s3:GetBucketLocation                                                ||||
|||+----------------------------------------------------------------------+|||
||||                               Resource                               ||||
|||+----------------------------------------------------------------------+|||
|||                                Statement                               |||
||+--------+-----------------------------------------+---------------------+||
||| Effect |                Resource                 |         Sid         |||
||+--------+-----------------------------------------+---------------------+||
|||  Allow |  [u'arn:aws:s3:::hoge-web/*']           |  Stmt1234567890000  |||
||+--------+-----------------------------------------+---------------------+||
||||                                Action                                ||||
|||+----------------------------------------------------------------------+|||
||||  s3:DeleteObject                                                     ||||
||||  s3:GetObject                                                        ||||
||||  s3:PutObject                                                        ||||
|||+----------------------------------------------------------------------+|||
||||                               Resource                               ||||
|||+----------------------------------------------------------------------+|||
||||  arn:aws:s3:::hoge--web/*                                            ||||
|||+----------------------------------------------------------------------+|||

JSON

{
    "UserName": "s3user-web",
    "PolicyName": "hoge-web-pol",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "s3:ListBucket",
                    "s3:GetBucketLocation"
                ],
                "Resource": "arn:aws:s3:::hoge-web",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "s3:DeleteObject",
                    "s3:GetObject",
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::hoge-web/*"
                ],
                "Effect": "Allow",
                "Sid": "Stmt1234567890000"
            }
        ]
    }
}

出力形式はそれぞれ使用できますが、インラインポリシーを構成管理として扱う出力形式としては、設定時にJSON形式で記載していると思いますので、–Outputも「json」で取得した方が分かりやすいと思います。

出力結果から以下の項目が取得できます。

項目 形式 説明 対応箇所
PolicyDocument string ポリシー文書。  ポリシー概要/JSON

 

 

補足


インラインポリシーの取得には「user-name」と「policy-name」が必要になります。 まずはユーザー一覧を取得

aws iam list-users

取得したユーザーから適用されているlist-attached-user-policiesでポリシーを確認

aws iam list-attached-user-policies --user-name %USENAME% 

取得できなかったポリシーに対してget-user-policyでポリシーを確認

aws iam get-user-policy --user-name %USENAME% --policy-name %POLICYNAME%

という感じで少々手間がかかります。

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

コメントを残す

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