AWS Config ルールの評価結果を Security Hub にインポートする方法
下記についてまとめる
Secyruty Hubとは
- Amazon GuardDutyやAmazon Inspectorなどからセキュリティ結果をインポートして集約・一元管理することができる。
別アカウントを招待する時は、別アカウントでSecurityHubを有効化して、招待を受け入れるとメンバーアカウントとして関連付けされる。招待下側がマスターアカウントになる。
Organizationsとの統合。あとで試してみる。
マスターアカウントのセキュリティ基準を無効化しても他のメンバアカウントのセキュリティ基準は無効化されない。そのため、個別アカウントに対して無効化する必要がある
有効化も同様
最初のリンクについて実際に検証する
Error occurred while GetObject. S3 Error Code: PermanentRedirect. S3 Error Message: The bucket is in this region: eu-west-1. Please use this region to retry the request (Service: AWSLambdaInternal; Status Code: 400; Error Code:
普通にやるとこれが発生。ちゃんとバケットを東京リージョンに作成し、YAMLふぁいるのバケットの部分を修正すること
Cfnは問題ないが、Lambdaでエラー。printしている部分なので、一旦コメントアウトで回避。
[ERROR] NameError: name 'lambda_context' is not definedTraceback (most recent call last): File "/var/task/lambda_function.py", line 109, in lambda_handler print(lambda_context)
試したいこととして、まずは同じアカウントでConfigをSHにインポートしてみて、製品名がDefaultでインポートされるか確認したい。
確認できた。
下記コマンドで、SHの設定を出力してみた。製品名をコントロールしているのは、ProductFields
における、"aws/securityhub/ProductName": "Default",
っぽい
aws securityhub get-findings
def map_config_findings_to_sh(event, old_recorded_time):
この関数で各パラメータの設定をしているので同じようにProductName
も設定すれば問題ないはず
各パラメータはeventから撮ってきているのでeventの中身を見てみる。
ProductFieldsを設定すれば問題ないかと思ったが、結局会社はPersonalに、製品はDefaultへ修正されてしまう。
aws/
プレフィックスは予約されているものであり、Lambdaによる更新はできなさそう。
'ProductFields': {
'aws/securityhub/ProductName': 'Config',
'aws/securityhub/CompanyName': 'AWS'
},
他のサービスの結果をASFFで統一している
下記より、今回はConfigの結果をインポートしたいので、product/aws/config
にする必要がありそう
このフィールドの形式は arn:partition:securityhub:region:account-id:product/company-id/product-id です。
セキュリティハブ と統合されている AWS サービスの場合、company-id は "aws" である必要があり、product-id は AWS パブリックサービス名である必要があります。AWS 製品およびサービスはアカウントに関連付けられていないため、ARN の account-id セクションは空です。まだ セキュリティハブ と統合されていない AWS サービスは、サードパーティー製品と見なされます。
パブリック製品の場合、company-id および product-id は登録時に指定された ID 値である必要があります。
プライベート製品の場合、company-id はアカウント ID である必要があります。product-id は、予約語の "default"、または登録時に指定された ID である必要があります。
そもそもとして、BatchImportFindings
において、ProductArnはDefaultしか指定できない?
SecurityHubと統合されていない製品で製品名を変えるのは無理っぽい。
統合されている製品
上記から、おそらく製品名の表示を変えるのはできないと思われる。ただ、ProductFieldsに情報を入力し、SecurityHubの検出結果のフィルタで製品フィールド
として指定することでフィルタリングは可能となる。
あとは、マルチアカウントのケースを調べる。
→調べた。別アカウントでも同じ操作をすればちゃんとマスターアカウントのSHに統合される
ProductArnの説明にあるまたは登録時に指定された ID である必要があります。
について調べてみる
ProductArnの説明にあるまたは登録時に指定された ID である必要があります。
について調べてみる