AWS
IAM
aws-cli

[個人メモ]IAMの情報をAWS CLIで確認する

はじめに

AWS CLIでIAMを操作する場合、コマンドがいろいろあって混乱するので、個人的によく使うものを用途に応じてまとめてみました。

ユーザ関連

一覧取得

command
aws iam list-users \
--query 'Users[].UserName' 
result
[
    "user1",
    "user2",
    "user3"
]

所属グループ取得

command
aws iam list-groups-for-user \
--user-name USERNAME \
--query 'Groups[].GroupName' 
result
[
    "group1",
    "group2",
    "group3"
]

グループ関連

一覧取得

command
aws iam list-groups \
--query 'Groups[].GroupName' 
result
[
    "group1",
    "group2",
    "group3"
]

ポリシー関連

管理ポリシー

AWS管理ポリシー一覧

command
aws iam list-policies --scope AWS
result
{
    "Policies": [
        {
            "PolicyName": "AWSDirectConnectReadOnlyAccess",
            "CreateDate": "2015-02-06T18:40:08Z",
            "AttachmentCount": 0,
            "IsAttachable": true,
            "PolicyId": "ANPAI23HZ27SI6FQMGNQ2",
            "DefaultVersionId": "v1",
            "Path": "/",
            "Arn": "arn:aws:iam::aws:policy/AWSDirectConnectReadOnlyAccess",
            "UpdateDate": "2015-02-06T18:40:08Z"
        },
        {
            "PolicyName": "AmazonGlacierReadOnlyAccess",
            "CreateDate": "2015-02-06T18:40:27Z",
            "AttachmentCount": 0,
            "IsAttachable": true,
            "PolicyId": "ANPAI2D5NJKMU274MET4E",
            "DefaultVersionId": "v2",
            "Path": "/",
            "Arn": "arn:aws:iam::aws:policy/AmazonGlacierReadOnlyAccess",
            "UpdateDate": "2016-05-05T18:46:10Z"
        },

...snip...

カスタマー管理ポリシー一覧

command
aws iam list-policies --scope Local
result
{
    "Policies": [
        {
            "PolicyName": "CUSTOMER_POLICY",
            "CreateDate": "2016-02-22T08:32:23Z",
            "AttachmentCount": 1,
            "IsAttachable": true,
            "PolicyId": "XXXXXXXXXXXX",
            "DefaultVersionId": "v1",
            "Path": "/",
            "Arn": "arn:aws:iam::XXXXXXXXXXXX:policy/CUSTOMER_POLICY",
            "UpdateDate": "2016-02-22T08:32:23Z"
        }
    ]
}

なんらかのリソースにアタッチされている管理ポリシー

command
aws iam list-policies --only-attached
result
{
    "Policies": [
        {
            "PolicyName": "AmazonRDSFullAccess",
            "CreateDate": "2015-02-06T18:40:52Z",
            "AttachmentCount": 1,
            "IsAttachable": true,
            "PolicyId": "ANPAI3R4QMOG6Q5A4VWVG",
            "DefaultVersionId": "v2",
            "Path": "/",
            "Arn": "arn:aws:iam::aws:policy/AmazonRDSFullAccess",
            "UpdateDate": "2015-12-16T21:02:23Z"
        },
        {
            "PolicyName": "AmazonS3FullAccess",
            "CreateDate": "2015-02-06T18:40:58Z",
            "AttachmentCount": 1,
            "IsAttachable": true,
            "PolicyId": "ANPAIFIR6V6BVTRAHWINE",
            "DefaultVersionId": "v1",
            "Path": "/",
            "Arn": "arn:aws:iam::aws:policy/AmazonS3FullAccess",
            "UpdateDate": "2015-02-06T18:40:58Z"
        },
    ]
}

ユーザにアタッチされている管理ポリシー

command
aws iam list-attached-user-policies \
--user-name USERNAME \
--query 'AttachedPolicies[].PolicyArn'
result
[
    "arn:aws:iam::aws:policy/AdministratorAccess"
]

グループにアタッチされている管理ポリシー

command
aws iam list-attached-group-policies \
--group-name GROUPNAME \
--query 'AttachedPolicies[].PolicyArn'
result
[
    "arn:aws:iam::aws:policy/AdministratorAccess"
]

管理ポリシードキュメント

command
aws iam get-policy-version \
--version-id v1 \  #管理ポリシーのバージョン
--policy-arn POLICYARN \
--query 'PolicyVersion.Document'
result
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

インラインポリシー

ユーザにアタッチされているインラインポリシー

command
aws iam list-user-policies \
--user-name USERNAME
result
{
    "PolicyNames": [
        "INLINE_POLICY"
    ]
}

ユーザにアタッチされているインラインポリシードキュメント

command
aws iam get-user-policy \
--user-name USERNAME \
--policy-name INLINE_POLICY \
--query 'PolicyDocument'
result
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

グループにアタッチされているインラインポリシー

command
aws iam list-group-policies \
--group-name GROUPNAME
result
{
    "PolicyNames": [
        "INLINE_POLICY"
    ]
}

グループにアタッチされているインラインポリシードキュメント

command
aws iam get-group-policy \
--group-name GROUPNAME \
--policy-name INLINE_POLICY \
--query 'PolicyDocument'
result
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}