AWS Configについてご紹介!

AWS Config とは?

AWS Config は、AWS アカウントにある AWS リソースの設定詳細ビューを提供します。これには、リソース間の関係と設定の履歴が含まれるため、時間の経過と共に設定と関係がどのように変わるかを確認できます。
AWS リソースとは、AWS で使用できるエンティティであり、Amazon Elastic Compute Cloud (EC2) インスタンス、Amazon Elastic Block Store (EBS) ボリューム、セキュリティグループ、Amazon Virtual Private Cloud (VPC) などを指します。

AWS Config では、以下のことができます。

・AWS リソースの設定が最適な設定であるかどうかを評価する。
・AWS アカウントに関連付けられているサポート対象リソースの現在の設定のスナップショットを取得する。
・アカウント内にある 1 つ以上のリソースの設定を取得する。
・1 つ以上のリソースの設定履歴を取得する。
・リソースが作成、変更、または削除されるたびに通知を受け取る。
・リソース間の関係を表示する(特定のセキュリティグループを使用するすべてのリソースを確認する場合など)。

AWS Config を使用する方法

通常、AWS でアプリケーションの実行時に使用する AWS リソースは一括して作成し管理する必要があります。アプリケーションの需要が増えるに従って、AWS リソースを追跡する作業も増大します。AWS Config は、以下の目的でアプリケーションのリソースを監視します。

リソースの管理

リソースの設定に対するガバナンスを強化し、リソースの誤設定を検出するには、どのようなリソースがあり、どのように設定されているかを常に正確に把握しておく必要があります。AWS Config では、各リソースに対する呼び出しをポーリングして、リソースが作成、変更、削除されるたびに通知が送信されるため、これらの変更をモニタリングする必要がありません。

AWS Config のルールを使用して、AWS リソースの設定を評価できます。AWS Config でルールの条件に違反しているリソースが検出されると、AWS Config によってそのリソースに非準拠のフラグが付けられ、通知が送信されます。また、AWS Config はリソースの作成、変更、または削除を継続的に評価します。

監査とコンプライアンス

使用しているデータが自社のポリシーやベストプラクティスに準拠していることを確認するために頻繁な監査を必要とする場合があります。コンプライアンスを確認するには、リソースの設定履歴にアクセスする必要があります。この情報は AWS Config から提供されます。

設定変更の管理とトラブルシューティング

複数の相互に依存する AWS リソースを使用している場合、1 つのリソースの設定変更が他の関連リソースに予期しない影響を及ぼすことがあります。AWS Config では、リソースを変更する前に他のリソースとの関連性を確認し、変更の影響を判断できます。
また、AWS Config が提供するリソースの設定履歴を使用して、問題のトラブルシューティングを行ない、問題が発生したリソースの最後の正常であると判明している設定にアクセスできます。

セキュリティ分析

セキュリティの潜在的な脆弱性を分析するには、ユーザーに付与されている AWS Identity and Access Management (IAM) アクセス許可や、リソースへのアクセスを制御する Amazon EC2 セキュリティグループのルールなど、AWS リソースの設定に関する詳細な履歴情報が必要です。

AWS Config で記録していた期間内であれば、AWS Config を使用して、IAM のユーザー、グループ、またはロールに割り当てられた IAM ポリシーを確認できます。この情報に基づいて、特定の時間にユーザーに属していたアクセス許可を確認できます。たとえば、ユーザー John Doe が 2015 年 1 月 1 日に Amazon VPC 設定を変更するアクセス許可を持っていたかどうかを確認できます。
AWS Config では、特定の時間に開いていたポートのルールなど、EC2 セキュリティグループの設定を確認することもできます。この情報により、特定のポートに着信する TCP トラフィックをセキュリティグループがブロックしていたかどうかを判断できます。

AWS Config の仕組み

AWS Config を有効にすると、最初にアカウント内に存在するサポートされている AWS リソースを検出し、リソースごとに設定項目を生成します。
AWS Config は、リソースの設定が変更されたときにも設定項目を生成し、設定レコーダーの起動時点からリソースの設定項目の記録を履歴として保持します。デフォルトでは、AWS Config はリージョンでサポートされているリソースごとの設定項目を作成します。すべてのサポートされているリソースの設定項目を AWS Config で作成しない場合は、追跡するリソースタイプを指定できます。

AWS Config は、アカウントのリソースごとに Describe または List の API コールを呼び出して、リソースへのすべての変更を追跡します。このサービスでは、その同じ API コールを使用して、すべての関連リソースの設定詳細をキャプチャします。たとえば、VPC セキュリティグループから egress ルールを削除すると、AWS Config はセキュリティグループで Describe API コールを呼び出します。次に、AWS Config はセキュリティグループに関連付けられているすべてのインスタンスで Describe API コールを呼び出します。セキュリティグループ (リソース) と各インスタンス (関連リソース) の更新された設定が設定項目として記録され、設定ストリームで Amazon Simple Storage Service (Amazon S3) バケットに配信されます。

