

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 監査証跡
<a name="audit-trails"></a>

監査証跡 (監査ログ) は、AWS アカウント で発生したイベントについて、セキュリティ関連の時系列レコードを得られます。Amazon RDS のイベントも対象になるため、データベースまたはクラウド環境に影響を与えた一連のアクティビティについて、ドキュメント化された証拠を収集できます。Amazon RDS for MySQL または MariaDB では、監査証跡を使用して次のオペレーションを行います。
+ DB インスタンスの監査ログをモニタリングする
+ AWS CloudTrail で Amazon RDS API コールをモニタリングする

Amazon RDS DB インスタンスが対象の場合、一般的に、次のような監査目的があります。
+ 以下について説明責任を果たすこと。
  + パラメータまたはセキュリティ設定で行われた変更
  + データベーススキーマ、テーブル、行で実行されたアクション、あるいは、特定の内容に影響が及ぶアクション
+ 侵入の検出および調査
+ 疑わしいアクティビティの検出および調査
+ 認可上の問題の検出。例: 正規ユーザーまたは特権ユーザーによるアクセス権の悪用を特定する

データベースの監査証跡は、次のようなよくある疑問の解消に有用です: *どのユーザーがデータベース内の機密データを表示または変更したか? この事象はいつ発生したか? この特定のユーザーはどこからデータにアクセスしたか? この特権ユーザーは無制限のアクセス権を悪用したか?*

MySQL と MariaDB ではともに、MariaDB 監査プラグインを使用して DB インスタンスの監査証跡機能を実装します。このプラグインにより、データベースへのユーザーログインや、データベースへのクエリ実行といった、データベースのアクティビティを記録します。データベースのアクティビティのレコードはログファイルに保存されます。監査ログにアクセスするには、DB インスタンスは `MARIADB_AUDIT_PLUGIN` オプションを指定してカスタムオプショングループを使用する必要があります。詳細については、Amazon RDS ドキュメントの「[MySQL に対する MariaDB 監査プラグインのサポート](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html)」を参照してください。監査ログのレコードは、プラグインで定義されている特定の形式で保存されます。監査ログ形式の詳細については、[MariaDB Server のドキュメント](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/)を参照してください。

AWS アカウントで AWS クラウド の監査証跡を得るには、[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) サービスを利用します。CloudTrail は、Amazon RDS の API コールをイベントとしてキャプチャします。Amazon RDS でのアクションは、すべてログに記録されます。CloudTrail では、ユーザー、ロール、その他の AWS サービスによって Amazon RDS で実行されたアクションを記録します。例えば、AWS マネジメントコンソール、AWS CLI、AWS SDK および API で実行されたアクションなどのイベントが記録対象となります。

## 例
<a name="example"></a>

一般的な監査シナリオでは、AWS CloudTrail の証跡、データベース監査ログ、Amazon RDS イベントモニタリングの結果を総合的に確認する必要があるでしょう。例えば、Amazon RDS DB インスタンス (`database-1` など) のデータベースパラメータが変更され、その変更者、変更された対象、変更されたタイミングを特定するタスクを任されるといったシナリオが考えられます。

そのタスクを実行するには、次のステップに従います。

1. データベースインスタンス `database-1` で発生した Amazon RDS イベントを一覧表示して、`configuration change` カテゴリに属する​​イベントのうち、`Finished updating DB parameter group` というメッセージを持つイベントがあるかどうかを確認します。

   ```
   $ aws rds describe-events --source-identifier database-1 --source-type db-instance
   {
       "Events": [
           {
               "SourceIdentifier": "database-1",
               "SourceType": "db-instance",
               "Message": "Finished updating DB parameter group",
               "EventCategories": [
                   "configuration change"
               ],
               "Date": "2022-12-01T09:22:40.413000+00:00",
               "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1"
           }
       ]
   }
   ```

