- 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 | リソースの構成状態 | コンプライアンスチェック | 変更検知時 |
| CloudTrail | API操作の履歴 | 操作監査・フォレンジック | リアルタイム |
| Security Hub | セキュリティ評価の集約 | セキュリティ態勢の可視化 | 定期評価 |
- CloudTrailは「誰が何をしたか」を記録(操作ログ)
- AWS Configは「リソースが今どういう状態か」を記録(構成状態)
- Security Hubは「全体のセキュリティ状況はどうか」を集約・可視化
CloudTrailについては「AWS CloudTrailセキュリティ監査ガイド」で詳しく解説しています。
マネージドルールで始めるコンプライアンスチェック
必須の10個のマネージドルール
AWS Configのマネージドルールは、AWSが提供する事前定義済みのコンプライアンスルールです。以下の10個は多くのプロジェクトで必須です。
| ルール名 | チェック内容 | 重要度 |
|---|---|---|
s3-bucket-public-read-prohibited | S3バケットの公開読み取り禁止 | Critical |
restricted-ssh | セキュリティグループのSSH制限 | Critical |
iam-root-access-key-check | ルートアカウントのアクセスキー無効化 | Critical |
iam-password-policy | IAMパスワードポリシーの強度 | High |
encrypted-volumes | EBSボリュームの暗号化 | High |
rds-instance-public-access-check | RDSインスタンスの公開アクセス禁止 | High |
multi-region-cloudtrail-enabled | CloudTrailのマルチリージョン有効化 | High |
ec2-instance-no-public-ip | EC2インスタンスのパブリックIP禁止 | Medium |
cloudwatch-alarm-action-check | CloudWatchアラームのアクション設定 | Medium |
vpc-flow-logs-enabled | VPCフローログの有効化 | 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"
}'

カスタムルールの開発
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バケットの公開アクセスを自動ブロックするフローを紹介します。
- 検知:
s3-bucket-public-read-prohibitedルールが違反を検知 - 通知:SNSトピック経由でSlack/メールに通知
- 修復:SSM Automationが
PutPublicAccessBlockを自動実行 - 確認:再評価で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 Professional | 10〜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で検索してみてください。