【AWS】IAMFullAccessを持たずして Role を作成することは可能なのか
AWS (猛)特訓中のマルオです。先日こんな話題があがりました。
「ユーザにIAMFullAccessを渡さずに、ロールの作成とアタッチができるユーザ権限は無いものか」
IAMFullAccessは渡したくなけど、運用上特定のユーザに一時的に付与せざるを得ないケースはままあります。対象が信頼のおけるユーザでも、管理者としてはちょっと気持ちの悪いこの状況。そこで要望に応えられるのか?を検証してみます。
期待する結果
- IAM Role を作成できる
- IAM Role をインスタンスにアタッチできる
前提条件
- 対象ユーザのポリシーは PowerUsers が付与されている
作業の流れ
- IAMポリシーを作成する
- 作成したポリシーを対象ユーザに付与
- 対象ユーザが Role を作成
- インスタンスを立ててロールをアタッチ
1.IAMポリシーを作成する
目的の動作ができるポリシーをIAMPassRoleAccessという名前で作成してみます。(名前は任意)
作成したポリシーの内容。
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“iam:Get*”,
“iam:List*”,
“iam:PassRole”,
“iam:CreateRole”,
“iam:CreateInstanceProfile”,
“iam:AddRoleToInstanceProfile”,
“iam:AttachRolePolicy”
],
“Resource”: “*”
}
]
}
どうやら
iam:PassRoleが Role を操作する権限になるようです。
しかし、このアクセス権限だけではロールを作成したりアタッチするには権限が不足しています。どの権限が足りないかは Role 作成時にエラーで教えてくれるので、不足しているアクセス権限を追加していきます。
2.作成したポリシーを対象ユーザに付与
作成したポリシーを対象のユーザにアタッチ。
3.対象ユーザが Role を作成
対象のユーザでログインして Role を作成してみます。
ためしにEC2インスタンスを立てるので、AmazonEC2FullAccessを付与。
ここまでで対象のユーザがロールを作成するところまで出来たので、適当なインスタンスに、作成した Role 「IAMRoleAccess_roleTest」を付与してみます。 画像はインスタンス作成時に Role を選択する箇所。リストに表示されていれば成功。
ちなみに権限不足の状態でも Role は作成されますが一覧には表示されないようです。
これで無事、対象ユーザで Role 作成とアタッチが出来ました。これで気持ちの悪い状況とはおさらばです。
以上