AWS WAF v2 の AWS マネージドルールグループ一覧を AWS CLI で出力してみた

AWS WAF のマネージドルールグループはカスタマーが管理するルールグループとは別物です。マネージドルールグループの情報をいくつかの AWS CLI コマンドで確認してみました。

コンバンハ、千葉(幸)です。

AWS WAF v2 で使用できるルールグループには大きく以下の種類があります。

  • カスタマーが作成・管理するルールグループ
  • マネージドルールグループ
    • AWS によるもの(AWS マネージドルールグループ)
    • AWS Marketplace を通じてサブスクライブする 3rd パーティによるもの
  • AWS FirewallManager や ShieldAdvanced など他のサービスにより管理されるルールグループ

今回スコープとするのは太字になっている AWS マネージドルールグループであり、その一覧は以下から確認できます。

このページの内容を確認すれば概ね事足りるのですが、もうちょっとまとまった形で一覧を引っこ抜けないかなと思い AWS CLI でいくつかのコマンドを試してみました。

思ったようにキレイに抜けたわけではないですが、各コマンドの使い心地を記しておきます。

なお、今回使用した AWS CLI のバージョンは 2.4.6 です。AWS CloudShell での試行も問題ないことを確認済みです。

AWS WAF マネージドルールグループの対応リージョンに注意

先に AWS WAF マネージドルールグループの一覧を示したものが以下です。(この表は頑張って手動で作りました。こういう形で一覧で抜けるのが理想でした。)

カテゴリ ルールグループ名 和名 WCU サブスクリプション料金
ベースライン AWSManagedRulesCommonRuleSet コアルールセット 700 なし
ベースライン AWSManagedRulesAdminProtectionRuleSet 管理者保護 100 なし
ベースライン AWSManagedRulesKnownBadInputsRuleSet 既知の不正な入力 200 なし
ユースケース固有 AWSManagedRulesSQLiRuleSet SQLデータベース 200 なし
ユースケース固有 AWSManagedRulesLinuxRuleSet Linux OS 200 なし
ユースケース固有 AWSManagedRulesUnixRuleSet POSIX OS 100 なし
ユースケース固有 AWSManagedRulesWindowsRuleSet Windows OS 200 なし
ユースケース固有 AWSManagedRulesPHPRuleSet PHPアプリケーション 100 なし
ユースケース固有 AWSManagedRulesWordPressRuleSet WordPressアプリケーション 100 なし
IPレピュテーション AWSManagedRulesAmazonIpReputationList Amazon IPレピュテーション 25 なし
IPレピュテーション AWSManagedRulesAnonymousIpList 匿名IPリスト 50 なし
Botコントロール AWSManagedRulesBotControlRuleSet Botコントロール 50 10.00 USD/月
ATP AWSManagedRulesATPRuleSet アカウント乗っ取り防止 50 10.00 USD/月

ここで最下段のAWSManagedRulesATPRuleSetは対応するリージョンが限定されています。東京リージョンや大阪リージョンでは 2022年5月時点で非対応です。対応していないリージョンを指定して AWS CLI コマンドを実行すると結果に現れてきませんのでご注意ください。

今回はすべて明示的にリージョンとしてus-east-1を指定してコマンドを実行します。

「対象のリージョンで対応したもののみ一覧化したい」ということであれば、使用したいリージョンを指定してコマンド実行するのもよいでしょう。

AWS マネージドルールグループ一覧をリストする

まずはじめに試すのは以下コマンドです。

このコマンドでは以下の結果を得られます。

  • ベンダー名
  • マネージドルールグループ名
  • バージョニングがサポートされているか(AWS マネージドルールグループの場合 null)
  • ルールグループの説明

以下のようにオプションを指定して実行してみました。

aws wafv2 list-available-managed-rule-groups \
    --scope REGIONAL \
    --query 'ManagedRuleGroups[?VendorName==`AWS`] | [*].[Name]' \
    --region us-east-1 \
    --output text

