AWSのIAMポリシーでMFAを有効にしない場合、操作権限を制限しつつ自身でMFAの管理をするポリシーについてはIAM
サービスのキュメントに記載があります。
- ユーザーが認証情報と MFA 設定を管理できるようにする
- AWS: MFA で認証された IAM ユーザーが [My Security Credentials] (マイセキュリティ資格情報) ページで自分の認証情報を管理できるようにする
- IAM: IAM ユーザーに MFA デバイスの自己管理を許可する
またなぜかAWS RoboMaker
サービスのドキュメントにも、似たような事をやっているドキュメントがあります。
三者三様といった感じですが、見比べると基本はCondition
でaws:MultiFactorAuthPresent
がfalse
になっている際は、Deny
とNotAction
で指定したアクション以外を拒否する事により、MFAが有効になっていない場合、操作権限を制限するポリシーとなっていました。
マネジメントコンソールからポリシーを作成する
今回、3種類のポリシーを紹介しましたが各々の要件にしたがって選ぶなり編集するなりしてポリシーを作成すればOKです。
ここではマネジメントコンソールから登録してみます。
IAMのコンソール ポリシー の画面で ポリシーの作成
を選択
ポリシーの作成でJSONタブを選択してJSONを入力して 次のステップ
を選択
今回はタグを追加しないので 次のステップ
を選択
ポリシーの名前を入力してポリシーの作成を選択
今回はForceMFAPolicy
という名前にしてみました。
作成できました。
このポリシーをIAMユーザ、IAMロール、グループ等々に割り当てて利用することにより。
MFAが付いていない場合権限を制限する事ができ、またMFAが割当たってない場合に自分でMFAを割り当てるといった操作ができる権限が実現できます。
総評
検索していて、なぜかRoboMaker
サービスのドキュメントに記載されているポリシーには詳細な説明があることに気が付きました。
それぞれのドキュメントでちょっとした違いはありますが、読み比べてどれを利用するかは選択したい所です。