𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
AWS Configでコンプライアンス自動化|SESエンジニア向け

AWS Configでコンプライアンス自動化|SESエンジニア向け

AWSConfigコンプライアンスセキュリティ自動化
目次
⚡ 3秒でわかる!この記事のポイント
  • AWS Configはリソースの構成変更を記録・評価し、コンプライアンス違反を自動検知するサービス
  • マネージドルール+カスタムルール+自動修復の3段構えで継続的コンプライアンスを実現
  • AWS Configスキルを持つSESエンジニアは金融・医療系の高単価案件で重宝される

「AWSのコンプライアンスチェックを自動化したい」「AWS Configの設定方法が分からない」——クラウド環境のガバナンス強化を求められるSESエンジニアは年々増えています。

結論から言うと、AWS Configを使えばリソースの構成変更を自動的に記録・評価し、コンプライアンス違反を即座に検知・修復する仕組みを構築できます。これは特に金融・医療・官公庁系のSES案件で必須のスキルです。

この記事はAWS完全攻略シリーズとして、AWS Configによるコンプライアンス自動化の設計・実装方法をSESエンジニア向けに解説します。

この記事でわかること
  • AWS Configの基本概念とCloudTrail・Security Hubとの違い
  • 必須のマネージドルール10選
  • カスタムルールの開発方法
  • 自動修復(Remediation)の実装手順

AWS Configとは?コンプライアンス自動化の基本

リソース構成の記録と変更追跡の仕組み

AWS Configは、AWSアカウント内のリソースの構成情報を継続的に記録し、変更を追跡するサービスです。

AWS Configが記録する情報:

  • リソースの現在の設定状態(セキュリティグループのルール、S3バケットの設定等)
  • 設定の変更履歴(いつ、誰が、何を変更したか)
  • リソース間の依存関係(EC2とセキュリティグループの紐付け等)
  • コンプライアンスルールへの準拠状況

AWS公式ドキュメント「AWS Config の概念」でもこれらの機能が詳しく説明されています。

AWS Config vs CloudTrail vs Security Hubの違い

AWSのセキュリティ・コンプライアンスサービスは似た機能を持つものが多いため、違いを正確に理解しておきましょう。

サービス記録対象主な用途リアルタイム性
AWS Configリソースの構成状態コンプライアンスチェック変更検知時
CloudTrailAPI操作の履歴操作監査・フォレンジックリアルタイム
Security Hubセキュリティ評価の集約セキュリティ態勢の可視化定期評価
  • CloudTrailは「誰が何をしたか」を記録(操作ログ)
  • AWS Configは「リソースが今どういう状態か」を記録(構成状態)
  • Security Hubは「全体のセキュリティ状況はどうか」を集約・可視化

CloudTrailについては「AWS CloudTrailセキュリティ監査ガイド」で詳しく解説しています。

マネージドルールで始めるコンプライアンスチェック

必須の10個のマネージドルール

AWS Configのマネージドルールは、AWSが提供する事前定義済みのコンプライアンスルールです。以下の10個は多くのプロジェクトで必須です。

ルール名チェック内容重要度
s3-bucket-public-read-prohibitedS3バケットの公開読み取り禁止Critical
restricted-sshセキュリティグループのSSH制限Critical
iam-root-access-key-checkルートアカウントのアクセスキー無効化Critical
iam-password-policyIAMパスワードポリシーの強度High
encrypted-volumesEBSボリュームの暗号化High
rds-instance-public-access-checkRDSインスタンスの公開アクセス禁止High
multi-region-cloudtrail-enabledCloudTrailのマルチリージョン有効化High
ec2-instance-no-public-ipEC2インスタンスのパブリックIP禁止Medium
cloudwatch-alarm-action-checkCloudWatchアラームのアクション設定Medium
vpc-flow-logs-enabledVPCフローログの有効化Medium

ルール評価の仕組みとコンプライアンスダッシュボード

AWS Configのルール評価は以下の2つのタイミングで実行されます。

  • 変更トリガー型:対象リソースの構成が変更されたタイミングで評価
  • 定期実行型:1時間・3時間・6時間・12時間・24時間の間隔で定期評価