AWS Marketplace で3rd パーティのマネージドルールグループをサブスクライブしていない限り結果に現れてくるのは AWS マネージドルールグループのみですが、明示的にVendorNameとしてAWSを指定してフィルタリングしてみました。

実行結果は以下のとおりです。

実行結果

AWSManagedRulesCommonRuleSet
AWSManagedRulesAdminProtectionRuleSet
AWSManagedRulesKnownBadInputsRuleSet
AWSManagedRulesSQLiRuleSet
AWSManagedRulesLinuxRuleSet
AWSManagedRulesUnixRuleSet
AWSManagedRulesWindowsRuleSet
AWSManagedRulesPHPRuleSet
AWSManagedRulesWordPressRuleSet
AWSManagedRulesAmazonIpReputationList
AWSManagedRulesAnonymousIpList
AWSManagedRulesBotControlRuleSet
AWSManagedRulesATPRuleSet

AWS WAF マネージドルールグループの説明もつける

名前だけだと味気ないので、説明も付け合わせてみます。

aws wafv2 list-available-managed-rule-groups \
    --scope REGIONAL \
    --query 'ManagedRuleGroups[?VendorName==`AWS`] | [*].[Name,Description]' \
    --region us-east-1 \
    --output text

実行結果は以下のとおりです。ちょっと説明文が長いですね。

実行結果

AWSManagedRulesCommonRuleSet    Contains rules that are generally applicable to web applications. This provides protection against exploitation of a wide range of vulnerabilities, including those described in OWASP publications.
AWSManagedRulesAdminProtectionRuleSet   Contains rules that allow you to block external access to exposed admin pages. This may be useful if you are running third-party software or would like to reduce the risk of a malicious actor gaining administrative access to your application.
AWSManagedRulesKnownBadInputsRuleSet    Contains rules that allow you to block request patterns that are known to be invalid and are associated with exploitation or discovery of vulnerabilities. This can help reduce the risk of a malicious actor discovering a vulnerable application.
AWSManagedRulesSQLiRuleSet      Contains rules that allow you to block request patterns associated with exploitation of SQL databases, like SQL injection attacks. This can help prevent remote injection of unauthorized queries.
AWSManagedRulesLinuxRuleSet     Contains rules that block request patterns associated with exploitation of vulnerabilities specific to Linux, including LFI attacks. This can help prevent attacks that expose file contents or execute code for which the attacker should not have had access.
AWSManagedRulesUnixRuleSet      Contains rules that block request patterns associated with exploiting vulnerabilities specific to POSIX/POSIX-like OS, including LFI attacks. This can help prevent attacks that expose file contents or execute code for which access should not been allowed.
AWSManagedRulesWindowsRuleSet   Contains rules that block request patterns associated with exploiting vulnerabilities specific to Windows, (e.g., PowerShell commands). This can help prevent exploits that allow attacker to run unauthorized commands or execute malicious code.
AWSManagedRulesPHPRuleSet       Contains rules that block request patterns associated with exploiting vulnerabilities specific to the use of the PHP, including injection of unsafe PHP functions. This can help prevent exploits that allow an attacker to remotely execute code or commands.
AWSManagedRulesWordPressRuleSet The WordPress Applications group contains rules that block request patterns associated with the exploitation of vulnerabilities specific to WordPress sites.
AWSManagedRulesAmazonIpReputationList   This group contains rules that are based on Amazon threat intelligence. This is useful if you would like to block sources associated with bots or other threats.
AWSManagedRulesAnonymousIpList  This group contains rules that allow you to block requests from services that allow obfuscation of viewer identity. This can include request originating from VPN, proxies, Tor nodes, and hosting providers (including AWS). This is useful if you want to filter out viewers that may be trying to hide their identity from your application.
AWSManagedRulesBotControlRuleSet        AWS WAF Bot Control offers you protection against automated bots that can consume excess resources, skew business metrics, cause downtime, or perform malicious activities. Bot Control provides additional visibility through Amazon CloudWatch and generates labels that you can use to control bot traffic to your applications.
AWSManagedRulesATPRuleSet       Account takeover prevention provides protection for your login page against stolen credentials, credential stuffing attacks, brute force login attempts, and other anomalous login activities. With account takeover prevention, you can prevent unauthorized access that may lead to fraudulent activities, or inform legitimate users to take a preventive action.

