目的
AWSのIAM周りを理解する。
特に、「スイッチロール」
スイッチロール
重要度⭐⭐⭐⭐⭐⭐
スイッチロールとは
AWSのIAMユーザーがAWSアカウント内のIAMロールに切り替えて、一時的にそのロールの権限を受け継ぐ。
アカウントを跨いだスイッチロール等も可能
⭐スイッチロールを実際の設定を交えて、理解していく。
①:IAMユーザー作成
スイッチロールの起点(切り替え元)となるIAMユーザーを作成する。
②:IAMロール作成
スイッチロール先となるIAMロールを作成する。
本来はIAMロールで何を許可するか・どのサービスを許可するかなどを定義しますが、今回は割愛します。
適当なロールを作成しました。
ポリシーはAdmin権限を付与してます。
③:ロールの信頼関係の設定
重要度⭐⭐⭐⭐⭐
ロールの信頼関係とは?
どのエンティティがロールへのスイッチを可能とするかを定義するルール
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ほとんどバケットポリシーと同じ形式です。
Allowで明示的に許可してPrincipalでサービス・ARN等を指定。
"Action": "sts:AssumeRole" は、IAMロールを引き受ける(スイッチする)ための操作を許可するものです。(ヘルメットをかぶるためのおまじないみたいもの)
今回は先ほど作ったユーザにのみ、このロールを引き受ける権利を与えたいのでIAMユーザーのプリンシパルを指定します
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "<ARN>"
},
"Action": "sts:AssumeRole"
}
]
}
④:スイッチロール実行
先ほど作成したユーザーで、AWSコンソール画面にログインします。
IAM画面を開くと、このユーザーには権限持たせてないため、IAMの情報などは取得できないことが分かります。
・アカウントID:スイッチ先のIAMロールが存在するアカウントID
・IAMロール:ロール名
を入力してスイッチします。
成功するとコンソール画面に戻るので右上のユーザー画面を確認すると
・スイッチしたロールとして、ログインできているのが確認できます。
さらに、IAM関連の情報も確認できていることが分かります。