presents by IT Consulting 109

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

概要

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

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

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

 

構成管理情報

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

 

手順

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

aws iam get-role-policy --role-name %ROLENAME% --policy-name %POLICYNAME%

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

 

例)

aws iam get-role-policy --role-name snapshot --policy-name oneClick_lambda_basic_execution_150837164125*

実行結果

TEXT

oneClick_lambda_basic_execution_150837164125*   snapshot
POLICYDOCUMENT  2012-10-17
STATEMENT       Allow
ACTION  logs:CreateLogGroup
ACTION  logs:CreateLogStream
ACTION  logs:PutLogEvents
RESOURCE        arn:aws:logs:*:*:*
STATEMENT       Allow
ACTION  ec2:DescribeInstances
ACTION  ec2:DescribeSnapshots
ACTION  ec2:CreateSnapshot
ACTION  ec2:DeleteSnapshot
RESOURCE        *

TABLE

---------------------------------------------------------------
|                        GetRolePolicy                        |
+-------------------------------------------------+-----------+
|                   PolicyName                    | RoleName  |
+-------------------------------------------------+-----------+
|  oneClick_lambda_basic_execution_150837164125*  |  snapshot |
+-------------------------------------------------+-----------+
||                      PolicyDocument                       ||
|+-------------------------+---------------------------------+|
||  Version                |  2012-10-17                     ||
|+-------------------------+---------------------------------+|
|||                        Statement                        |||
||+---------------------------------------------------------+||
|||                         Effect                          |||
||+---------------------------------------------------------+||
|||  Allow                                                  |||
||+---------------------------------------------------------+||
||||                        Action                         ||||
|||+-------------------------------------------------------+|||
||||  logs:CreateLogGroup                                  ||||
||||  logs:CreateLogStream                                 ||||
||||  logs:PutLogEvents                                    ||||
|||+-------------------------------------------------------+|||
||||                       Resource                        ||||
|||+-------------------------------------------------------+|||
||||  arn:aws:logs:*:*:*                                   ||||
|||+-------------------------------------------------------+|||
|||                        Statement                        |||
||+---------------------------------------------------------+||
|||                         Effect                          |||
||+---------------------------------------------------------+||
|||  Allow                                                  |||
||+---------------------------------------------------------+||
||||                        Action                         ||||
|||+-------------------------------------------------------+|||
||||  ec2:DescribeInstances                                ||||
||||  ec2:DescribeSnapshots                                ||||
||||  ec2:CreateSnapshot                                   ||||
||||  ec2:DeleteSnapshot                                   ||||
|||+-------------------------------------------------------+|||
||||                       Resource                        ||||
|||+-------------------------------------------------------+|||
||||  *                                                    ||||
|||+-------------------------------------------------------+|||

JSON

{
    "RoleName": "snapshot",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                ],
                "Resource": [
                    "arn:aws:logs:*:*:*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ec2:DescribeInstances",
                    "ec2:DescribeSnapshots",
                    "ec2:CreateSnapshot",
                    "ec2:DeleteSnapshot"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    },
    "PolicyName": "oneClick_lambda_basic_execution_150837164125*"
}

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

 

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

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

 

 

補足


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

aws iam list-roles

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

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

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

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

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

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

コメントを残す

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