AWS マネージドルールグループのバージョンの取得

続いて試すのは以下コマンドです。

ここではマネージドルールグループごとに以下の情報を取得できます。

  • バージョン名
  • バージョン更新日時

このコマンドでは対象として単一のマネージドルールグループを指定する必要があります。先ほどルールグループの一覧を取得する術を確認できたため、結果を一つずつ渡してループ処理を行う形式にします。

aws wafv2 list-available-managed-rule-groups \
    --scope REGIONAL \
    --query 'ManagedRuleGroups[?VendorName==`AWS`] | [*].[Name]' \
    --region us-east-1 \
    --output text \
 | while read group; do
   echo "## $group"
   aws wafv2 list-available-managed-rule-group-versions \
    --scope=REGIONAL \
    --vendor-name AWS \
    --name $group \
    --limit 20 \
    --query 'Versions[].[Name,LastUpdateTimestamp]' \
    --region us-east-1 \
    --output table
  done

実行結果は以下のとおりです。

実行結果

## AWSManagedRulesCommonRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_2.0 |  2022-01-10T22:22:15.078000+09:00  |
|  Version_1.2 |  2021-10-27T18:17:25.968000+09:00  |
|  Version_1.1 |  2021-10-25T22:08:53.586000+09:00  |
|  Version_1.0 |  2021-10-05T22:30:24.892000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesAdminProtectionRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_1.1 |  2021-10-25T21:17:54.937000+09:00  |
|  Version_1.0 |  2021-10-05T23:30:18.861000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesKnownBadInputsRuleSet
------------------------------------------------------
|        ListAvailableManagedRuleGroupVersions       |
+---------------+------------------------------------+
|  Version_1.14 |  2022-04-01T02:09:09.501000+09:00  |
|  Version_1.13 |  2022-03-31T21:45:58.085000+09:00  |
|  Version_1.12 |  2022-03-31T10:14:42.020000+09:00  |
|  Version_1.9  |  2022-01-28T16:25:38.837000+09:00  |
|  Version_1.7  |  2021-12-18T09:30:45.673000+09:00  |
|  Version_1.8  |  2021-12-18T08:11:00.272000+09:00  |
|  Version_1.6  |  2021-12-14T15:45:13.297000+09:00  |
|  Version_1.5  |  2021-12-12T02:36:54.585000+09:00  |
|  Version_1.4  |  2021-12-11T17:21:58.277000+09:00  |
|  Version_1.3  |  2021-12-11T00:35:32.614000+09:00  |
|  Version_1.2  |  2021-12-10T16:57:12.988000+09:00  |
|  Version_1.1  |  2021-10-26T00:50:30.815000+09:00  |
|  Version_1.0  |  2021-10-05T22:47:59.041000+09:00  |
+---------------+------------------------------------+
## AWSManagedRulesSQLiRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_2.0 |  2022-01-10T22:46:01.029000+09:00  |
|  Version_1.1 |  2021-10-25T22:26:12.842000+09:00  |
|  Version_1.0 |  2021-10-06T00:04:39.928000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesLinuxRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_2.0 |  2021-11-24T15:33:10.589000+09:00  |
|  Version_1.1 |  2021-10-25T23:24:39.099000+09:00  |
|  Version_1.0 |  2021-10-05T23:07:53.132000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesUnixRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_1.1 |  2021-10-25T22:43:16.107000+09:00  |
|  Version_1.0 |  2021-10-06T00:20:07.983000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesWindowsRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_2.0 |  2021-11-24T15:51:22.911000+09:00  |
|  Version_1.1 |  2021-10-26T01:22:07.345000+09:00  |
|  Version_1.0 |  2021-10-05T22:05:23.764000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesPHPRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_1.1 |  2021-10-25T23:11:10.925000+09:00  |
|  Version_1.0 |  2021-10-05T23:48:17.400000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesWordPressRuleSet
-----------------------------------------------------
|       ListAvailableManagedRuleGroupVersions       |
+--------------+------------------------------------+
|  Version_1.1 |  2021-10-25T22:58:59.639000+09:00  |
|  Version_1.0 |  2021-10-06T01:00:50.655000+09:00  |
+--------------+------------------------------------+
## AWSManagedRulesAmazonIpReputationList
## AWSManagedRulesAnonymousIpList
## AWSManagedRulesBotControlRuleSet
## AWSManagedRulesATPRuleSet

