[アップデート] IAM Access Analyzer が AWS Organizations に対応しました!

re:Invent2019 で新登場した IAM Accsess Analyzer。今回のアップデートによりマルチアカウントの外部アクセス管理が、とてもカンタンに行えるようになりました。ありがたし。
2020.04.09

ちゃだいん(@chazuke4649)です。

ちょっと前のアップデートですが、
IAM Access Analyzer が AWS Organizations に対応しました!

自社の AWS の組織外から AWS リソースへの意図しないアクセスが許可されていないかを確認し、それに対処する

これにより、
AWS Organizatons の「組織」に属するすべてのメンバーアカウントに対し、アクセスアナライザーで一気に全アカウントの外部アクセスを検出できるようになりました。詳細は以下のブログをどうぞ。

新機能 – AWS Organizations での AWS IAM Access Analyzer 使用 | Amazon Web Services ブログ

また、このブログにはこんな記載がありました。

組織内のメンバーアカウントを、IAM Access Analyzer のための委任された管理者として選任することもできます。委任された管理者となったメンバーアカウントには、その組織内に Access Analyzer を作成するための権限が付与されます。

せっかくなので今回は、「マスターアカウントがメンバーアカウントにアナライザーの代理管理を委任して、メンバーアカウントが組織全体をスキャンする」ことを試してみたいと思います。

前提

「組織」に属するもの

  • マスターアカウントA
  • メンバーアカウントB ←代理管理者に委任予定
  • メンバーアカウントC

「組織」に属さないもの

  • 外部アカウントD

検出したいもの

  • メンバーアカウントBにある、外部アカウントDからスイッチできるIAMロール
  • メンバーアカウントCにある、外部アカウントDからアクセスできるS3バケット

作業手順

  • 「組織」の作成(済)
  • メンバーアカウントの招待(済)
  • 検出したいリソースの作成(済)
  • アナライザー権限の委任 ←ここからやります
  • アナライザーによるスキャン実行

やってみた

1. マスターアカウントでメンバーアカウント1に委任する

マスターアカウントでアクセスアナライザーを開くと、早速「代理管理者」の説明があるので、ここを開きます。

アナライザーの設定画面に飛び、代理管理者を追加を選択します。

ここで代理管理者に委任するメンバーアカウントB(63**********)を入力し、変更を保存します。

すると、設定ページにて、代理管理者が登録されていることが確認できます。

ちなみに、代理委任者を登録するとマスターアカウントAにサービスロールが作成されると記載がありました。 見に行ってみると確かにAWSServiceRoleForAccessAnalyzerというサービスロールが作成されていました。

2. メンバーアカウント2で実行する

ここからはメンバーアカウントBの画面となります。
IAMコンソールを開きアクセスアナライザーの設定ページを開くと、こちらでも代理管理者に登録されていることが確認できます。

それではアナライザーを作成してみましょう。

ここでのポイントは「信頼ゾーン」で「現在の組織」を選択できる点です。
これによって「現在の組織」のアクセスアナライザーを作成することができます。
アナライザーを作成してみます。

スキャンに少し時間を要するので即時反映とはいかないようです。 数分後にみてみると、アナライザーの詳細にてステータスが「スキャン中」から「アクティブ」に変更されてました。

アナライザーを開くと、2件ヒットしています。
1つ目は、メンバーアカウントB(現在のアカウント)の仕掛けておいたIAMロール、
2つ目は、メンバーアカウントCの仕掛けておいたS3バケットのようです。

2つ目の詳細画面はご覧の通りです。

メンバーアカウントBはメンバーアカウントCに対して何のパーミッションも持っていませんが、 手順1にて管理者の委任を行った結果、組織内の他のアカウントに対しアナライザーを実行することができました。

終わりに

これにより Organizations によるマルチアカウントの外部アクセス管理がより簡単に行えるようになりました。 Organizations を使用中の方はぜひご活用ください。

それではこの辺で。ちゃだいん(@chazuke4649)でした。