最近はQiitaしか投稿していなくてこちらはサボり気味ですが、ネタがあったので書きます。
内容はタイトルにある通り、参照用IAMユーザに対して、特定のEC2の起動停止が可能な権限を追加していきます。
実施作業
準備
参照用IAMユーザに権限をアタッチするためのIAMグループを作成します。
ポリシーには参照権限のみが付与されている管理ポリシーのReadOnlyAccessをアタッチします。
IAMユーザを作成し、作成したIAMグループに追加します。
IAMグループから権限が付与されています。
起動停止権限の許可
変更操作可能な別のIAMユーザでログインし、起動停止したいEC2にタグを設定します。
起動停止権限の許可するカスタムポリシーを作成して、IAMグループにアタッチします。
ポリシー内容は以下です。
特定のAWSタグを条件として操作を許可しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:*Instances", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/TARGET": "USER" } } } ] }
EC2実行
もう一度参照用IAMユーザでコンソールにログインしなおして、タグを設定したEC2の起動を実施してみます。
先ほどとは違ってEC2の起動ができました。
タグをつけていない別のEC2を起動してみます。
タグが付いていない場合は起動に失敗しました。
想定通り、指定のタグを持つリソースに対してのみ操作ができていました。
感想及び所感
参照はさせたいけど変更操作は最低限に絞っておきたいときに、このようにReadOnlyAccessポリシーとタグ制御用のカスタムポリシーを組み合わせることで細かな権限管理が可能となります。
今回はEC2の起動停止に絞って権限を作成しましたが、タグが設定されていればEC2以外のサービスでも使えるので、是非使ってみてください。