雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

IAMで特権ポリシーを操作(アタッチ、デタッチ)できないように制御する

一つの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」をアタッチしようとすると以下のように権限エラーとなります。

f:id:ykoomaru:20191008075157p:plain

最後に

予めアタッチを許可するIAMポリシーが決まっている場合は、今回 "Effect": "Deny" とした箇所を "Effect": "Allow" に変更することで、特定のIAMポリシーのみアタッチさせるよう制御できます。
開発スピードを失わせないようなIAM制御をすることが大切ですね!