【アップデート】IAMの「アクセスアドバイザー」でポリシーを使用したユーザの確認、サービスに関連するポリシーの確認ができるようになりました!

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

地味サービス大好きっ子の森永です。

昨年12月のアップデートで「アクセスアドバイザー」が追加されたのはご存知のとおりです。

こちらを使用して、不要なポリシーをIAM ユーザ、グループ、ロールから外すなどの調整が容易になりました。
ただ、ポリシーに「いつアクセスしたか」という情報しか表示されず、「誰がアクセスしたか」という情報は分かりませんでしたし、複数のポリシーをIAMユーザ、ロールに割り当てた際に、どのポリシーがサービスへのアクセスに使用されたかも分かりませんでした。

アクセスアドバイザーアップデート

今回のアップデートで以下の2つの情報を取得できるようになりました。

  • IAMポリシー/グループを使用したIAMユーザ/ロールの最終アクセス情報
    • 例)PowerUserポリシーをAliceが2016/6/1にBobが2016/6/2に使用、Carolは未使用。
  • IAMユーザ/ロールがサービスにアクセスするために使用したIAMポリシー情報
    • 例)AliceにA、B、Cポリシーが割り当てられており、CreateInstancesするために、A、Bのポリシーを使用。

これにより、更に容易にポリシーの調整ができるようになりました!

ためしてみる

Alice、Bob、Carolの3ユーザを作成しました。

IAM_Management_Console

IAMポリシー/グループを使用したIAMユーザ/ロール情報

以下の手順で検証します。

  • Alice、Bob、Carolともに「AmazonEC2FullAccess」ポリシーを付与する
  • Alice、BobでのみEC2の管理画面へアクセス、EC2インスタンスの起動停止を行う
  • 「AmazonEC2FullAccess」のアクセスアドバイザーをチェックする

まずは、各ユーザへ「AmazonEC2FullAccess」ポリシーを付与します。

IAM_Management_Console 2

次に、Alice、BobでEC2の管理画面へアクセスし、EC2インスタンスを弄くります。
この時、Carolはログインすらしていません。

EC2_Management_Console

さて、アクセスアドバイザーはどのようになったでしょうか。
「AmazonEC2FullAccess」ポリシーのアクセスアドバイザーを確認します。
エンティティによるアクセス」という項目が追加されており、Bobともう一人が使用したことが分かります。
また、Auto Scalingについては、一度もAPI呼び出しが無かったことが分かります。
これは、EC2のダッシュボードにはAutoScalingの項目が表示されないためです。(インスタンス◯台のような表示のことです)

IAM_Management_Console 3

「Bob および残り1」の箇所がリンクになっており、こちらをクリックすると詳細を確認可能です。
そのポリシーが付与されているIAMユーザ/ロールが全て表示され、それぞれが最後にいつ使用したのかがひと目で分かります。

IAM_Management_Console 4

IAMユーザ/ロールがサービスにアクセスするために使用したIAMポリシー情報

以下の手順で検証します。

  • Aliceに「ReadOnlyAccess」「AmazonEC2ReadOnlyAccess」「AmazonEC2FullAccess」ポリシーを付与します。
  • AliceでEC2の管理画面へアクセス、EC2インスタンスの起動停止を行う
  • Aliceのアクセスアドバイザーをチェックする

3つのポリシーは、Readの権限が重複していることから選択しました。

まずは、Aliceに3つの権限を付与します。

IAM_Management_Console 5

さきほど同様にEC2の管理画面へアクセスし、EC2インスタンスを弄くります。
その後、Aliceのアクセスアドバイザーを確認します。

どのサービスに、どのポリシーが関連しているのかがひと目で分かるようになっています。
注目すべきは、「最終アクセス時間」で、EC2系のアクセス履歴があるのは勿論、CloudWatchやIAMへのアクセスがあったことが分かります。
IAMの調整をしている時に、意外なところで権限が足りず引っかかることが良くありますが、アクセスアドバイザーがあればどの権限が不足しているのかを容易に判断できます。

IAM_Management_Console 6

ポリシーのアクセス権限」の部分もリンクになっており、クリックするとそのサービスに関連するポリシーが分かります。
EC2の関連ポリシーを確認すると、割り当てた3つとも表示され、重複する権限があることが分かります。

IAM_Management_Console 7

最後に

アクセスアドバイザーの強化で、今まで以上にIAMのポリシー調整がやりやすくなりました。
AWSを使ってIAMの管理に日夜悩まされている情シス方面の皆様には朗報なのではないでしょうか。
こちらとCloudTrail、AWS Configを組み合わせることで手作業の少ない管理体制を作れるといいですね。