网站首页 > 博客文章 正文
关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。
AWS Audit Manager 是一项服务,可简化在 AWS 上审计和管理合规性框架的过程。它提供预构建和可自定义的审计框架,以帮助您评估您的组织是否符合行业和监管标准,例如 SOC 2、HIPAA 和 PCI DSS。AWS Audit Manager 还集成了其他 AWS 服务,例如 AWS Config 和 AWS CloudTrail,以自动收集证据并确保您的基础设施符合您的审计要求。
但是,即使在 AWS Audit Manager 的帮助下,如果手动完成合规性检查,合规性检查仍然很耗时且容易出错。在本文中,我将探讨如何使用 AWS Lambda 通过 AWS Audit Manager 自动执行合规性检查。具体来说,我们将创建一个每天运行的 Lambda 函数,并使用自定义审计框架对 S3 存储桶执行合规性检查。
先决条件
在我们开始之前,我需要设置以下先决条件:
- 有权创建 IAM 角色、Lambda 函数和 AWS Audit Manager 资源的 AWS 账户。
- 您要审核的 S3 存储桶。此存储桶应包含需要符合您的自定义审计框架的对象。
- 一个 AWS Audit Manager 自定义审计框架,用于定义您要对 S3 存储桶实施的控制。您可以按照AWS Audit Manager 文档中的说明创建自定义审计框架。
- 将对 S3 存储桶执行合规性检查的 AWS Lambda 函数。我们将在以下部分中创建此函数。
创建 Lambda 函数
在本节中,我将创建一个 Lambda 函数,该函数使用我们的自定义审计框架对 S3 存储桶执行合规性检查。
第 1 步:为 Lambda 函数创建一个 IAM 角色
首先,我们将创建一个 IAM 角色,Lambda 函数将使用该角色与 AWS 服务交互。
- 打开IAM 控制台。
- 单击左侧导航菜单中的“角色”。
- 点击“创建角色”。
- 选择“Lambda”作为可信实体,然后单击“下一步:权限”。
- 搜索并选择“AWSAuditManagerFullAccess”策略。此策略授予对 AWS Audit Manager 资源的完全访问权限,这是我们的 Lambda 函数与 AWS Audit Manager 交互所必需的。
- 点击“Next: Tags”,添加任何你想要的标签,然后点击“Next: Review”。
- 输入角色的名称,例如“Lambda-Audit-Role”,然后单击“创建角色”。
第 2 步:创建 Lambda 函数
现在,我们将创建 Lambda 函数,使用我们的自定义审计框架对 S3 存储桶执行合规性检查。
- 打开Lambda 控制台。
- 单击“创建函数”。
- 选择“Author from scratch”并为您的函数输入一个名称,例如“S3-Audit-Function”。
- 选择运行时为“Python 3.8”。
- 选择“使用现有角色”选项,然后选择您在上一步中创建的“Lambda-Audit-Role”IAM 角色。
- 单击“创建函数”以创建函数。
第 3 步:添加代码以执行合规性检查
现在我们已经创建了 Lambda 函数,让我们添加代码以使用我们的自定义审计框架对 S3 存储桶执行合规性检查。
- 在 Lambda 函数的代码编辑器中,将现有代码替换为以下代码:
import boto3import jsondef lambda_handler(event, context): # Define the AWS services and resources we'll be working with audit_manager = boto3.client('auditmanager') s3 = boto3.client('s3') # Define the audit manager assessment ID and the S3 bucket to audit assessment_id = 'INSERT_ASSESSMENT_ID_HERE' bucket_name = 'INSERT_BUCKET_NAME_HERE' # Get the list of objects in the S3 bucket response = s3.list_objects_v2(Bucket=bucket_name) objects = response['Contents'] # Define the list of evidence we'll collect for the S3 bucket evidence = [] # Loop through each object in the S3 bucket and collect evidence for obj in objects: # Define the evidence for each object object_evidence = { 'dataSource': 'AWS:S3:Object', 'eventName': 's3:ObjectCreated:*', 'eventTime': obj['LastModified'].isoformat(), 'awsAccountId': context.invoked_function_arn.split(':')[4], 'awsRegion': context.invoked_function_arn.split(':')[3], 'awsPartition': 'aws', 'eventSource': 'aws.s3', 'requestParameters': { 'bucketName': bucket_name, 'key': obj['Key'] }, 'resourceType': 'AWS:S3:Object', 'resourceName': f'arn:aws:s3:::{bucket_name}/{obj["Key"]}', 'complianceType': 'COMPLIANT', 'title': f'{obj["Key"]} is compliant' } # Add the evidence to the list evidence.append(object_evidence) # Define the assessment report for the S3 bucket assessment_report = { 'evidence': evidence, 'assessmentReportDescription': 'Assessment report for S3 bucket compliance', 'roles': [ { 'roleArn': context.invoked_function_arn.split(':')[0] + ':iam::' + context.invoked_function_arn.split(':')[4] + ':role/Lambda-Audit-Role', 'roleType': 'PROCESS_OWNER' } ] } # Submit the assessment report to AWS Audit Manager audit_manager.create_assessment_report( assessmentId=assessment_id, assessmentReport=assessment_report )
- 将 INSERT_ASSESSMENT_ID_HERE 和 INSERT_BUCKET_NAME_HERE 占位符替换为您要审核的实际评估 ID 和 S3 存储桶名称。
- 单击“保存”以保存 Lambda 函数。
设置一个 CloudWatch 事件来触发 Lambda 函数
现在我们已经创建了 Lambda 函数,我们需要设置一个 CloudWatch 事件来每天触发该函数。
- 打开CloudWatch 控制台。
- 单击左侧导航菜单中的“规则”。
- 单击“创建规则”。
- 在“事件源”部分,选择“计划”并选择“固定速率”选项。在“小时”字段中输入“24”。
- 在“目标”部分中,选择“Lambda 函数”并选择您在上一节中创建的 Lambda 函数。
- 单击“配置详细信息”并输入 CloudWatch 事件规则的名称,例如“Daily-S3-Audit”。
- 单击“创建规则”以创建 CloudWatch 事件规则。
结论
在本文中,我们探讨了如何使用 Lambda 函数和 CloudWatch 事件通过 AWS Audit Manager 自动执行合规性检查。我们首先讨论了合规性在当今商业世界中的重要性,以及 AWS Audit Manager 如何帮助自动化合规性检查。
接下来,我们了解了在 AWS Audit Manager 中设置审计所涉及的步骤,以及如何创建 Lambda 函数来收集证据并向 Audit Manager 提交评估报告。
我们提供了代码片段并解释了如何设置运行 Lambda 函数所需的 IAM 角色、策略和权限。
最后,我们讨论了如何设置 CloudWatch 事件以每天触发 Lambda 函数。
通过使用 AWS Audit Manager 自动执行合规性检查,企业可以降低不合规的风险并避免代价高昂的罚款和处罚。借助 AWS 强大的工具和服务套件,企业可以确保他们始终遵守法规和行业标准,让他们高枕无忧,专注于核心业务目标。
参考
- AWS Audit Manager 官方文档: https: //aws.amazon.com/audit-manager/
- AWS Lambda 官方文档: https: //aws.amazon.com/lambda/
- AWS CloudWatch 官方文档: https: //aws.amazon.com/cloudwatch/
- AWS Identity and Access Management (IAM) 官方文档:https ://aws.amazon.com/iam/
猜你喜欢
- 2024-09-21 新型加密挖矿蠕虫可扫描和窃取AWS凭证
- 2024-09-21 AWS云服务免费套餐竟然扣钱了?可能是因为你的region没管好
- 2024-09-21 如果要搞devops我推荐一下这些技术栈
- 2024-09-21 AWS认证指导 - 部署方法(aws认证体系)
- 2024-09-21 AWS管理Secret的最佳实践(aws key management)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)