【AWS】Switch Roleにおける、引き継ぐための最低限のポリシーを説明する

[toc heading_levels=”2,3,4″]

もくじ

前書き

AWSのSwitch Role(ロールを別アカウントに付与する)について、最低限の設定を解説します。

引き継ぎロールに必要な設定と、引き継ぎ先ユーザー必要なポリシーに焦点を当てて説明します。

引き継ぎ元のロールの信頼関係でどのように書けば引き継ぎ先ユーザーが使えるのか。

引き継ぎ先ユーザーにどのようなポリシーがあればロールを引き継げるのか。

これが今回説明する内容になります。

環境

今回の検証で使用する環境は以下の通り。

引き継ぎ元

パラメータ
AWSアカウント 212928105054
わたすロール TestRole
わたすポリシー AmazonEC2FullAccess
(AWS管理ポリシー)

引き継ぎ先

パラメータ
AWSアカウント 738452829225
ロールを引き継ぐユーザー 7384-Atsushi
ロールを引き継ぐためのポリシー TestPolicy

実施作業

【引き継ぎ元】ロールの作成

引き継ぎ元のAWSアカウントにて、IAMロールを新規作成します。

「別のAWSアカウント」を選択して、[アカウントID]に引き継ぎ先のAWSアカウントを入力します。

今回はEC2のフルアクセスを引き継ぎたいので、ポリシー一覧から「AmazonEC2FullAccess」を選びます。

タグは設定しませんでした。ロールの名前は前述のとおり「TestRole」とします。ロールの作成を完了します。

【引き継ぎ先】ロールを引き継ぐためのポリシー作成

ロールを引き継ぐ先のAWSコンソールにログインし、IAMコンソールから新規ポリシーを作成します。

[JSON]形式でポリシーを定義します。下記のように記載します。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::212928105054:role/TestRole"
    }
}

定義の意味は、212928105054(引き継ぎ元アカウント)のTestRoleというロールを引き継ぐことができる、という意味になります。

前述のとおり「TestPolicy」という名前で保存しました。

【引き継ぎ先】ユーザーの作成

ロールを引き継ぐIAMユーザーを作成します。

前述のとおり「7384-Atsushi」というユーザー名にします。

先ほど作成した、「TestPolicy」をアタッチします。「既存のポリシーを直接アタッチ」から選択します。

【引き継ぎ元】ロールを引き継ぐためのポリシー設定

先ほど作った「TestRole」を引き継ぎ先の「7384-Atsushi」ユーザーが引き継げるように設定します。

IAMコンソールのロールから、「TestRole」を選択し、「信頼関係」タブから「信頼関係の編集」をクリックします。

Principalの”AWS”の項目を「“arn:aws:iam::738452829225:user/7384-Atsushi”」に修正します。
設定値の意味は、738452829225(引き継ぎ先)の「7384-Atsushi」ユーザーにこのロールの使用を許可する、というものです。

動作確認

引き継ぎ先(738452829225)の「7384-Atsushi」ユーザーで、引き継ぎ元(212928105054)の「TestRole」を引き継ぎ(スイッチ)し、引き継ぎ先(738452829225)のEC2コンソールでフルアクセスがあるか確認します。

引き継ぎ先AWSコンソールに「7384-Atsushi」ユーザーでログインし、右上のユーザーアカウントのプルダウンから「ロールの切り替え」をクリックします。

[アカウント]には引き継ぎ元AWSアカウント番号(ここでは212928105054)、ロールは引き継ぎ元ロールなのでここでは「TestRole」、表示名は何でもいいので、ここでは「2129TestRole」としました。
ロールの切り替え」ボタンをクリックします。

右上のアカウントの表示が、「2129TestRole」になれば成功です。(表示名をここでは「2129TestRole」としたため)

試しにIAMダッシュボードにアクセスしてみます。下図のとおり、権限がなく表示ができません。

EC2ダッシュボードにアクセスしました。エラーは表示されずEC2インスタンスも表示できています。

試しにEC2インスタンスを作成してみます。

EC2インスタンスを作成することができました。(「AmazonEC2FullAccess」があるので)

引き継ぎ元AWSコンソールからも、7384-Atsushiユーザーが作成したEC2インスタンスが見えました。

まとめ

  • ロールを引き継ぐためには、引き継ぎ先ユーザーに「AWS STS AssumeRole」に対するアクセスを許可する。
  • ロールを引き継ぐためには、引き継ぎ元ロールに引き継ぎ先との信頼関係を築いておく。

最後までお読みいただきありがとうございました。

参考サイト

ロールを切り替えるアクセス許可をユーザーに付与する

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント

コメントする

CAPTCHA

もくじ
閉じる