IAM Policy Simulatorを使ってManaged Policyをテストする

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

こんにちは、せーのです。先日IAMに突如出現した[Managed Policy]、みなさんだいぶ慣れてきましたか?今日は中々謎の多い[Managed Policy]をテストする機能[Policy Simulator]をご紹介します。

Managed Policyおさらい

Managed Policyとはどういうものでしょう。詳しくはこちらの記事を見て頂きたいと思います。すごく簡単に言ってしまうと「複数のIAMに対して適用できるポリシー」という感じでしょうか。IAMポリシーはそれまでテンプレートやジェネレーターを使用して毎度毎度作っていたり、ポリシーJSONを自分たちで管理してたりしてましたが、Managed Policyを使うことでよく使うパターンをAWSに登録、再利用することが簡単にできるようになります

Policy Simulatorとは

Policy SimulatorはManaged PolicyがアタッチされたIAMユーザーやグループ、Role等を選択し、そのユーザーやグループがどのような機能を許可していて、どういう操作を拒否しているのかをシミュレートするツールです。複数のポリシーをアタッチしている場合等、結局どの操作が許可されているのかよくわからなくなる時があったりします。そんな時このシュミレーターを使って確認し、適宜修正していく、ということができるわけです。

やってみた

ではやってみましょう。まずManaged Policyを作ってみます。今回のやってみた用にユーザーを作っておきましょう。たまたまチャットで流れてきたので名前は[Masao]にしてみます。

policysimulator1

Managed Policyを作るには必ず「Policies」ナビから作ります。

policysimulator2

今までUserの[Attach Policy]からポリシー作成画面にいけるのでついついここのボタンを押しがちなのですが

policysimulator3

ここからManaged Policyに言ってもcreateボタンはないので注意して下さい。

policysimulator4

[Policies]ナビからいくと[Create Policy]ボタンが出てきます。

policysimulator5

ポリシーの作り方を選択します。[Copy an AWS Managed Policy(AWSポリシーからコピーして作る)][Policy Generator(ポリシージェネレーターを使う)][Create your Own Policy(カスタムポリシーを使う)]から選択します。今回は[Create Your Own Policy]を選択します。

policysimulator7-2

[UsersManageOwnCredentials]という名前をつけて、ポリシーを書いてみます。IAMの操作をいくつか書いていきます。こちらのポリシーを参考にしました。

policysimulator9

Managed Policyができました。こちらをMasaoくんにアタッチします。

policysimulator10

policysimulator11

ではPolicy Simulatorを使ってシミュレートしてみましょう。Policy SimulatorはIAMのDashboardの右側にあります。

policysimulator12

Masaoのポリシーを確認してみましょう。[User and Group]から[Masao]を選択します。

policysimulator13

[Policies]から今回作った[UserManageOwnCredentials]を選択します。

policysimulator14

[UserManageOwnCredentials]の内容が表示されます。こちらはEditorになっていますので直接書き換えることができます。ですのでシミュレーションしながらポリシーを書き換えてテストを繰り返すことができます。
ここで注意しなければいけないこととして「このエディタで書き換えた内容は実際のManaged Policyには反映されていない」ということです。Managed Policyは「複数のIAMに適用できる」ので、ここで直接内容が変わってしまうと他のIAMエンティティに影響が出てしまう可能性があります。書き換える際は他のIAMエンティティでもテストしてからにしましょう。

policysimulator15

では次にテストする対象のAWSサービスを選んでみましょう。[Select service]をクリックするとAWSサービスが出てきますので、テストしたいサービスを選びます。今回はIAMを選択します。

policysimulator16

次に選んだAWSサービスの具体的な操作を選択します。今回は[Select All]ボタンを使って全アクションを選択します。

policysimulator17

次に対象とするリソースを選択します。リソースはARN形式で記述します。今回はMasaoのARN : arn:aws:iam::XXXXXXXXXXXX:user/Masaoを記述します。

policysimulator18

[Run Simulation]をクリックしてシミュレートします。記述したARNリソースに対して許可されている操作は[allowed]、許可されていない操作は[denied]と表示されます。

policysimulator19

沢山のアクションをテストしている場合は上の方にカウントも出ます。こちらで実際に行う操作に対する許可がされているかどうか見ながらポリシーを修正していきましょう。

まとめ

いかがでしたでしょうか。IAMの権限というのはAWSサービスが増えている今、細かく制御することが求められています。こちらのシミュレーターを使いながらテストを繰り返して要件にあうポリシーを作成しましょう。

参考リンク