AWS Organizations 配下のメンバーアカウントがアクセスした AWS サービス の最終アクセス履歴を取得する

2023.07.31

AWS アカウント上で AWS サービスレベルの過去のアクセス履歴を確認するとなると IAM Access Advisor をご利用されているかと思います。

AWS Organizations 配下の複数のメンバーアカウントに対して個々に確認しようと思うとうんざりしますね。今回は Organziations 配下のすべてのアカウントを対象に AWS サービスレベルで過去のアクセス履歴を一括で確認する方法を試してみたので紹介します。

公式ドキュメント

以下のリンクは AWS サービスレベルの過去のアクセス履歴を Organziations 全体で確認できるのか?と調べていたらたどり着いたドキュメントです。

IAM Access Advisor ほど情報は取れないようですが、過去のアクセス履歴は確認できることがわかったので実際に試してみます。

やってみた

Organziations の管理アカウントからすべてのメンバーアカウントが AWS サービスへアクセスした履歴を取得します。

IAM のページから組織アクティビティを開きます。ちなみに私は今まで存在に気づいていませんでした。

OU の階層と、メンバーアカウントが表示されました。Rootをクリックしてみます。

詳細およびアクティビティタブにRootOU 配下のメンバーアカウントの最終アクセス履歴が表示されました。表示されるまで少し時間かかりました。

LogArchive アカウントは文字通り各種ログを収集しているアカウントでして多くのサービスへアクセスしているようです。 AWS サービスレベルでメンバーアカウント単位でアクセスしているのか、していないかは管理アカウントから簡単に確認できました。

OU 単位でフィルタする

すべてのメンバーアカウントを確認するにはRootOU から確認すればよかったのですが、OU 単位でフィルタしてみたい場合を確認します。

SecurityOU をクリックして開きます。

表示例がまた LogArchive アカウントで恐縮ですが、特定の OU を開き、詳細およびアクティビティを確認すれば OU 単位で最終アクセス履歴を確認できました。

AWS CLI から確認

ここまでの確認で Web UI から簡単に確認できることを確認できました。

よくありそうなユースケースとしては、過去にアクセスした AWS サービスを一覧で欲しいではないかと思ったので確認します。IAM ユーザーレベルであれば以下のブログで紹介されている内容です。

今回はRootOUを対象に Organziations のすべてのメンバーアカウントの最終アクセス履歴を取得します。使うコマンドは以下の2つです。

さきにコマンドの引数で必要になる値を確認します。

RootOU を対象するためRootOU のorganization-policy-idを確認します。手っ取り早い確認方法は先ほど確認した組織アクティビティからRootOU を開いて ARN の後半部分をコピーします。

--entity-pathオプションの引数としてペーストします。そしてコマンドを実行します。

$ aws iam generate-organizations-access-report --entity-path o-1234567890/r-1234

実行結果としてJobIdが返ってきます。JobIdの値は次のコマンドの引数で使います。

実行結果

{
    "JobId": "54c4d59f-015e-0693-5eec-6c9c366430e1"
}

--job-idオプションの引数として 1 つ前に実行したコマンドの実行結果のJobIdの値を入力します。--outputオプションは table 指定でテキストファイルに保存しました。--output を省略した場合のデフォルトのレスポンスは json 形式です。table の他には text で出力指定ができます。

$ aws iam get-organizations-access-report --job-id 54c4d59f-015e-0693-5eec-6c9c366430e1 --output table > result.txt

table 指定で一覧っぽくなるかと思ったのですがそこまできれいには出力できませんでした。csv 形式で出力できればよかったのですがサポートしていないため、きれいな一覧が欲しいときは json の結果を jq などで加工して利用した方が良さそうですね。

result.txt language=の前半部分抜粋

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                                                                                                                                                                                                                                                                                                                                                     GetOrganizationsAccessReport                                                                                                                                                                                                                                                                                                                                                                                                      |
+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|  IsTruncated                |  True                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|  JobCompletionDate          |  2023-07-31T09:18:39.022000+00:00                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|  JobCreationDate            |  2023-07-31T09:18:35.192000+00:00                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|  JobStatus                  |  COMPLETED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|  Marker                     |  AYABeDnxGz+/xxx   |
|  NumberOfServicesAccessible |  367                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|  NumberOfServicesNotAccessed|  259                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
||                                                                                                                                                                                                                                                                                                                                                                                                            AccessDetails                                                                                                                                                                                                                                                                                                                                                                                                            ||
|+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+|
||                                                                                        EntityPath                                                                                         |                                         LastAuthenticatedTime                                         |                            Region                              |                                                                                                              ServiceName                                                                                                               |                                             ServiceNamespace                                              |                                        TotalAuthenticatedEntities                                         ||
|+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+|
||                                                                                                                                                                                           |                                                                                                       |                                                                |  AWS App2Container                                                                                                                                                                                                                     |  a2c                                                                                                      |  0                                                                                                        ||
||                                                                                                                                                                                           |                                                                                                       |                                                                |  Alexa for Business                                                                                                                                                                                                                    |  a4b                                                                                                      |  0                                                                                                        ||
||  o-1234567890/r-1234/ou-123456789012/123456789012                                                                                                                                       |  2023-07-31T00:53:05+00:00                                                                            |  ap-northeast-1                                                |  AWS IAM Access Analyzer                                                                                                                                                                                                               |  access-analyzer                                                                                          |  3                                                                                                        ||
||                                                                                                                                                                                           |                                                                                                       |                                                                |  AWS Account Management                                                                                                                                                                                                                |  account                                                                                                  |  0                                                                                                        ||
||  o-1234567890/r-1234/ou-123456789012/123456789012                                                                                                                                       |  2023-07-30T22:53:05+00:00                                                                            |  ap-northeast-1                                                |  AWS Certificate Manager                                                                                                                                                                                                               |  acm                                                                                                      |  3                                                                                                        ||
||  o-1234567890/r-1234/ou-123456789012/123456789012                                                                                                                                       |  2023-07-31T01:53:05+00:00                                                                            |  ap-northeast-1                                                |  AWS Private Certificate Authority                                                                                                                                                                                                     |  acm-pca                                                                                                  |  1                                                                                                        ||
||                                                                                                                                                                                           |                                                                                                       |                                                                |  AWS Activate                                                                                                                                                                                                                          |  activate                                                                                                 |  0                                                                                                        ||
||                                                                                                                                                                                           |                                                                                                       |                                                                |  Amazon Managed Workflows for Apache Airflow

おわりに

Organziations の管理アカウントからすべてのメンバーアカウントの AWS サービスレベルの最終アクセス履歴の確認方法でした。

久々に AWS 試験勉強していました。このブログを書くために手を動かしたのは受験後なのですが、今回の試験勉強のハイライトが「へぇ、そんなところから確認できたんだ」だったのでブログに書き残しました。

参考