CIS AWS Foundations Benchmark v4.0.0 の変更点

## はじめに
2024/9/26 にリリースされた CIS AWS Foundations Benchmark が v4.0.0 について、v3.0.0 からの変更内容をまとめました。

:::note info
解説部分の記載は私見や所感などを含みますのでご注意ください。また CIS Controls や MITRE ATT&CK に対するマッピングの変更は割愛しています。完全な変更内容はオリジナルの PDF をご参照ください。
:::

:::note warn
v4.0.1 が 2024/12/11 にリリースされています。軽微な修正と思われるため、本記事では扱いません。
:::

v3.0.0 以前の変更点を確認されたい方は [**過去記事**](https://qiita.com/hayao_k/items/f1c518da2ce8490447b1#過去記事) も参照いただければと思います。

### CIS Benchmark とは
米国の非営利団体である CIS (Center for Internet Secuirty) が公開している AWS アカウントの基本的なセキュリティを実装するための技術的なベストプラクティスです。

CIS は 各種 OS、サーバー、クラウド環境などを強化するためのガイドラインとして多数の CIS Benchmark を発行しており、PCI DSS などのコンプライアンス要件で業界標準のベストプラクティスとの記載があった場合などに参照されます。

CIS AWS Foundations Benchmark は CIS のサイトから PDF 形式でダウンロードできます。ライセンスは CC BY-NC-SA (Creative Commons Attribution-NonCommercial-ShareAlike) です。

https://www.cisecurity.org/benchmark/amazon_web_services


## 1 Identity and Access Management
### 変更があった項目
### 1.4 Ensure no 'root' user account access key exists (Automated)
参考訳: ルートユーザーアカウントのアクセスキーが存在しないことを確認する

修復手順に記載の表現が見直されています。手順自体には変更ありません。またルートユーザーのアクセスキーの新規作成に関する定期的なチェックとアラートを実装すべきという追加情報が新たに記載されています。

## 2 Storage
### 新たに追加された項目
#### 2.2.4 Ensure Multi-AZ deployments are used for enhanced availability in Amazon RDS (Manual)
参考訳: Amazon RDS の可用性を高めるためにマルチ AZ デプロイメントが使用されていることを確認する

データベースの可用性は、特にビジネスにとって重要なアプリケーションのサービス稼働時間を維持するために重要です。Amazon RDS のマルチ AZ デプロイメントはデータベースの可用性と耐久性を向上させ、予期せぬ停止から保護することができます。

### 変更があった項目
#### 2.1.1 Ensure S3 Bucket Policy is set to deny HTTP requests (Automated)
参考訳: S3 バケットポリシーが HTTP リクエストを拒否していることを確認する

従来の aws:SecureTransport 条件キーを設定して HTTP リクエストを拒否する方法に加え、以下の様に s3:TlsVersion 条件キーでも HTTP リクエストを拒否できるため、監査および修復手順に追記されました。

```json
{
    "Sid": "<optional>",
    "Effect": "Deny",
    "Principal": "*",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::<bucket_name>",
        "arn:aws:s3:::<bucket_name>/*"
    ],
    "Condition": {
        "NumericLessThan": {
            "s3:TlsVersion": "1.2"
        }
    }
}
```


#### 2.1.4 Ensure that S3 is configured with 'Block Public Access' enabled (Automated)
参考訳: S3 にパブリックアクセスブロックが設定されていることを確認する

タイトルが変更されました。項目としては当初よりアカウントレベルのブロック設定も併記されていましたが、タイトルがバケット設定になっていたため、このミスマッチが修正されています。

変更前: Ensure that S3 Buckets are configured with 'Block public access (bucket settings)
変更後: Ensure that S3 is configured with 'Block Public Access' enabled (Automated)

アカウントレベルで設定をおこなうか、一部のバケットのアクセスをブロックするかは、データの機密性、最小権限、ユースケースに基づいて組織的に決定されるべきものです。

## 3 Logging
### 変更があった項目
####  3.1 Ensure CloudTrail is enabled in all regions (Automated)
参考訳: すべてのリージョンで CloudTrail が有効化されていることを確認する

理由および監査手順、修復手順に記載の表現が部分的に見直されています。

## 5 Networking
### 新たに追加された項目
#### 5.1.2 Ensure CIFS access is restricted to trusted networks to prevent unauthorized access (Manual) 
参考訳: 不正アクセスを防止するため、CIFS アクセスが信頼できるネットワークに限定されていることを確認する

無制限の CIFS アクセスを許可すると、不正なユーザーが機密ファイルやデータにアクセスすることを許してしまうかもしれません。アクセスを既知の信頼できるネットワークに制限することで、不正アクセスのリスクを最小限に抑え、機密データが潜在的な攻撃者にさらされるのを防ぐことができます。

セキュリティグループのリストから、CIFS を使用しているインスタンスやリソースに関連するものを見つけ、Port 445 への無制限アクセスを許可するルールがないか確認します。

### 変更があった項目
#### 5.1.1 Ensure EBS volume encryption is enabled in all regions (Automated) 
参考訳: EBS ボリュームの暗号化が有効になっていることを確認する

項番が Storage 2.2.1 → Networking 5.1.1 へ変更になりました。

#### 5.2 Ensure no Network ACLs allow ingress from 0.0.0.0/0 to remote server administration ports (Automated)
参考訳: 参考訳: ネットワーク ACL が 0.0.0.0/0 からリモートサーバー管理ポートへの侵入を許可しないようにする

コンソールの監査手順の記載ミスが修正されたほか、「Port 22 を SFTP ではなく SSH で使用している場合」などの補足追記、その他説明等で軽微な表現の修正がされています。

## 過去記事
https://qiita.com/hayao_k/items/fed7c07c9f05c445ce1f

https://qiita.com/hayao_k/items/cd8a0589782b981cc442

https://qiita.com/hayao_k/items/81bd073c53b916993177

https://qiita.com/hayao_k/items/e41a016942e32f9aa8a9

https://qiita.com/hayao_k/items/8272f4a8be785cc2a98a