一つのAWSアカウントを複数の部署やチームで共有している場合、権限制御をするために、IAMの管理が必須となります。
今回は、AWがマネージドポリシーとして用意している特権相当のポリシーについて、権限制御するようなIAMポリシーを作成しました。
権限制御をする際にすべてのIAMの操作を制御してしまうとIAM ロールなどの作成ができず開発スピードが落ちてしまうことがあるので、そういう場面で特権のみ制御したIAMの払い出しをできると思います。
やったこと
このIAMポリシーをアタッチしたIAMリソースは、特権IAMポリシーに関する操作が拒否される。
- 制御アクション
- IAM User への特権IAMポリシーのアタッチ、デタッチ
- IAM Role への特権IAMポリシーのアタッチ、デタッチ
- IAM Group への特権IAMポリシーのアタッチ、デタッチ
- 制御対象特権IAMポリシー
- AdministratorAccess
- PowerUserAccess
IAM Policy
以下のポリシーを制御したいIAM User、Group、Roleのいずれかにアタッチしてください。
aws/policy at master · koonagi/aws · GitHub
テスト
IAM ロールに「PowerUserAccess」をアタッチしようとすると以下のように権限エラーとなります。
最後に
予めアタッチを許可するIAMポリシーが決まっている場合は、今回 "Effect": "Deny"
とした箇所を "Effect": "Allow"
に変更することで、特定のIAMポリシーのみアタッチさせるよう制御できます。
開発スピードを失わせないようなIAM制御をすることが大切ですね!