AWSManagedRulesKnownBadInputsRuleSetのバージョンが歯抜けになっています。これはマネジメントコンソールから見ても同じです。バージョンには有効期限切れという考え方があり、歯抜けになっているのは有効期限切れのバージョンです。

また、すべての AWS マネージドルールグループがバージョニングに対応しているわけではないことが分かりました。

AWS マネージドルールグループ内のルールの取得

最後に試すのは以下コマンドです。

このコマンドでは主に以下の情報を取得できます。

  • 新しいバージョン通知用の SNS トピック(バージョニング有効なルールグループのみ)
  • キャパシティ(WCU)
  • ルール一覧
    • ルール名
    • アクション(AWS マネージドルールの場合はすべてBlack
  • 使用可能なラベル

こちらも対象として単一のルールグループの指定が必要なためループ処理を行います。今回はルールグループの WCU とルール一覧を取得するようにしてみました。

aws wafv2 list-available-managed-rule-groups \
    --scope REGIONAL \
    --query 'ManagedRuleGroups[?VendorName==`AWS`] | [*].[Name]' \
    --region us-east-1 \
    --output text \
 | while read group; do
   echo "## $group"
   aws wafv2 describe-managed-rule-group \
    --vendor-name AWS \
    --name $group \
    --scope REGIONAL \
    --query '{Capacity:Capacity,Rules:Rules[*].[Name]}' \
    --region us-east-1 \
    --output table
  done

実行結果は以下のとおりです。

実行結果

## AWSManagedRulesCommonRuleSet
-------------------------------------------
|        DescribeManagedRuleGroup         |
+-------------------------+---------------+
|  Capacity               |  700          |
+-------------------------+---------------+
||                 Rules                 ||
|+---------------------------------------+|
||  NoUserAgent_HEADER                   ||
||  UserAgent_BadBots_HEADER             ||
||  SizeRestrictions_QUERYSTRING         ||
||  SizeRestrictions_Cookie_HEADER       ||
||  SizeRestrictions_BODY                ||
||  SizeRestrictions_URIPATH             ||
||  EC2MetaDataSSRF_BODY                 ||
||  EC2MetaDataSSRF_COOKIE               ||
||  EC2MetaDataSSRF_URIPATH              ||
||  EC2MetaDataSSRF_QUERYARGUMENTS       ||
||  GenericLFI_QUERYARGUMENTS            ||
||  GenericLFI_URIPATH                   ||
||  GenericLFI_BODY                      ||
||  RestrictedExtensions_URIPATH         ||
||  RestrictedExtensions_QUERYARGUMENTS  ||
||  GenericRFI_QUERYARGUMENTS            ||
||  GenericRFI_BODY                      ||
||  GenericRFI_URIPATH                   ||
||  CrossSiteScripting_COOKIE            ||
||  CrossSiteScripting_QUERYARGUMENTS    ||
||  CrossSiteScripting_BODY              ||
||  CrossSiteScripting_URIPATH           ||
|+---------------------------------------+|
## AWSManagedRulesAdminProtectionRuleSet
-------------------------------
|  DescribeManagedRuleGroup   |
+------------------+----------+
|  Capacity        |  100     |
+------------------+----------+
||           Rules           ||
|+---------------------------+|
||  AdminProtection_URIPATH  ||
|+---------------------------+|
## AWSManagedRulesKnownBadInputsRuleSet
------------------------------------------
|        DescribeManagedRuleGroup        |
+-------------------------+--------------+
|  Capacity               |  200         |
+-------------------------+--------------+
||                 Rules                ||
|+--------------------------------------+|
||  JavaDeserializationRCE_BODY         ||
||  JavaDeserializationRCE_URIPATH      ||
||  JavaDeserializationRCE_QUERYSTRING  ||
||  JavaDeserializationRCE_HEADER       ||
||  Log4JRCE                            ||
||  Host_localhost_HEADER               ||
||  PROPFIND_METHOD                     ||
||  ExploitablePaths_URIPATH            ||
|+--------------------------------------+|
## AWSManagedRulesSQLiRuleSet
-------------------------------------------
|        DescribeManagedRuleGroup         |
+-------------------------+---------------+
|  Capacity               |  200          |
+-------------------------+---------------+
||                 Rules                 ||
|+---------------------------------------+|
||  SQLiExtendedPatterns_QUERYARGUMENTS  ||
||  SQLi_QUERYARGUMENTS                  ||
||  SQLi_BODY                            ||
||  SQLi_COOKIE                          ||
||  SQLi_URIPATH                         ||
|+---------------------------------------+|
## AWSManagedRulesLinuxRuleSet
--------------------------
|DescribeManagedRuleGroup|
+--------------+---------+
|  Capacity    |  200    |
+--------------+---------+
||         Rules        ||
|+----------------------+|
||  LFI_URIPATH         ||
||  LFI_QUERYSTRING     ||
||  LFI_COOKIE          ||
|+----------------------+|
## AWSManagedRulesUnixRuleSet
-------------------------------------------------
|           DescribeManagedRuleGroup            |
+-----------------------------+-----------------+
|  Capacity                   |  100            |
+-----------------------------+-----------------+
||                    Rules                    ||
|+---------------------------------------------+|
||  UNIXShellCommandsVariables_QUERYARGUMENTS  ||
||  UNIXShellCommandsVariables_BODY            ||
|+---------------------------------------------+|
## AWSManagedRulesWindowsRuleSet
-------------------------------------------
|        DescribeManagedRuleGroup         |
+-------------------------+---------------+
|  Capacity               |  200          |
+-------------------------+---------------+
||                 Rules                 ||
|+---------------------------------------+|
||  WindowsShellCommands_COOKIE          ||
||  WindowsShellCommands_QUERYARGUMENTS  ||
||  WindowsShellCommands_BODY            ||
||  PowerShellCommands_COOKIE            ||
||  PowerShellCommands_QUERYARGUMENTS    ||
||  PowerShellCommands_BODY              ||
|+---------------------------------------+|
## AWSManagedRulesPHPRuleSet
--------------------------------------------------
|            DescribeManagedRuleGroup            |
+------------------------------+-----------------+
|  Capacity                    |  100            |
+------------------------------+-----------------+
||                     Rules                    ||
|+----------------------------------------------+|
||  PHPHighRiskMethodsVariables_QUERYARGUMENTS  ||
||  PHPHighRiskMethodsVariables_BODY            ||
|+----------------------------------------------+|
## AWSManagedRulesWordPressRuleSet
------------------------------------------------
|           DescribeManagedRuleGroup           |
+----------------------------+-----------------+
|  Capacity                  |  100            |
+----------------------------+-----------------+
||                    Rules                   ||
|+--------------------------------------------+|
||  WordPressExploitableCommands_QUERYSTRING  ||
||  WordPressExploitablePaths_URIPATH         ||
|+--------------------------------------------+|
## AWSManagedRulesAmazonIpReputationList
------------------------------------
|     DescribeManagedRuleGroup     |
+----------------------+-----------+
|  Capacity            |  25       |
+----------------------+-----------+
||              Rules             ||
|+--------------------------------+|
||  AWSManagedIPReputationList    ||
||  AWSManagedReconnaissanceList  ||
|+--------------------------------+|
## AWSManagedRulesAnonymousIpList
-----------------------------
| DescribeManagedRuleGroup  |
+-----------------+---------+
|  Capacity       |  50     |
+-----------------+---------+
||          Rules          ||
|+-------------------------+|
||  AnonymousIPList        ||
||  HostingProviderIPList  ||
|+-------------------------+|
## AWSManagedRulesBotControlRuleSet
---------------------------------
|   DescribeManagedRuleGroup    |
+--------------------+----------+
|  Capacity          |  50      |
+--------------------+----------+
||            Rules            ||
|+-----------------------------+|
||  CategoryAdvertising        ||
||  CategoryArchiver           ||
||  CategoryContentFetcher     ||
||  CategoryEmailClient        ||
||  CategoryHttpLibrary        ||
||  CategoryLinkChecker        ||
||  CategoryMiscellaneous      ||
||  CategoryMonitoring         ||
||  CategoryScrapingFramework  ||
||  CategorySearchEngine       ||
||  CategorySecurity           ||
||  CategorySeo                ||
||  CategorySocialMedia        ||
||  SignalAutomatedBrowser     ||
||  SignalKnownBotDataCenter   ||
||  SignalNonBrowserUserAgent  ||
|+-----------------------------+|
## AWSManagedRulesATPRuleSet
---------------------------------------
|      DescribeManagedRuleGroup       |
+------------------------+------------+
|  Capacity              |  50        |
+------------------------+------------+
||               Rules               ||
|+-----------------------------------+|
||  VolumetricIpHigh                 ||
||  VolumetricSession                ||
||  AttributeCompromisedCredentials  ||
||  AttributeUsernameTraversal       ||
||  AttributePasswordTraversal       ||
||  AttributeLongSession             ||
||  TokenRejected                    ||
||  SignalMissingCredential          ||
|+-----------------------------------+|

AWS マネージドルールグループのバージョン変更通知の SNS トピックを確認する

以下ページにある通り、マネージドルールグループの更新を通知してくれる SNS トピックが存在します。

先ほどのコマンドを一部変更し、ルールグループごとの結果を確認してみます。

aws wafv2 list-available-managed-rule-groups \
    --scope REGIONAL \
    --query 'ManagedRuleGroups[?VendorName==`AWS`] | [*].[Name]' \
    --region us-east-1 \
    --output text \
 | while read group; do
   echo "## $group"
   aws wafv2 describe-managed-rule-group \
    --vendor-name AWS \
    --name $group \
    --scope REGIONAL \
    --query 'SnsTopicArn' \
    --region us-east-1 \
    --output text
  done

実行結果は以下のとおりです。

実行結果

## AWSManagedRulesCommonRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesAdminProtectionRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesKnownBadInputsRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesSQLiRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesLinuxRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesUnixRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesWindowsRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesPHPRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesWordPressRuleSet
arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications
## AWSManagedRulesAmazonIpReputationList
None
## AWSManagedRulesAnonymousIpList
None
## AWSManagedRulesBotControlRuleSet
None
## AWSManagedRulesATPRuleSet
None

以下が読み取れました。

  • バージョニングが有効なルールグループでは共通した SNS トピックが用いられること
  • バージョニングが有効でないルールグループでは該当する SNS トピックが存在しないこと

ちなみにarn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notificationsというのはリージョンごとに用意されているものではないようでした。別のリージョンを指定してコマンドを実行しても、同じ ARN が得られました。

終わりに

AWS WAF の AWS マネージドルールグループの一覧を確認するためにいくつかの AWS CLI コマンドを試してみました。大まかに以下が分かりました。

  • AWSManagedRulesATPRuleSetは対応しているリージョンが限定的である
  • バージョニングが有効なルールグループとそうでないものがある
  • バージョンの変更日時を確認できる
  • WCU やルールの一覧(名称、アクション)が確認できる

何かの機会に思い出していただいて、参考になれば幸いです。

以上、 チバユキ (@batchicchi) がお送りしました。

参考