はじめに
こんにちは!
BFT名古屋支店・新卒のげんぬです。
AWSに触れてから早くも1カ月が経とうとしています。そろそろAWSにも慣れてきたかな?と思いつつも、日々Jsonに苦しめられています。
前回、前々回からIAMに関して着実に理解を深めていっている中で、今回はクロスアカウントアクセスを実践してみたので、はてブロでアウトプットしていきたいと思います!
前回のスイッチロールと設定方法はほぼ同じですが、動作としてはクロスアカウントアクセスとなるため、スイッチロールの番外編として書かせて頂きます。
前回、前々回のブログへは以下のURLを参照ください。
【AWS】IAM について基本からまとめてみた - BFT名古屋 TECH BLOG
【AWS】スイッチロールを実践してみる - BFT名古屋 TECH BLOG
クロスアカウントアクセスとは
クロスアカウントアクセスとは2つ以上のアカウントをそれぞれの役割(例:ユーザ管理アカウント、開発アカウント、テスト環境用アカウント等)に分けて使う場合、一時的に別のアカウントにスイッチロールし、そのアカウント内のリソースにアクセスする権限を得ることができる仕組みのことです。
検証内容
概要
今回は2つのAWSアカウント(AWSアカウントAとAWSアカウントB)を作成し、以下のような内容で検証を行いました!
①アカウントAで検証用ロール(IAMポリシー:Amazon RDS Full Access 付与)の作成
②アカウントBでポリシーを作成し、クロスアカウントアクセスを実施するIAMユーザにアタッチ
③アカウントAで作成した検証用ロールにアカウントBで作成したIAMユーザでクロスアカウントアクセスし、動作確認
2つのAWSアカウントを用意し、クロスアカウントアクセスした後にRDSを作成できることを確認します。
事前準備
検証を行う前に以下のような準備を行いました。
-AWSアカウントA(AWSアカウントIDxxxx-xxxx-xxxx)
-AWSアカウントB(AWSアカウントIDyyyy-yyyy-yyyy)
アカウントAで検証用ロール作成のため、IAMユーザ(IAMポリシー: Administrator Access 付与)を作成します。
アカウントBでクロスアカウントアクセスを実施するIAMユーザ(権限無し)を作成します。 ※この時点では作成したIAMユーザに権限はありませんが、検証手順の中で(IAM ポリシー:STS Assume Role)を付与します。
アカウントAで検証用ロール(IAMポリシー:Amazon RDS Full Access 付与)の作成
初めに、検証用ロールを作成するため以下の手順を行います。
①マネジメントコンソールにIAMユーザ(IAMポリシー:Administrator Access 付与)でログインします。
②IAMのダッシュボードへ移動し、左ペインから[ロール]をクリックし、[ロールを作成]をクリックし、以下の値を入力します。
信頼されたエンティティの選択
許可を選択
ロールの詳細
- ロール名:任意(今回はtest-rds-full-roleで作成)
- 説明:任意(今回はtest-rds-full-roleで作成)
- タグ:キー、値ともに任意のものをつける
③最後に[ロールを作成]をクリックします。
④「ロールが作成されました」と表示され、任意の名前を付けたロールが作成されていることを確認します。
アカウントBでポリシーを作成し、クロスアカウントアクセスを実施するIAMユーザにアタッチ
続いて、クロスアカウントアクセスを実施するIAMユーザのポリシーを以下の手順で作成していきます。
①IAMダッシュボードの左ペインから[ポリシー]をクリックし、[ポリシーを作成]をクリックします。
②[Json]をクリックし、以下の内容を入力します。
※黒塗りの部分は検証用ロールを作成したアカウントのID(今回の場合はアカウントA)が入ります。
③任意のタグを追加します。
④ポリシーの確認で以下の内容を入力します。
ポリシーの確認
⑤最後に[ポリシーの作成]をクリックします。
⑥「ポリシーが作成されました」と表示され、任意の名前を付けたポリシーが作成されていることを確認します。
また、ポリシーをスイッチロールするユーザにアタッチします。
⑦IAMダッシュボードの左ペインから[ユーザ]をクリックし、スイッチロールするユーザをクリックします。
⑧[アクセス権限の追加]をクリックし、[既存のポリシーを直接アタッチ]をクリック、先ほど作成したポリシーを選択します。
⑨[アクセス権限の追加]をクリックします。
⑩「New feature to generate a policy based on CloudTrail events.」と表示され、「Permissions policies」の直接アタッチ済みの欄に先ほどアタッチしたポリシーが表示されていることを確認します。
アカウントAで作成した検証用ロールにアカウントBで作成したIAMユーザでクロスアカウントアクセスし、動作確認
①マネジメントコンソールにIAMユーザ(アカウントBで作成したクロスアカウントアクセスを実施するIAMユーザ)でログインします。
②画面の右斜め上にある[IAMユーザ名@yyyy-yyyy-yyyy]をクリックし、[ロールの切り替え]をクリックします。
③以下の値を入力し、[ロールの切り替え]をクリックします。
- アカウント* [アカウントAのID :xxxx-xxxx-xxxx]
- ロール* [test-rds-full-role]
- 表示名* [test-rds-full-role]
④画面右斜め上で[IAMユーザ名@yyyy-yyyy-yyyy]と表示されていた箇所が「test-rds-full-role」になっていることを確認します。
⑤Amazon RSDのダッシュボードに移動し、新規でデータベースを作成します。
※今回新規でRDSを作成できることを確認しているだけとなるため、RDSの作成手順は割愛しております。
⓺以下のメッセージが表示され、データベースを作成することができました。
まとめ
今回クロスアカウントアクセスを簡単にご紹介しました!
クロスアカウントアクセスを使えば、権限の管理をより安全かつ簡単におこなうことができますね!