[アップデート] IAMロールの最終使用日時を確認できるようになりました!

IAMロールの最終使用日時を確認できるようになりました。アクセス権限の棚卸しに便利です。
2019.11.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSを愛する皆さま、こんにちは。 re:Invent直前であるにも関わらずほぼ準備を始めていない、コンサルティング部の西野(@xiye_gen)です。

Identify unused IAM roles easily and remove them confidently by using the last used timestamp

此度のアップデートによりIAMロールの最終使用日時(last used timestamp)を確認できるようになりました。 以前からIAMユーザーの最終使用日時は確認できましたが、今回のアップデートでIAMロールも同様の機能を備えました。 不要なアクセス権限の見直しなどに役に立ちそうです。

本記事ではマネジメントコンソールとAWS CLIを使用し、それぞれの見え方を紹介いたします。

目次

マネジメントコンソールから見てみた

マネジメントコンソール -> IAMダッシュボード -> ロール と進み、対象IAMロール名をクリックします。 今回は私のアカウントにあるIAMロール AWSServiceRoleForClientVPN を見てみます。

 

「最後のアクティビティ」という項目が追加されています。 50日前から使用されていないことわかりますね。

AWS CLIから見てみた

下記のコマンドで確認できます。 aws iam get-role --role-name IAM-Role-Name

$ aws iam get-role --role-name AWSServiceRoleForClientVPN
{
    "Role": {
        "Path": "/aws-service-role/clientvpn.amazonaws.com/",
        "RoleName": "AWSServiceRoleForClientVPN",
        "RoleId": "XXXXXXXXXXXXXXXXXXXX",
        "Arn": "arn:aws:iam::XXXXXXXXXXXX:role/aws-service-role/clientvpn.amazonaws.com/AWSServiceRoleForClientVPN",
        "CreateDate": "2019-09-29T08:32:44Z",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "clientvpn.amazonaws.com"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        },
        "Description": "Service Linked Role for Client VPN",
        "MaxSessionDuration": 3600,
        "RoleLastUsed": {
            "LastUsedDate": "2019-10-01T08:23:00Z",
            "Region": "ap-northeast-1"
        }
    }
}

RoleLastUsedの要素としてLastUsedDateおよびRegionを確認できます。 ※この項目が表示されない場合はAWS CLIおよびboto3をアップデートしてください。

終わりに

冒頭にも記載しましたとおり、IAMロールの最終使用日時がわかることでアクセス権限の棚卸しがより簡単になったと思います。 この機会に未使用IAMロールを一掃してしまいましょう!

このブログがほんの少しでも世界を良くできれば嬉しいです。 コンサルティング部の西野(@xiye_gen)がお送りしました。