AWSからPolicy Deprecation Noticeを受け取ったときにサクッと影響範囲を調べる方法

最近、AWSさんからPolicy Deprecation Noticeのメールがよく来ています。そんな事言われても…と思っていたのですが、サクッと調べる方法があったのでメモしておきます。(ポリシーはDeprecationになっても、使えなくなるわけではないのですぐに対応が必要ではないようですね)

例えば以下の記事に書いてある「AWSLambdaReadOnlyAccess」 と 「AWSLambdaFullAccess」というAWS管理ポリシーってどこで使っていたかな。調べたい。というときは docs.aws.amazon.com

IAMのマネジメントコンソールで、AWSLambdaReadOnlyAccessを調べるとポリシーARNを得ることができます。 ポリシーARNがあれば、AWS CLIaws iam list-entities-for-policyを使えば一発です。「指定したマネージドポリシーがアタッチされているすべてのIAMユーザー、グループ、およびロールを一覧表示します。」と機能説明にあります。 docs.aws.amazon.com

$ aws iam list-entities-for-policy --policy-arn arn:aws:iam::aws:policy/AWSLambdaReadOnlyAccess --profile hoge
{
  "PolicyGroups": [
    {
      "GroupName": "Admins"
    }
  ],
  "PolicyUsers": [
    {
      "UserName": "Bob"
    }
  ],
  "PolicyRoles": [
    {
      "RoleName": "testRole"
    }
  ],
  "IsTruncated": false
}

Policy Deprecation Noticeを受け取って調査しようとするまで、この機能があることに全く気がついていませんでした。この方法であれば、複数のAWSアカウントがあってもprofileを切り替えるだけでよいのでPolicy Deprecation Noticeを受け取ってから調査までを自動化することもできそうですね。