IAM Policy Simulatorを使ってManaged Policyをテストする
こんにちは、せーのです。先日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]にしてみます。
Managed Policyを作るには必ず「Policies」ナビから作ります。
今までUserの[Attach Policy]からポリシー作成画面にいけるのでついついここのボタンを押しがちなのですが
ここからManaged Policyに言ってもcreateボタンはないので注意して下さい。
[Policies]ナビからいくと[Create Policy]ボタンが出てきます。
ポリシーの作り方を選択します。[Copy an AWS Managed Policy(AWSポリシーからコピーして作る)][Policy Generator(ポリシージェネレーターを使う)][Create your Own Policy(カスタムポリシーを使う)]から選択します。今回は[Create Your Own Policy]を選択します。
[UsersManageOwnCredentials]という名前をつけて、ポリシーを書いてみます。IAMの操作をいくつか書いていきます。こちらのポリシーを参考にしました。
Managed Policyができました。こちらをMasaoくんにアタッチします。
ではPolicy Simulatorを使ってシミュレートしてみましょう。Policy SimulatorはIAMのDashboardの右側にあります。
Masaoのポリシーを確認してみましょう。[User and Group]から[Masao]を選択します。
[Policies]から今回作った[UserManageOwnCredentials]を選択します。
[UserManageOwnCredentials]の内容が表示されます。こちらはEditorになっていますので直接書き換えることができます。ですのでシミュレーションしながらポリシーを書き換えてテストを繰り返すことができます。 ここで注意しなければいけないこととして「このエディタで書き換えた内容は実際のManaged Policyには反映されていない」ということです。Managed Policyは「複数のIAMに適用できる」ので、ここで直接内容が変わってしまうと他のIAMエンティティに影響が出てしまう可能性があります。書き換える際は他のIAMエンティティでもテストしてからにしましょう。
では次にテストする対象のAWSサービスを選んでみましょう。[Select service]をクリックするとAWSサービスが出てきますので、テストしたいサービスを選びます。今回はIAMを選択します。
次に選んだAWSサービスの具体的な操作を選択します。今回は[Select All]ボタンを使って全アクションを選択します。
次に対象とするリソースを選択します。リソースはARN形式で記述します。今回はMasaoのARN : arn:aws:iam::XXXXXXXXXXXX:user/Masaoを記述します。
[Run Simulation]をクリックしてシミュレートします。記述したARNリソースに対して許可されている操作は[allowed]、許可されていない操作は[denied]と表示されます。
沢山のアクションをテストしている場合は上の方にカウントも出ます。こちらで実際に行う操作に対する許可がされているかどうか見ながらポリシーを修正していきましょう。
まとめ
いかがでしたでしょうか。IAMの権限というのはAWSサービスが増えている今、細かく制御することが求められています。こちらのシミュレーターを使いながらテストを繰り返して要件にあうポリシーを作成しましょう。
参考リンク
- http://blogs.aws.amazon.com/security/post/Tx7WQEXAE2E89D/Test-Your-Managed-Policies-by-Using-the-Identity-and-Access-Management-Policy-Si
- http://blogs.aws.amazon.com/security/post/TxWY3VQC1NG45/An-Easier-Way-to-Manage-Your-Policies
- https://dev.classmethod.jp/cloud/iam-managed-policy-guide-for-experts/
- http://aws.typepad.com/aws_japan/2015/02/new-managed-policies-for-aws-identity-access-management.html
- http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/policies-managed-tutorial.html