そのBoundary Policy適用しても大丈夫ですか? IAM Policy SimulatorでBoundary Policyのシミュレーションが可能になりました
先日のアップデートで IAM ポリシーシミュレーター で Permissions Boundary のシミュレーションが可能になりまし。
なにが嬉しいのか
Permissions Boundary は、IAM ユーザや IAM ロールに対して、通常の Permissions Policy に加えて、追加オプションとして設定することが可能です。Permissions Policy にて権限が与えられていても、Permissions Boundary で付与されていない権限を行使することはできなくなります。
アクセス権限管理について「ガードレール」というキーワードをよく耳にするかと思いますが、簡単に言うならば「ここまでなら自由にしていいけど、ここからは出たらアカン」という境界を作るということです。Permissions Boundary もそういったガードレールを実現するための機能の 1 つです。
(もうすこし Permissions Boundary について知りたい方は、以下の記事もあわせてお読みください)
Permissions Boundary の設定を間違えると、多くの権限を制限した境界を作ってしまい何も触れない…という状況になる可能性があるということです。こわいですね。
IAM ポリシーシミュレータが Permissions Boundary をサポートしたことによって、実環境に適用する前にシミュレータ上で影響範囲の確認ができるようになりました。これは非常に嬉しいですね!
やってみる
Permissions Policy
AdministratorAccess
を付与したユーザ test-user
を作成しました。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }
IAM ポリシーシミュレータ
AWS 管理コンソールにログインしている状態で IAM ポリシーシミュレーターを開くと、以下のような画面になります。シミュレートしたいユーザや、ロール、サービス、確認したいアクションを選択し Run Simulation
をクリックします。いまは、フルアクセス権限を持っているだけなので、もちろんどのような操作も出来る状態です。
次に、Create New Policy
をクリックします。次のページのプルダウンメニューをクリックすると Custom IAM Permissions Boundary Policy
という項目が増えています。(以前は無かったのか記憶にはありませんが…)
こちらに例えば Policy name を TestBoundary
として以下のようなポリシーを入力し Apply
します。(実際の AWS アカウントには作成されません)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*" } ] }
Permissions Boundary の検証
メニューを戻り、左ペインの画面下のほうに Custom IAM Permissions Boundary Policy の欄があり、そこに先ほど作成した TestBoundary
がリストされていますので、チェックを入れます。
そして、先ほどと同じアクションをシミュレートしてみると、Boundary Policy がマッチしなかったことで denied
されたことがメッセージから判断できますね。
次に TestBoundary で許可されている IAM まわりのアクションを確認すると、意図したとおり利用可能であることが判ります。
このように BoundaryPolicy がどのように影響するのかを事前に検証することで安全にガードレール環境を実装することが出来るようになりますね!確認は以上です!
さいごに
BoundaryPolicy はアクセス許可の範囲を限定させる「ガードレール」を構成するために必要な機能の 1 つですが、誤った設定を行ってしまうとシステムに大きな影響を与えてしまう可能性もあります。
今回 IAM ポリシーシミュレータで Permissions Boundary のシミュレートが出来るようになりましたので、適用前に是非ご利用いただき、安全にガードレール環境を構築しましょう!
以上!大阪オフィスの丸毛(@marumo1981)でした!