この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
アップデートでSecurity HubにConfigで作成したカスタムルールの評価結果を統合できるようになりました。
AWS Security Hub now receives AWS Config managed and custom rule evaluation results
Security Hubの統合できる製品のドキュメント(英語)に、AWS Config (Sends findings)
が追加されています。
Available AWS service integrations - AWS Security Hub
このアップデートでConfigルールの評価結果がSecurity Hubからも確認できるようになりました。これまでGuardDutyなどのセキュリティサービスが統合されていたSecurity Hubですが、さらにConfigまでカバーしてくれるのは嬉しいですね。
確認してみる
さっそくアップデートでどのように変わったのか見てみましょう。
Security Hubへの統合
コンソールからSecurity Hubの「統合」を確認してみます。統合できるサービスの一覧が表示され、Configの項目がすでにありました。
Configが有効化されているリージョンでは自動で連携されるように設定されているので、特に設定は必要ありません。
Configルールの作成
実際にConfigルールの評価結果をSecurity Hubで確認したいので、お試しでConfigルールを作成していきます。
Configで「EBSデフォルト暗号化が有効化されているか」をチェックするマネージドルール「ec2-ebs-encryption-by-default」を利用してConfigルールを作成しました。(他の設定は全てデフォルト)
作成したConfigルールを手動で「再評価」を実行します。
あらかじめEBSデフォルト暗号化を無効化した環境で試しているので、更新すると非準拠としてリソースが表示されました。
Security Hubから確認してみる
先ほど非準拠となったConfigルールが統合されたSecurity Hubから確認してみます。
最初に確認した「統合」のコンソール画面から「結果を参照」をクリックすると、対象となっているリソースが確認できます。
すでにいくつか統合された評価結果があり、先ほど非準拠となった「ec2-ebs-encryption-by-default」のConfigルールもFailedのステータスで確認できました。
タイトルをクリックすると、結果の詳細を確認することも可能です。
検出結果の詳細
Security Hubへ統合されたConfigルールの評価結果はASFF形式に変換されます。他のサービス統合と同じなので、通知する際にも同じように実装が可能です。
以下はドキュメントに記載されているサンプルです。
Available AWS service integrations - AWS Security Hub
{
"SchemaVersion": "2018-10-08",
"Id": "arn:aws:config:eu-central-1:123456789012:config-rule/config-rule-mburzq/finding/45g070df80cb50b68fa6a43594kc6fda1e517932",
"ProductArn": "arn:aws:securityhub:eu-central-1::product/aws/config",
"ProductName": "Config",
"CompanyName": "AWS",
"Region": "eu-central-1",
"GeneratorId": "arn:aws:config:eu-central-1:123456789012:config-rule/config-rule-mburzq",
"AwsAccountId": "123456789012",
"Types": [
"Software and Configuration Checks"
],
"CreatedAt": "2022-04-15T05:00:37.181Z",
"UpdatedAt": "2022-04-19T21:20:15.056Z",
"Severity": {
"Label": "MEDIUM",
"Normalized": 40
},
"Title": "s3-bucket-level-public-access-prohibited-config-integration-demo",
"Description": "This finding is created for a resource compliance change for config rule: s3-bucket-level-public-access-prohibited-config-integration-demo",
"ProductFields": {
"aws/securityhub/ProductName": "Config",
"aws/securityhub/CompanyName": "AWS",
"aws/securityhub/FindingId": "arn:aws:securityhub:eu-central-1::product/aws/config/arn:aws:config:eu-central-1:123456789012:config-rule/config-rule-mburzq/finding/46f070df80cd50b68fa6a43594dc5fda1e517902",
"aws/config/ConfigRuleArn": "arn:aws:config:eu-central-1:123456789012:config-rule/config-rule-mburzq",
"aws/config/ConfigRuleName": "s3-bucket-level-public-access-prohibited-config-integration-demo",
"aws/config/ConfigComplianceType": "NON_COMPLIANT"
},
"Resources": [{
"Type": "AwsS3Bucket",
"Id": "arn:aws:s3:::config-integration-demo-bucket",
"Partition": "aws",
"Region": "eu-central-1",
"Details": {
"AwsS3Bucket": {
"OwnerId": "4edbba300f1caa608fba2aad2c8fcfe30c32ca32777f64451eec4fb2a0f10d8c",
"CreatedAt": "2022-04-15T04:32:53.000Z"
}
}
}],
"Compliance": {
"Status": "FAILED"
},
"WorkflowState": "NEW",
"Workflow": {
"Status": "NEW"
},
"RecordState": "ACTIVE",
"FindingProviderFields": {
"Severity": {
"Label": "MEDIUM"
},
"Types": [
"Software and Configuration Checks"
]
}
}
通知の実装をしたい場合、Security Hubを経由するとリージョン集約先だけで実装できるのでおすすめです。以下はGuardDutyの例ですが、Configでも同じイメージで実装できるはずです。
【小ネタ】GuardDuty 通知は Security Hub 経由で行うとリージョン集約ができて便利 | DevelopersIO
おわりに
Security HubがConfigの統合でさらに便利になりました。Configルールでリソース監視を行なっている環境では、通知の実装をシンプルにできるいいアップデートです。ぜひ活用してセキュリティイベントをさらにSecurity Hubで一元管理してみてください。