こんにちはますのです。
先日、IAM Switch RoleでIAMユーザにしか権限付与出来ないじゃないの。とつぶやいたところ、
出来まっせ!!と有識者の方から情報を頂きました!
あれ、特定のグループだけスイッチロールできるように制御できますよ。
例えばAdministratorsグループに次のようなポリシーを割り当てれば、そのグループのメンバーしか SwitchRoleForAdministrators というロールにスイッチできないように制御できます。 pic.twitter.com/h3EVE3Nxhv
— ルビコン|インフラエンジニア×不動産投資|9月末までに1000フォロワーさん! (@RubiconLink) August 18, 2020
Twitterって有難いですわぁ。。。
わたしの検証アカウントで「AdministratorAccess」がついていたので、全IAMユーザと勘違いしていたというオチでした。
IAMグループ単位で管理したいと思っていたので、筆者の環境はこちらの設定に変更しました。
事前準備:スイッチロールの設定を行う
細かい設定手順は他人任せです。クラスメソッドさんの記事をご覧あれです。
関連:【AWS SSO】【Switch Role】複数のAWSアカウントでログインを簡単に!
事前準備でやることを簡単に説明するとこんな感じです。
- スイッチ先のAWSアカウント>IAMで「スイッチを許可するIAMロール」を作成する
- スイッチ元のAWSアカウント>IAMで「スイッチ操作を許可するIAMポリシー」を作成する
スイッチ元のIAMグループに「sts:AssumeRole」が許可されたIAMポリシーをアタッチする
スイッチ元からスイッチ先「AWSアカウント:123456789012」に対してスイッチ出来るように、IAMポリシーが作成されています。
あとは設定したいIAMグループにアタッチするのみです。
- IAM>グループ>スイッチを許可したいグループ選択
- タブ:アクセス許可>ポリシーのアタッチをクリック
- 事前に作成したIAMポリシー「AdminSwticthRole」を選択しアタッチする
AdministratorAccessの場合は「Action:*」「Resource:*」で許可となっているので、IAMグループ自体設定不要でした。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
スイッチロールの許可に必要なものは「Action:sts:AssumeRole」「Resource:スイッチ先のARN」であると理解できました。
IAMの権限設定は行き当たりで設定していますが、まだまだ考えないといけないことが多そうです。