そのBoundary Policy適用しても大丈夫ですか? IAM Policy SimulatorでBoundary Policyのシミュレーションが可能になりました

Permissions Boundary を設定する際は必ず事前にシミュレーションしましょ。
2020.01.30

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

先日のアップデートで 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 を作成しました。

AdministratorAccess

{
    "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 アカウントには作成されません)

TestBoundary

{
    "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)でした!

参考