# AWS - Config Enum

{{#include ../../../../banners/hacktricks-training.md}}

## AWS Config

AWS Config **リソースの変更をキャプチャ**します。したがって、Configによってサポートされているリソースに対する変更はすべて記録され、**何が変更されたかとその他の有用なメタデータが記録され、構成アイテムとして知られるファイルに保持されます**。このサービスは**リージョン固有**です。

構成アイテム、または**CI**として知られるものは、AWS Configの重要なコンポーネントです。これは、**構成情報、関係情報、およびサポートされているリソースの時点スナップショットビューとしてのその他のメタデータを保持するJSONファイル**で構成されています。AWS Configがリソースのために記録できるすべての情報はCI内にキャプチャされます。CIは、サポートされているリソースの構成に変更が加えられるたびに**毎回**作成されます。影響を受けたリソースの詳細を記録するだけでなく、AWS Configは、変更が他のリソースにも影響を与えなかったことを確認するために、直接関連するリソースのCIも記録します。

- **メタデータ**: 構成アイテム自体に関する詳細を含みます。バージョンIDと構成IDがあり、これによりCIを一意に識別します。他の情報には、同じリソースに対して既に記録された他のCIと比較するためのMD5Hashが含まれる場合があります。
- **属性**: 実際のリソースに対する一般的な**属性情報を保持します**。このセクション内には、ユニークなリソースIDとリソースに関連付けられた任意のキー値タグもあります。リソースタイプもリストされています。たとえば、これがEC2インスタンスのCIである場合、リストされるリソースタイプは、そのEC2インスタンスのネットワークインターフェースやエラスティックIPアドレスである可能性があります。
- **関係**: リソースが持つ可能性のある接続された**関係に関する情報を保持します**。したがって、このセクション内では、このリソースが持つ他のリソースとの関係の明確な説明が表示されます。たとえば、CIがEC2インスタンスのものである場合、関係セクションには、EC2インスタンスが存在するサブネットとともにVPCへの接続が表示されるかもしれません。
- **現在の構成:** これは、AWS CLIによって行われたdescribeまたはlist API呼び出しを実行した場合に生成されるのと同じ情報を表示します。AWS Configは、同じ情報を取得するために同じAPI呼び出しを使用します。
- **関連イベント**: これはAWS CloudTrailに関連しています。これは、**このCIの作成を引き起こした変更に関連するAWS CloudTrailイベントIDを表示します**。リソースに対して行われた変更ごとに新しいCIが作成されます。その結果、異なるCloudTrailイベントIDが作成されます。

**構成履歴**: 構成アイテムのおかげで、リソースの構成履歴を取得することが可能です。構成履歴は6時間ごとに配信され、特定のリソースタイプのすべてのCIが含まれます。

**構成ストリーム**: 構成アイテムはSNSトピックに送信され、データの分析を可能にします。

**構成スナップショット**: 構成アイテムは、すべてのサポートされているリソースの時点スナップショットを作成するために使用されます。

**S3は**構成履歴ファイルとデータの構成スナップショットを単一のバケット内に保存するために使用され、これは構成レコーダー内で定義されます。複数のAWSアカウントがある場合、主要アカウントの同じS3バケットに構成履歴ファイルを集約したい場合があります。ただし、このサービスプリンシパルconfig.amazonaws.comと、主要アカウントのS3バケットへの書き込みアクセスを持つ二次アカウントに書き込みアクセスを付与する必要があります。

### 機能

- 変更を加えると、たとえばセキュリティグループやバケットアクセス制御リストに対して —> AWS Configによって取得されるイベントとして発火します
- すべてをS3バケットに保存します
- 設定によっては、何かが変更されると、それがラムダ関数をトリガーするか、ラムダ関数をスケジュールしてAWS Config設定を定期的に確認することができます
- ラムダはConfigにフィードバックします
- ルールが破られた場合、ConfigはSNSを発火させます

![](<../../../../images/image (126).png>)

### Configルール

Configルールは、**リソース全体で特定のコンプライアンスチェック** **およびコントロールを強制するのに役立つ素晴らしい方法であり、各リソースタイプに対して理想的なデプロイメント仕様を採用することを可能にします**。各ルールは、**本質的にラムダ関数であり**、呼び出されるとリソースを評価し、ルールに対するコンプライアンス結果を決定するための簡単なロジックを実行します。**サポートされているリソースのいずれかに変更が加えられるたびに、AWS Configは、設定されたConfigルールに対するコンプライアンスをチェックします**。\
AWSには、使用する準備が整ったセキュリティの傘下にある**事前定義されたルール**がいくつかあります。たとえば、Rds-storage-encrypted。これは、RDSデータベースインスタンスによってストレージ暗号化が有効になっているかどうかを確認します。Encrypted-volumes。これは、接続状態のEBSボリュームが暗号化されているかどうかを確認します。

- **AWS管理ルール**: 多くのベストプラクティスをカバーする事前定義されたルールのセットであり、独自のルールを設定する前にこれらのルールを確認する価値があります。ルールがすでに存在する可能性があります。
- **カスタムルール**: 特定のカスタム構成をチェックするために独自のルールを作成できます。

リージョンごとに50のConfigルールの制限があり、増加が必要な場合はAWSに連絡する必要があります。\
非準拠の結果は削除されません。

{{#include ../../../../banners/hacktricks-training.md}}
