はじめに
「運用で、オペレータに一部権限変更を可能とする」という運用をAWSで実装するときに、アクセス許可境界(Permissions Boundary)が使えそうなので、試してみました。
概要
アクセス許可境界のイメージは、よくベン図であらわされています。
「運用で、オペレータに一部権限変更を可能とする」という視点で表現すると、「許可できる範囲は、アクセス許可境界の内側に制限される」といえ、以下のように図示してみました。
仮にオレンジが点線を超えてしまった場合、点線内部の操作しかできません。
またアクセス許可境界は、"IAMポリシーをアクセス許可境界として扱う"という風に設定します。アクセス許可境界の専用の特別設定があるわけではありません。
その他、付与可能なリソースは、ロールとユーザになり、ユーザグループはできません。
アクセス許可境界の設定方法
設定方法は以下になります。
- 境界用のポリシーを作成
- 作成時/更新時に、上記ポリシーをアクセス許可境界として割り当て
新規作成時は設定でチェックを入れると指定できます。ラジオボタンになっており、複数選択はできませんでした。
編集時は、許可の境界のトグルを開き、「許可の境界を設定」ボタンをクリックすると、ポリシーを選択する画面に遷移します。こちらも複数選択はできませんでした。
アクセス許可境界の確認
今回はユーザを作って、それにアクセス許可境界を宛がい動作を確認します。
- ユーザにAdministratorAccessを付与
- アクセス許可境界として、一部のEC2の起動停止権限のみ可能のポリシーを付与
図示すると以下のように、権限は広いのですが、アクセス許可境界はすごく小さいイメージです。オペレータが操作ミスで過剰な権限を付与してしまった、という想定です。
準備
アクセス許可境界用のポリシーとして、以前記事にした「ユーザーのDept
タグ:値と、同じDept
タグ:値を持つEC2インスタンスの起動停止をできるポリシー」を使ってみます。
ユーザは以下で作成します。
動作テストのために、2つのEC2を作ります。片方はユーザと同じタグ:値を持たせています。
検証
作成したユーザでログインしてみます。
AdministratorAccessが付与されているのに、アクセス許可境界のために最低限の情報しか見れないです。
同じタグが付与されているEC2は起動できます。
タグが付与されていないEC2は、AdministratorAccessであるのに起動できませんでした。
おわりに
今回は実運用に即してアクセス許可境界の使い方を試してみました。この機能を使うと、作業ミスでも過剰な権限にならないようブレーキできるので、大変便利と感じました。
この記事がどなたかのお役に立ちましたら幸いです。