# マネージドルールの追加(CLI)
aws configservice put-config-rule --config-rule '{
  "ConfigRuleName": "s3-bucket-public-read-prohibited",
  "Source": {
    "Owner": "AWS",
    "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
  }
}'

非準拠リソースの特定と通知設定

非準拠(NON_COMPLIANT)リソースが検出された場合の通知設定:

# SNSトピックの作成
aws sns create-topic --name config-compliance-alerts

# AWS ConfigからSNSへの通知設定
aws configservice put-delivery-channel --delivery-channel '{
  "name": "default",
  "s3BucketName": "my-config-bucket",
  "snsTopicARN": "arn:aws:sns:ap-northeast-1:123456789:config-compliance-alerts"
}'

AWS Configコンプライアンス自動化の図解

カスタムルールの開発

Lambda関数によるカスタム評価ロジック

マネージドルールでカバーできない独自のコンプライアンス要件には、Lambda関数ベースのカスタムルールを開発します。

import json
import boto3

def lambda_handler(event, context):
    """カスタムルール: EC2インスタンスに特定のタグが付いているか確認"""
    config = boto3.client('config')
    
    configuration_item = json.loads(event['invokingEvent'])['configurationItem']
    
    # タグのチェック
    tags = configuration_item.get('tags', {})
    required_tags = ['Environment', 'Project', 'Owner']
    
    missing_tags = [tag for tag in required_tags if tag not in tags]
    
    if missing_tags:
        compliance_type = 'NON_COMPLIANT'
        annotation = f'必須タグが不足: {", ".join(missing_tags)}'
    else:
        compliance_type = 'COMPLIANT'
        annotation = '全ての必須タグが設定済み'
    
    config.put_evaluations(
        Evaluations=[{
            'ComplianceResourceType': configuration_item['resourceType'],
            'ComplianceResourceId': configuration_item['resourceId'],
            'ComplianceType': compliance_type,
            'Annotation': annotation,
            'OrderingTimestamp': configuration_item['configurationItemCaptureTime']
        }],
        ResultToken=event['resultToken']
    )

Guard(宣言型)ルールの活用

AWS CloudFormation Guard構文を使った宣言型ルールは、Lambda不要でシンプルに記述できます。

# Guard構文の例: S3バケットの暗号化チェック
rule s3_bucket_encryption_check {
    resourceType == "AWS::S3::Bucket"
    configuration.ServerSideEncryptionConfiguration EXISTS
    configuration.ServerSideEncryptionConfiguration.Rules[*].ApplyServerSideEncryptionByDefault.SSEAlgorithm == "aws:kms"
}

組織全体への展開(Organizations連携)

AWS Organizationsを使えば、カスタムルールを全アカウントに一括展開できます。

  • 組織レベルのルール:管理アカウントから全メンバーアカウントに配布
  • コンフォーマンスパック:複数のルールをまとめてデプロイ
  • アグリゲーター:全アカウントのコンプライアンス状況を一元表示

Organizations連携については「AWS Organizations マルチアカウント管理ガイド」を参照してください。

自動修復(Remediation)の実装

SSM Automationドキュメントとの連携

AWS Configの自動修復は、Systems Manager Automationドキュメントと連携して非準拠リソースを自動的に修正します。

# 自動修復の設定(S3バケットの公開アクセスをブロック)
aws configservice put-remediation-configurations --remediation-configurations '[{
  "ConfigRuleName": "s3-bucket-public-read-prohibited",
  "TargetType": "SSM_DOCUMENT",
  "TargetId": "AWS-DisableS3BucketPublicReadWrite",
  "Automatic": true,
  "MaximumAutomaticAttempts": 3,
  "RetryAttemptSeconds": 60
}]'

自動修復 vs 手動修復の判断基準

項目自動修復が適切手動修復が適切
リスク低リスクの設定変更サービス停止の可能性がある変更
頻度頻繁に発生する違反まれに発生する違反
複雑さ単一リソースの変更複数リソースにまたがる変更
影響範囲限定的広範囲

実例:S3バケットの公開設定を自動でブロック

