Amazon Web Services ブログ
AWS Config ベストプラクティス
1.すべてのアカウントとリージョンで AWS Config を有効にします。
これは、 Center for Internet Security (CIS) が推奨する業界のベストプラクティスです。AWS Config を使用すると、AWS リソースの設定を監査し、設定のベストプラクティスに確実に準拠することができます。 AWS CloudFormation StackSets を使用すると、共通の CloudFormation テンプレートを使用して、複数のアカウントとリージョンで AWS Config を有効にできます。
AWS Config をセットアップするときは、AWS Config に記録する必要があるリソースタイプとして [すべてのリソース] を選択します。AWS Config は AWS で 60 を超えるさまざまなリソースタイプをサポートしているため、これにより包括的な設定監査が実施されます。新しいリソースタイプは、この設定を介して自動的に記録されます。 3.1 つのリージョンでのみグローバルリソース (IAM リソースなど) を記録します。
これにより、IAM 設定アイテムの冗長コピーをすべてのリージョンで取得することがなくなります。それは費用の節約にもなります。
4.設定履歴とスナップショットファイルを収集する安全な Amazon S3 バケットがあることを確認してください。
Amazon S3 バケットは、AWS Config が記録するリソースの詳細を含む設定履歴と設定スナップショットファイルを受け取ります。この S3 バケットは、パブリックに読み取りまたは書き込み可能であってはなりません。S3 セキュリティのベストプラクティスに従い、一般公開されているバケットを特定する 2 つの Config ルールをオンにします。
5.履歴ファイルとスナップショットを一元管理するために、別の (中央 IT) アカウントから Amazon S3 バケットを指定します。
これは、中央 IT/InfoSec アカウントが複数のアカウントからデータを収集する必要があるエンタープライズシナリオで特に役立ちます。
6.別の (中央 IT) アカウントから Amazon Simple Notification Service (Amazon SNS) トピックを指定して、設定とコンプライアンス通知を一元管理します。
AWS Config は、すべての設定とコンプライアンスの変更通知を SNS トピックにストリーミングします。中央のトピックを使用して、中央 IT/InfoSec チームで処理する必要がある場合に備えて、企業の複数のアカウントから通知を収集します。
7.Amazon CloudWatch Events を使用して AWS Config 通知をフィルタリングし、アクションを実行します。
AWS Config は、SNS に加えて、すべての設定とコンプライアンスの変更通知を CloudWatch イベントにストリーミングします。つまり、CloudWatch イベントのネイティブフィルタリング機能を使用して AWS Config イベントをフィルタリングできるため、特定のタイプの通知を特定のターゲットにルーティングできます。たとえば、特定のルールまたはリソースタイプのコンプライアンス通知を特定の E メールアドレスに送信したり、設定変更通知を外部の ITSM/CMDB ツールにルーティングしたりできます。
8.AWS Config に割り当てられた IAM ロールに適切なアクセス許可を設定する
AWS Identity and Access Management (IAM) ロールを使用すると、一連のアクセス許可を定義できます。AWS Config は、割り当てられたロールを引き受けて、S3 バケットに書き込み、SNS トピックに公開し、Describe API リクエストまたは List API リクエストで AWS リソースの設定の詳細を取得します。AWS Config コンソールを使用して IAM ロールを作成または更新すると、AWS Config が必要なアクセス許可を自動的にアタッチします。ただし、AWS CLI を使用して AWS Config を設定している場合、または既存の IAM ロールを更新している場合は、ポリシーを手動で更新して、AWS Config が S3 バケットにアクセスし、SNS トピックに公開して、リソースに関する詳細を取得する必要があります。詳細については、「AWS Config に割り当てられた IAM ロールのアクセス許可」を参照してください。
9.AWS Config の IAM ロールを自分で作成する場合は、AWS 管理ポリシー AWSConfigRole を使用して、IAM ロールにアタッチします。
AWS は、AWS Config が AWS リソースタイプのサポートを追加するたびに、この IAM ポリシーを更新します。つまり、AWS Config には、ロールにこの管理ポリシーがアタッチされている限り、設定の詳細を取得するために必要なアクセス許可が付与されます。注意: AWS マネジメントコンソールを使用してロールを作成または更新すると、AWS Config によって AWSConfigRole がアタッチされます。
10.SNS トピックのアクセス許可が、AWS Config によるメッセージの発行のみを許可するように制限されていることを確認してください。
AWS Config には、SNS トピックに通知を送信するためのアクセス許可が必要です。AWS Config コンソールを使用して新しい SNS トピックで配信チャネルを設定するか、アカウントに既に存在する SNS トピックを選択すると、このようなアクセス許可が SNS トピックに自動的に追加されます。ただし、別のアカウントから既存のトピックを指定する場合、または API を使用して配信チャネルをセットアップする場合は、トピックに必ず正しいアクセス許可があるようにしてください。
11.1 日 1 回以上の頻度で定期的なスナップショットをオンにします。
これにより、アカウント内のすべてのリソースの最新の設定状態が毎日バックアップされます。
12.AWS CloudTrail Lookup API アクションを使用して、設定変更が発生した時間枠に発生した API イベントを見つけます。
AWS Config コンソールは、Lookup Events API アクションを使用して、AWS Config に設定の変更が記録された時間枠のあたりで AWS CloudTrail から API イベントを取得します。AWS Config データをプログラムで使用している場合は、この API アクションを使用して、AWS Config で検出された設定の変更を AWS CloudTrail の API イベントに関連付けます。
13.AWS Config でサポートされているリソースタイプの変更トリガーカスタムルールを作成します。
カスタムルールを作成するときは、変更によってトリガーされるルールと定期的なルールを作成して、設定が変更されるたびにリソースのコンプライアンスが評価されるようにします。詳細については、「AWS でサポートされるリソースタイプとリソースの関係」を参照してください。
14.AWS Config でサポートされていないリソースタイプの定期的なルールを作成します。
現在、AWS Config は限られた数のリソースの変更を追跡していますが、カスタムルールを使用して、AWS Config でまだサポートされていないリソースの設定を評価する定期的な AWS Config ルールを作成できます。
15.AWS Config Rule Development Kit (RDK) を使用して、カスタムルールを作成します。
RDK はオーサリングエクスペリエンスを簡素化し、さまざまなリソースタイプのルールを検証します。
16.AWS Config カスタムルールのコミュニティベースのソースである AWS Config ルールリポジトリを使用します。
この新しいリポジトリは、AWS リソースのセキュリティのベストプラクティスに対して評価とコンプライアンスを自動化する合理的な方法を提供します。
17.注釈を使用します。
カスタムルールでは、put-evaluations を送信するときに、「注釈」を使用して、評価がコンプライアンスをどのように決定したかに関する補足情報を追加します。
18.適合パックを使用します。
適合パックを使用して、Config ルールと修正アクションのパックをアカウントにすばやくデプロイします。マスターアカウントから AWS Organizations の組織全体にわたって一元的にパックをデプロイすることもできます。このシナリオでは、パックとその内容は不変です。つまり、メンバーアカウントは適合パックを変更または削除できません。
19.データの集約機能を使用して、リソース設定とコンプライアンスデータを中央アカウントに集約します。
この機能を使用すると、AWS Config ルールのコンプライアンスステータスを複数のアカウントとリージョンから 1 つのアカウントに集約して、組織全体のコンプライアンスのビューを表示できます。また、それらのアカウントとリージョン全体のリソースの現在の設定状態を集約します。個々のサービスの Describe API を呼び出す代わりに、get-aggregate-resource-config API を使用して、単一の API エンドポイントを介してリソースの現在の設定を表示します。
20.組織ベースのアグリゲーターを作成して、組織全体から AWS Config データを集約します。
これにより、セットアップが簡単になり、アカウントが組織に参加または組織から脱退したときにアグリゲーターが自動的に更新されます。
著者について
Sid Gupta は AWS Config のプリンシパルプロダクトマネージャーです。AWS Config は、AWS リソースの設定を評価、監査、評価できるサービスです。Sid はお客様との共同作業を楽しんでおり、お客様がクラウドセキュリティのベストプラクティスを実装するのをサポートしています。余暇には、ハイキング、読書、子供との時間を楽しんでいます。