2022年2月以降にAWS ConfigがサポートされたリージョンではグローバルリソースタイプのIAMリソースタイプを記録できません
はじめに
オプトインリージョン(デフォルトでは無効になっており、手動で有効化する必要があるリージョン)でAWS Configのレコーダー設定を行った際、「記録戦略」の選択肢が標準リージョンと異なることに気づきました。
どのような仕様の違いがあるのか戸惑ったため、本記事ではその理由について紹介します。

東京リージョンの場合

オプトインリージョン(タイリージョン)の場合
調査の結果、この違いはリージョンがオプトインかどうかではなく、そのリージョンでAWS Configが利用可能になった時期によって決まることがわかりました。
記録可否の条件と対象リージョン
具体的には、AWS ConfigでグローバルリソースタイプのIAMリソースを記録できるかどうかが異なります。
- 2022年2月以前にAWS Configがサポートされたリージョン: グローバルリソースタイプのIAMリソースの記録が可能
- 2022年2月以降にAWS Configがサポートされたリージョン: グローバルリソースタイプのIAMリソースの記録が不可能
例えば、2021年3月に開設された大阪リージョン(ap-northeast-3)や、2020年4月に開設されたオプトインリージョンであるケープタウンリージョン(af-south-1)は、どちらもAWS Configレコーダーでグローバルリソースを記録可能です。
一方、2022年2月以降にAWS Configがサポートされた以下のリージョンでは、グローバルリソースタイプのIAMリソースを記録できません。
- Asia Pacific (Hyderabad) - ap-south-2
- Asia Pacific (Malaysia) - ap-southeast-5
- Asia Pacific (Melbourne) - ap-southeast-4
- Asia Pacific (Thailand) - ap-southeast-7
- Canada West (Calgary) - ca-west-1
- Europe (Spain) - eu-south-2
- Europe (Zurich) - eu-central-2
- Israel (Tel Aviv) - il-central-1
- Mexico (Central) - mx-central-1
- Middle East (UAE) - me-central-1
この動作については、AWS Configのドキュメントに明記されています。
The following IAM resource types are global resources: IAM users, groups, roles, and customer managed policies. These resource types can be > recorded by AWS Config in Regions where AWS Config was available before February 2022. This list where you cannot record the global IAM resource types includes the following Regions: Asia Pacific (Hyderabad), Asia Pacific (Malaysia), Asia Pacific (Melbourne), Asia Pacific (Thailand), Canada West (Calgary), Europe (Spain), Europe (Zurich), Israel (Tel Aviv), Mexico (Central), and Middle East (UAE).
(日本語訳)以下のIAMリソースタイプはグローバルリソースです:IAMユーザー、グループ、ロール、カスタマー管理ポリシー。これらのリソースタイプは、2022年2月以前にAWS Configが利用可能だったリージョンでAWS Configによって記録できます。グローバルIAMリソースタイプを記録できないリージョンのリストには、以下が含まれます:アジアパシフィック(ハイデラバード)、アジアパシフィック(マレーシア)、アジアパシフィック(メルボルン)、アジアパシフィック(タイ)、カナダ西部(カルガリー)、ヨーロッパ(スペイン)、ヨーロッパ(チューリッヒ)、イスラエル(テルアビブ)、メキシコ(中部)、中東(UAE)。
また、2022年2月以前にサポートされたグローバルリソースタイプのIAMリソースと、それ以降にサポートされたその他のグローバルリソースタイプでは扱いが異なることも記載されています。
Global resource types onboarded before February 2022 (AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, and AWS::IAM::User) remain unchanged. You can enable the recording of these global IAM resources in all Regions where AWS Config was supported before February 2022. These global IAM resources cannot be recorded in Regions supported by AWS Config after February 2022.
(日本語訳)2022年2月以前にオンボードされたグローバルリソースタイプ(AWS::IAM::Group、AWS::IAM::Policy、AWS::IAM::Role、AWS::IAM::User)は変更されません。2022年2月以前にAWS Configがサポートされていたすべてのリージョンで、これらのグローバルIAMリソースの記録を有効化できます。これらのグローバルIAMリソースは、2022年2月以降にAWS Configでサポートされたリージョンでは記録できません。
例外として、2022年2月以降にAWS ConfigがサポートされたGovCloud (US)は、記録されるようです。
Global resource types onboarded to AWS Config after February 2022 will only be recorded in the service's home Region for the commercial partition and AWS GovCloud (US-West) for the GovCloud partition.
(日本語訳)2022年2月以降にAWS Configにオンボードされたグローバルリソースタイプは、商用パーティションではサービスのホームリージョンでのみ記録され、GovCloudパーティションではAWS GovCloud(US-West)でのみ記録されます。
Configで記録できるグローバルリソース
AWS Configで記録できるグローバルリソースは、その特性やサポート時期によって以下の3種類に分類されます。
- IAMリソース(2022年2月以前にサポート)
- ホームリージョンのみ記録可能なリソース(2022年2月以降にサポート)
- 特殊なグローバルリソース
IAMリソース(2022年2月以前にサポート)
以下の4種類のIAMリソースは、2022年2月以前にAWS Configがサポートされたリージョンでのみ記録できます。
- AWS::IAM::User
- AWS::IAM::Group
- AWS::IAM::Role
- AWS::IAM::Policy
これらのリソースはリージョンに紐づかないグローバルリソースです。AWS Configで記録する場合は、重複を避けるため通常1つのリージョンでのみ記録します。
ホームリージョンのみ記録可能なリソース(2022年2月以降にサポート)
以下のグローバルリソースは、2022年2月以降にAWS Configにサポートが追加されました。これらは各サービスのホームリージョンでのみ記録されます。
| サービス | リソースタイプ | ホームリージョン |
|---|---|---|
| Amazon ECR Public | AWS::ECR::PublicRepository | US East (N. Virginia) |
| AWS Global Accelerator | AWS::GlobalAccelerator::Accelerator | US West (Oregon) |
| AWS Global Accelerator | AWS::GlobalAccelerator::Listener | US West (Oregon) |
| AWS Global Accelerator | AWS::GlobalAccelerator::EndpointGroup | US West (Oregon) |
| Amazon Route 53 | AWS::Route53::HostedZone | US East (N. Virginia) |
| Amazon Route 53 | AWS::Route53::HealthCheck | US East (N. Virginia) |
| Amazon CloudFront | AWS::CloudFront::Distribution | US East (N. Virginia) |
| AWS WAF | AWS::WAFv2::WebACL | US East (N. Virginia) |
これらのリソースは、ホームリージョン以外では記録されません。
特殊なグローバルリソース
AWS::RDS::GlobalCluster は特殊なグローバルリソースで、レコーダーを有効化しているすべてのリージョンで記録されます。記録を避けたい場合は、明示的に除外する必要があります。
マネジメントコンソールでの設定
実際にマネジメントコンソールで設定画面を確認してみると、リージョンのサポート時期によって表示される選択肢が異なります。
東京リージョン(2022年2月以前)
2022年2月以前にサポートされたリージョン(東京リージョンなど)では、IAMリソースを記録するかどうかを選択できます。