最も一般的な自動修復の実装例として、S3バケットの公開アクセスを自動ブロックするフローを紹介します。

  1. 検知s3-bucket-public-read-prohibitedルールが違反を検知
  2. 通知:SNSトピック経由でSlack/メールに通知
  3. 修復:SSM AutomationがPutPublicAccessBlockを自動実行
  4. 確認:再評価でCOMPLIANTに変更されたことを確認

SSMについては「AWS Systems Manager運用ガイド」で詳しく解説しています。

SES案件でのAWS Config活用シーン

金融・医療系案件でのコンプライアンス要件

金融・医療系のSES案件では、以下のコンプライアンスフレームワークへの準拠が求められます。

  • PCI DSS:クレジットカード情報の保護(Config必須要件多数)
  • HIPAA:医療情報の保護(暗号化・アクセス制御の継続的監視)
  • FISC安全対策基準:金融機関のIT統制(構成変更の追跡必須)
  • ISMAP:政府系クラウドサービスの安全性評価

これらの案件では、AWS Configの設計・実装経験が参画要件として明示されることが多いです。

AWS Configスキルが評価される案件の特徴

以下の条件を満たす案件では、AWS Configスキルが特に高く評価されます。

  • エンドクライアントが大手金融機関・医療機関
  • SOC2やISO27001の認証取得プロジェクト
  • マルチアカウント環境のガバナンス構築
  • 既存環境のセキュリティ強化・監査対応

関連資格(SAP・SCS)の取得メリット

AWS Configスキルを証明する関連資格:

資格AWS Configの出題割合単価への影響
AWS SAP(ソリューションアーキテクトPro)15〜20%+8〜15万円/月
AWS SCS(セキュリティ専門知識)20〜25%+10〜18万円/月
AWS DevOps Professional10〜15%+8〜12万円/月

IAMセキュリティとの併用については「AWS IAMセキュリティガイド」を、Well-Architectedとの関連は「Well-Architectedガイド」を参照してください。

コスト最適化とベストプラクティス

記録対象リソースの絞り込み

AWS Configの料金は記録対象のリソース数に比例するため、不要なリソースタイプを除外してコストを最適化しましょう。

# 特定のリソースタイプのみ記録する設定
aws configservice put-configuration-recorder --configuration-recorder '{
  "name": "default",
  "roleARN": "arn:aws:iam::123456789:role/config-role",
  "recordingGroup": {
    "allSupported": false,
    "resourceTypes": [
      "AWS::EC2::Instance",
      "AWS::S3::Bucket",
      "AWS::IAM::Role",
      "AWS::RDS::DBInstance",
      "AWS::EC2::SecurityGroup"
    ]
  }
}'

評価頻度の最適化

ルールの評価頻度もコストに影響します。

  • 変更トリガー型:リソース変更時のみ評価(推奨)
  • 定期実行型(24時間):変更トリガーが使えないルールに限定
  • 定期実行型(1時間):クリティカルなルールのみ

コスト最適化のポイント:

  • 本番環境は全リソースタイプを記録、開発環境は主要リソースのみ
  • 変更トリガー型をメインに使い、定期実行は最小限に
  • S3ライフサイクルポリシーで古い構成スナップショットを自動削除

まとめ:AWS Configスキルで高単価SES案件を獲得しよう

AWS Configによるコンプライアンス自動化のポイントをまとめます。

  • 基本:リソースの構成状態を継続的に記録・評価するサービス
  • マネージドルール:10個の必須ルールから始めて段階的に拡張
  • カスタムルール:Lambda関数 or Guard構文で独自要件に対応
  • 自動修復:SSM Automationで非準拠リソースを自動修正
  • SES案件:金融・医療系の高単価案件でAWS Configスキルは必須
  • コスト:記録対象と評価頻度の最適化で無駄を削減

AWS Configのスキルは、セキュリティ・コンプライアンス案件で即戦力として評価される希少スキルです。積極的に習得して、高単価案件の獲得につなげましょう。

SES BASEでAWS案件を探す

AWS Config・セキュリティの経験を活かせるSES案件をSES BASEで検索してみてください。

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修