AWS Config は API で開始されていない設定変更も追跡します。AWS Config はリソースの設定を定期的に調べ、変更があった設定の設定項目を生成します。

AWS Config ルールを使用している場合、AWS Config は、ルールの最適な設定に照らして AWS リソースの設定を継続的に評価します。ルールに従って、AWS Config は設定変更に応じてリソースを評価するか、定期的な間隔でリソースを評価します。各ルールは、ルールの評価ロジックが含まれている AWS Lambda 関数に関連付けられます。AWS Config は、リソースを評価すると、ルールの AWS Lambda 関数を呼び出します。この関数は、評価されたリソースのコンプライアンスステータスを返します。リソースがルールの条件に違反していると、AWS Config はリソースとルールに非準拠のフラグを付けます。リソースのコンプライアンスステータスが変わると、AWS Config は Amazon SNS トピックに通知を送信します。

設定項目の配信

AWS Config は、次のいずれかの配信チャネルを通じて設定項目を配信できます。

Amazon S3 バケット
AWS Config は、AWS リソースの設定変更を追跡し、更新された設定詳細を、指定された Amazon S3 バケットに定期的に送信します。AWS Config は、記録するリソースタイプごとに、設定履歴ファイルを 6 時間ごとに送信します。各設定履歴ファイルには、その 6 時間の間に変更があったリソースの詳細が含まれています。各ファイルに含まれるリソースタイプは 1 つです (Amazon EC2 インスタンスや Amazon EBS ボリュームなど)。設定変更が発生しなかった場合、AWS Config はファイルを送信しません。

AWS CLI で deliver-config-snapshot コマンドを使用するか、AWS Config API で DeliverConfigSnapshot アクションを使用すると、AWS Config は設定スナップショットを Amazon S3 バケットに送信します。設定スナップショットには、AWS アカウントで AWS Config が記録したすべてのリソースの設定詳細が含まれています。設定履歴ファイルと設定スナップショットは JSON 形式です。

Amazon SNS トピック
Amazon Simple Notification Service (Amazon SNS) トピックは、E メールアドレスやクライアントなどのサブスクライブしているエンドポイントにメッセージ (または通知) を配信するために Amazon SNS で使用する通信チャネルです。その他の種類の Amazon SNS 通知としては、携帯電話のアプリへのプッシュ通知メッセージ、SMS 対応の携帯電話やスマートフォンへのショートメッセージサービス (SMS) 通知、HTTP POST リクエストなどがあります。最良の結果を得るには、SNS トピックの通知エンドポイントとして Amazon SQS を使用し、通知内の情報をプログラムで処理します。

AWS Config は、指定された Amazon SNS トピックを使用して通知を送信します。受信する通知の種類は、次の例に示すように、メッセージ本文の messageType キーの値で示されます。

"messageType":"ConfigurationHistoryDeliveryCompleted"

通知のメッセージタイプは、以下のいずれかです。

ComplianceChangeNotification
AWS Config で評価するリソースのコンプライアンスタイプが変更されました。コンプライアンスタイプは、リソースが特定の AWS Config ルールに準拠しているかどうかを示し、メッセージの ComplianceType キーで示されます。メッセージには、比較のために newEvaluationResult オブジェクトと oldEvaluationResult オブジェクトが含まれます。

ConfigRulesEvaluationStarted
AWS Config は、ルールを適用して指定されたリソースの評価を開始しました。

ConfigurationSnapshotDeliveryStarted
AWS Config は、Amazon S3 バケットへの設定スナップショットの配信を開始しました。Amazon S3 バケットの名前は、メッセージの s3Bucket キーで示されます。

ConfigurationSnapshotDeliveryCompleted
AWS Config は、Amazon S3 バケットへの設定スナップショットの配信を正常に完了しました。

ConfigurationSnapshotDeliveryFailed
AWS Config は、Amazon S3 バケットに設定スナップショットを配信できませんでした。

ConfigurationHistoryDeliveryCompleted
AWS Config は、Amazon S3 バケットに設定履歴を正常に配信しました。

ConfigurationItemChangeNotification
リソースが作成または削除されるか、設定が変更されました。このメッセージには、この変更に伴って AWS Config で作成される設定項目の詳細と、変更の種類が含まれます。これらの通知は、変更後数分以内に配信され、まとめて設定ストリームと呼ばれます。

OversizedConfigurationItemChangeNotification
このメッセージタイプは、設定項目の変更通知が Amazon SNS の最大許容サイズを超えたときに配信されます。メッセージには設定項目の概要が含まれます。完全な通知の参照先は、指定した Amazon S3 バケット内にあります。

OversizedConfigurationItemChangeDeliveryFailed
AWS Config は、サイズが大きすぎる設定項目の変更通知を Amazon S3 バケットに配信できませんでした。

まとめ

いかがだったでしょうか。継続的モニタリングや運営上のトラブルシューティングも利点に挙げられます。是非検討してみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です