AWS Config Serviceの有効化手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、「[Config.1] AWS Config を有効にし、リソースの記録にサービスにリンクされたロールを使用する必要があります」について解説します。

ポリシーの説明

Security Hub コントロール AWS Config – AWS Security Hub

このコントロール AWS Config は、現在の のアカウントで が有効になっているかどうかをチェックし AWS リージョン、現在のリージョンで有効になっているコントロールに対応するすべてのリソースを記録し、サービスにリンクされた AWS Config ロールを使用します。サービスにリンクされたロールの名前は、AWSServiceRoleForConfig です。サービスにリンクされたロールを使用せず、 includeConfigServiceLinkedRoleCheckパラメータを に設定しない場合false、他のロールには AWS Config がリソースを正確に記録するために必要なアクセス許可がないため、コントロールは失敗します。

リスク: AWS Config Serviceが有効化されていない場合、またはアカウント内の全てのリソースタイプを記録するように設定されていない場合、以下のようなリスクが発生します。

  • 構成変更の追跡不能: リソースの作成、変更、削除といった構成変更の履歴を把握することができず、セキュリティインシデント発生時の原因究明や影響範囲の特定が困難になります。
  • 設定ドリフトの検知不能: 意図しない設定変更やセキュリティポリシーからの逸脱を早期に検知することができず、セキュリティリスクの増大やコンプライアンス違反につながる可能性があります。
  • 復旧作業の困難化: 構成ミスやセキュリティ侵害が発生した場合に、過去の正常な状態に迅速に復旧することが難しくなり、サービス停止時間の長期化やデータ損失のリスクが高まります。
  • コンプライアンス要件への非準拠: 多くのコンプライアンスフレームワークでは、リソース構成の変更履歴の保持が求められており、Configの未有効化または不適切な設定はコンプライアンス違反となる可能性があります。
  • インフラストラクチャの可視性低下: 全てのリソースの構成と変更履歴が一元的に把握できないため、インフラストラクチャ全体の可視性が低下し、管理や運用が非効率になる可能性があります。

対策: AWS環境のセキュリティと運用効率を高めるために、AWS Config Serviceを有効化し、全てのリソースタイプを記録するように設定することが重要です。グローバルリソースタイプについても、少なくとも1つのリージョンで記録を有効にする必要があります。

  • AWS Config Serviceの有効化: AWSコンソールまたはAWS CLI/SDKを使用して、全て relevant なAWSリージョンでAWS Config Serviceを有効化します。
  • 全てのリソースタイプの記録設定: Configの設定時に、「Record all current and future resource types supported in this region」を選択し、リージョン内でサポートされる全てのリソースタイプの変更を記録するように設定します。
  • グローバルリソースタイプの記録: IAM、CloudFrontディストリビューション、Route 53ホストゾーンなどのグローバルリソースタイプについては、少なくとも1つのリージョンで「Include globally recorded resource types」を有効にします。
  • Configルールの導入: AWS Config Rulesを導入し、定義した構成ポリシーからの逸脱を自動的に検出し、必要に応じて修復アクションを実行するように設定します。
  • Configデータの保存と分析: 記録されたConfigデータはS3バケットに保存され、AWS AthenaやAmazon QuickSightなどのサービスと連携して分析することができます。

修復方法

AWSコンソールでの修復手順

AWSコンソールを用いて、AWS Config Serviceを有効化し、全てのリソースタイプを記録するように設定します。

  1. AWSコンソールにログインします。
  2. ナビゲーションペインから AWS Config を選択します。
  3. Configがまだ有効化されていない場合は、「AWS Configを設定」ボタンをクリックします。有効化済みの場合は、左側のメニューから 設定 を選択します。
  4. 記録戦略 セクションで、「カスタマイズ可能なオーバーライドのあるすべてのリソースタイプ」を選択します。
  5. デフォルト設定はお好みですが、コストを抑えるのであれば日次記録で設定しておきます。
  6. Configデータを保存するS3バケットを選択または作成します。
  7. ConfigサービスにIAMロールを付与します。推奨されるデフォルトロールを選択するか、カスタムロールを作成します。
  8. 次へ をクリックし、必要に応じてConfigルールを設定します(後からでも設定可能です)。
  9. 確認 ページで設定を確認し、設定 ボタンをクリックしてAWS Config Serviceを有効化します。

Terraformでの修復手順

TerraformでAWS Config Serviceを有効化し、全てのリソースタイプを記録するように設定するには、aws_config_configuration_recorder リソースを使用します。グローバルリソースタイプを記録する場合は、include_global_resource_types パラメータを true に設定します。

resource "aws_s3_bucket" "config_bucket" {
  bucket = "my-aws-config-bucket"
  # その他の S3 バケットの設定 ...
}

resource "aws_iam_role" "config_role" {
  name = "aws-config-role"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Principal = {
          Service = "config.amazonaws.com"
        }
        Effect = "Allow"
        Sid = ""
      },
    ]
  })
  # IAM ロールに適切なポリシーをアタッチ (例: AWSConfigRole)
}

resource "aws_config_configuration_recorder" "default" {
  name     = "default"
  role_arn = aws_iam_role.config_role.arn

  recording_group {
    all_supported         = true
    include_global_resource_types = true # グローバルリソースタイプを記録する場合
    resource_types        = [] # all_supported が true の場合は空で良い
  }
}

resource "aws_config_delivery_channel" "default" {
  name           = "default"
  s3_bucket_name = aws_s3_bucket.config_bucket.bucket
  depends_on     = [aws_config_configuration_recorder.default]
}

上記の例では、S3バケット、IAMロール、Configuration Recorder、Delivery Channel を定義し、Configuration Recorder の recording_group 内で all_supportedtrue に設定することで、全てのリソースタイプを記録するように設定しています。include_global_resource_typestrue に設定することで、グローバルリソースタイプも記録されます。

AWS Config Serviceを有効化したい全てのリージョンで、対応するプロバイダー設定と上記の Terraform コードを適用します。

最後に

この記事では、AWS Config Serviceが有効化されていない、または全てのリソースタイプを記録するように設定されていないことによるリスクと、Config Serviceを適切に設定するための対策について解説しました。AWS Config Serviceは、AWS環境の構成管理とセキュリティ監視において非常に重要なサービスです。全てのリソースタイプを記録するように設定し、インフラストラクチャの変更を継続的に追跡することで、セキュリティリスクの低減と運用効率の向上を図りましょう。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。

運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。

最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る