記録戦略は以下の選択肢があります。
- カスタマイズ可能なオーバーライドのあるすべてのリソースタイプ
- 特定のリソースタイプ

「カスタマイズ可能なオーバーライドのあるすべてのリソースタイプ」を選択した場合、デフォルトでIAMリソースは記録されますが、「オーバーライドするリソースタイプ」で除外することも可能です。
タイリージョン(2022年2月以降)
2022年2月以降にサポートされたリージョン(タイリージョンなど)では、IAMリソースを記録できません。

記録戦略は以下の選択肢があります。
- このリージョンでサポートされる現在および今後のすべてのリソースタイプを記録
- 現在および今後のすべてのリソースタイプを除外で記録する
- 特定のリソースタイプを記録する

「このリージョンでサポートされる現在および今後のすべてのリソースタイプを記録」を設定しても、「記録されたリソースタイプのリストを表示する」にIAMは表示されません。

AWS CLIでの設定例
AWS CLIを使用してレコーダーを設定する場合の例を紹介します。
東京リージョン(グローバルリソースを含める場合)
東京リージョンでグローバルリソースを含めてすべてのリソースタイプを記録する場合は、以下のコマンドを実行します。
ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
IAM_ROLE="arn:aws:iam::$ACCOUNT_ID:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig"
aws configservice put-configuration-recorder \
--region ap-northeast-1 \
--configuration-recorder name=default,roleARN=$IAM_ROLE \
--recording-group allSupported=true,includeGlobalResourceTypes=true
includeGlobalResourceTypes=true を指定することで、IAMリソースも記録対象に含まれます。
タイリージョン(グローバルリソースを除く場合)
タイリージョンではIAMリソースを記録できないため、以下のように設定します。
ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
IAM_ROLE="arn:aws:iam::$ACCOUNT_ID:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig"
aws configservice put-configuration-recorder \
--region ap-southeast-7 \
--configuration-recorder name=default,roleARN=$IAM_ROLE \
--recording-group allSupported=true,includeGlobalResourceTypes=false
includeGlobalResourceTypes=false を指定することで、IAMリソースを除くすべてのリソースタイプが記録されます。
マネジメントコンソール上では、以下が表示されます。
記録戦略
グローバルに記録されたリソースタイプを除き、このリージョンでサポートされる現在および今後のすべてのリソースタイプを記録します。

ただし、タイリージョンで includeGlobalResourceTypes=true を指定した場合、マネジメントコンソール上ではIAMリソースは記録されません(記録するリソースタイプにIAMが存在しない)が、表示される文章は変わります。
記録戦略
グローバルに記録されたリソースタイプを含め、このリージョンでサポートされる現在および今後のすべてのリソースタイプを記録します。

「グローバルに記録されたリソースタイプも記録する」と記載されるようになりますが、記録するリソースタイプにIAMが存在しないため、実際には記録されません。
2022年2月以降にサポートされたリージョンのみを利用する場合の対応
2022年2月以降にAWS Configがサポートされたリージョンのみを利用するAWSアカウントの場合でも、IAMリソースの記録が必要であれば、バージニア北部リージョン(us-east-1)など、2022年2月以前からAWS Configがサポートされているリージョンでレコーダーを有効化し、グローバルリソースを記録する必要があります。
この場合、以下のような構成になります。
- バージニア北部リージョン(us-east-1): IAMリソースを含むすべてのリソースタイプを記録
- タイリージョン(ap-southeast-7)など: IAMリソースを除くすべてのリソースタイプを記録(IAMリソースはそもそも記録不可)
最後に
AWS ConfigでグローバルリソースタイプのIAMリソースを記録できるかどうかは、リージョンがオプトインかどうかではなく、そのリージョンでAWS Configが利用可能になった時期によって決まります。
2022年2月以降にAWS ConfigがサポートされたリージョンではIAMリソースを記録できないため、必要に応じて他のリージョンでレコーダーを有効化してください。
また、2022年2月以降にサポートされたその他のグローバルリソース(CloudFront、WAF、Route 53など)は、各サービスのホームリージョンでのみ記録されることも覚えておきましょう。
新しいリージョンでAWS Configを設定する際は、これらの点にご注意ください。