1. DB インスタンスで使用されている DB パラメータグループを特定します。

   ```
   $ aws rds describe-db-instances --db-instance-identifier database-1 --query 'DBInstances[*].[DBInstanceIdentifier,Engine,DBParameterGroups]'
   [
       [
           "database-1",
           "mariadb",
           [
               {
                   "DBParameterGroupName": "mariadb10-6-test",
                   "ParameterApplyStatus": "pending-reboot"
               }
           ]
       ]
   ]
   ```

1. [AWS CLI を使用して、CloudTrail イベントを検索します](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html)。具体的には、`database-1` がデプロイされているリージョンで、ステップ 1 で検出した Amazon RDS イベントの発生時刻前後の期間を対象に `EventName=ModifyDBParameterGroup` のイベントを特定します。

   ```
   $ aws cloudtrail --region eu-west-3 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ModifyDBParameterGroup --start-time "2022-12-01, 09:00 AM" --end-time "2022-12-01, 09:30 AM"    
   
   {
       "eventVersion": "1.08",
       "userIdentity": {
           "accountId": "111122223333",
           "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
           "sessionContext": {
               "sessionIssuer": {
                   "type": "Role",
                   "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                   "arn": "arn:aws:iam::111122223333:role/Role1",
                   "accountId": "111122223333",
                   "userName": "User1"
               }
           }
       },
       "eventTime": "2022-12-01T09:18:19Z",
       "eventSource": "rds.amazonaws.com",
       "eventName": "ModifyDBParameterGroup",
       "awsRegion": "eu-west-3",
       "sourceIPAddress": "AWS Internal",
       "userAgent": "AWS Internal",
       "requestParameters": {
           "parameters": [
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_log_buffer_size",
                   "parameterValue": "8388612"
               },
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_write_io_threads",
                   "parameterValue": "8"
               }
           ],
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "responseElements": {
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "requestID": "fdf19353-de72-4d3d-bf29-751f375b6378",
       "eventID": "0bba7484-0e46-4e71-93a8-bd01ca8386fe",
       "eventType": "AwsApiCall",
       "managementEvent": true,
       "recipientAccountId": "111122223333",
       "eventCategory": "Management",
       "sessionCredentialFromConsole": "true"
   }
   ```

この CloudTrail イベントによると、AWS アカウントが 111122223333 で、ロール `Role1` を持つ `User1` が、`2022-12-01 at 09:18:19 h` に DB インスタンス `database-1` で使用されていた DB パラメータグループ `mariadb10-6-test` を変更していました。2 つのパラメータが変更され、値が以下に設定されています。
+ `innodb_log_buffer_size = 8388612`
+ `innodb_write_io_threads = 8`

## CloudTrail と CloudWatch Logs が備えるその他の機能
<a name="additional-features"></a>

過去 90 日間に発生した運用上およびセキュリティ上のインシデントにトラブルシューティングを行うには、CloudTrail コンソールで **[イベント履歴]** を表示します。その保持期間を延長して、追加のクエリ機能を利用する場合は、[AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) を使用できます。AWS CloudTrail Lake では、イベントデータを、最大 7 年間、イベントデータストアに保存できます。さらに、このサービスは、複雑な SQL クエリに対応しています。カスタマイズ可能で詳細なイベントビューを得られるという点で、**[イベント履歴]** での単純なキーと値のルックアップよりも優れています。

監査証跡をモニタリングして、アラームを設定し、特定のアクティビティが発生したときに通知を受け取るには、[CloudTrail を設定して、その証跡レコードが CloudWatch Logs に送信されるようにする](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html)必要があります。証跡レコードが CloudWatch Logs として保存されたら、メトリクスフィルターを定義して、用語、フレーズ、または値に一致するログイベントを評価し、メトリクスフィルターにメトリクスを割り当てることができます。さらに、指定したしきい値と期間に基づいてアラームを生成する CloudWatch アラームを作成することも可能です。例えば、担当チームに通知を送信するアラームを設定すると、チームでは適切なアクションを実行できます。アラームへの対応アクションが自動的に実行されるように CloudWatch を設定することもできます。