[アップデート]Amazon GuardDutyの利用料金を確認するGetUsageStatistics APIにRDSの使用率が追加されました

Amazon GuardDutyの利用料金を確認するGetUsageStatistics APIでRDSのプロビジョンドとサーバレスの利用料金を取得することができるようになりました。
2024.03.12

こんにちは、臼田です。

みなさん、GuardDutyでAWSのセキュリティ対策してますか?(挨拶

今回はちょっとしたアップデートの紹介です。

AWS API Changes - Amazon GuardDuty

概要

Amazon GuardDutyでは利用料金を確認するGetUsageStatistics APIがあります。

AWSアカウント単位の利用料のほか、各機能毎の利用料なども確認することができます。

今回は、以前対応したRDSの料金を、プロビジョンドとサーバレスそれぞれで確認することができるようになりました。

やってみた

結構このAPIを実行するのにコツが必要だったので、やったことも含めて書いていきます。

今回はAWS CLIで実行していきます。リファレンスはこちら

実行するとこうなります。

[cloudshell-user@ip-10-134-5-204 ~]$ aws guardduty get-usage-statistics --detector-id $(aws guardduty list-detectors --query "DetectorIds[0]" --output text) --usage-statistic-type "SUM_BY_FEATURES" --usage-criteria "Features=FLOW_LOGS,CLOUD_TRAIL,DNS_LOGS,S3_DATA_EVENTS,EKS_AUDIT_LOGS,EBS_MALWARE_PROTECTION,RDS_LOGIN_EVENTS,LAMBDA_NETWORK_LOGS,EKS_RUNTIME_MONITORING,FARGATE_RUNTIME_MONITORING,EC2_RUNTIME_MONITORING,RDS_DBI_PROTECTION_PROVISIONED,RDS_DBI_PROTECTION_SERVERLESS" --no-paginate
{
    "UsageStatistics": {
        "SumByFeature": [
            {
                "Feature": "FLOW_LOGS",
                "Total": {
                    "Amount": "1.1952593922615051E-4",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "S3_DATA_EVENTS",
                "Total": {
                    "Amount": "0.13178654999999997",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "RDS_DBI_PROTECTION_SERVERLESS",
                "Total": {
                    "Amount": "0.0",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "DNS_LOGS",
                "Total": {
                    "Amount": "3.8580223917961125E-5",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "LAMBDA_NETWORK_LOGS",
                "Total": {
                    "Amount": "2.956204116344452E-5",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "CLOUD_TRAIL",
                "Total": {
                    "Amount": "0.5931812799999999",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "RDS_LOGIN_EVENTS",
                "Total": {
                    "Amount": "0.0",
                    "Unit": "USD"
                }
            },
            {
                "Feature": "RDS_DBI_PROTECTION_PROVISIONED",
                "Total": {
                    "Amount": "0.0",
                    "Unit": "USD"
                }
            }
        ]
    },
    "NextToken": "hogefuga"
}

注意点としては、機能毎の集計結果でRDS_DBI_PROTECTION_PROVISIONEDRDS_DBI_PROTECTION_SERVERLESSが出力されるため、これを確認するには--usage-statistic-type"SUM_BY_FEATURES"にする必要があります。

また、Featureを列挙する必要があるので、コマンドを生成するときは気をつける必要があります。省略はできません。

まとめ

GuardDutyのGetUsageStatistics APIでRDSのプロビジョンドとサーバレスそれぞれの利用料金を確認することができるようになりましたのでやってみました。

GetUsageStatistics APIを使うのがけっこう大変なので、備忘録として残しました。