AWSSDK を使用して Security Hub コントロールを含む Audit Manager カスタムフレームワークを作成する - AWSSDK コードサンプル

AWSDocAWS SDKGitHub サンプルリポジトリには、さらに多くの SDK サンプルがあります

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSSDK を使用して Security Hub コントロールを含む Audit Manager カスタムフレームワークを作成する

次のコード例は、以下の操作方法を示しています。

  • Security Hub をデータソースとするすべての標準コントロールのリストを取得します。

  • 統制を含む Audit Manager カスタムフレームワークを作成します。

Python
SDK for Python (Boto3)
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) class SecurityHub: def __init__(self, auditmanager_client): self.auditmanager_client = auditmanager_client def get_sechub_controls(self): """ Gets the list of controls that use Security Hub as their data source. :return: The list of Security Hub controls. """ print('-'*88) next_token = None page = 1 sechub_control_list = [] while True: print("Page [" + str(page) + "]") if next_token is None: control_list = self.auditmanager_client.list_controls( controlType='Standard', maxResults=100) else: control_list = self.auditmanager_client.list_controls( controlType='Standard', nextToken=next_token, maxResults=100) print('Total controls found:', len(control_list.get('controlMetadataList'))) for control in control_list.get('controlMetadataList'): control_details = self.auditmanager_client.get_control( controlId=control.get('id')).get('control', {}) if "AWS Security Hub" in control_details.get('controlSources'): sechub_control_list.append({'id': control_details.get('id')}) next_token = control_list.get('nextToken') if not next_token: break page += 1 print('Number of Security Hub controls found: ', len(sechub_control_list)) return sechub_control_list def create_custom_framework(self, am_controls): """ Create a custom framework with a list of controls. :param am_controls: The list of controls to include in the framework. """ try: print('Creating custom framework...') custom_framework = self.auditmanager_client.create_assessment_framework( name='All Security Hub Controls Framework', controlSets=[{'name': "Security-Hub", 'controls': am_controls}]) print(f"Successfully created the custom framework: " f"{custom_framework.get('framework').get('name')}: " f"{custom_framework.get('framework').get('id')}") print('-' * 88) except ClientError: logger.exception("Failed to create custom framework.") raise def run_demo(): print('-' * 88) print("Welcome to the AWS Audit Manager Security Hub demo!") print('-' * 88) print(" This script creates a custom framework with all Security Hub controls.") print('-' * 88) sechub = SecurityHub(boto3.client('auditmanager')) am_controls = sechub.get_sechub_controls() sechub.create_custom_framework(am_controls) if __name__ == '__main__': run_demo()