美文网首页
2022-12-21如何根据Macie检测结果为S3自动打上自定

2022-12-21如何根据Macie检测结果为S3自动打上自定

作者: 清风晓星辰 | 来源:发表于2022-12-26 15:22 被阅读0次

写写我的学习笔记,本文仅为个人学习心得,与AWS无关

内容简介

对敏感数据发现后,进行相应的分类分级后打个性化标签的是企业数据管理过程中的首要一步。
Amazon Macie https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html 是一项数据安全服务,它使用机器学习和规则匹配来发现敏感数据,实现可见性和自动防范数据安全风险。很多客户在使用Macie发现S3中的数据后,希望可以自动为S3中的Object打上敏感数据标签,并且希望是由企业自己定义的内容而不是由Macie中的Severity简单定义的高(High)、中(Medium)、低(Low)。https://docs.aws.amazon.com/macie/latest/user/findings-severity.html

本篇博文中将提供一个支持自定义标签内容的并根据Macie发现结果自动打标签的方案,并提供自动部署的Cloudformation模板以及CLI示例命令行。

先决条件

架构与工作原理

Macie在执行完成敏感数据发现任务后,其扫描结果会自动传递至Eventbrige,我们通过建立一条rule,触发Lambda对S3中的文件进行打标签的操作,整体流程如下图:


架构图

本例中提供的是将敏感数据标签分为四个级别,具体在下一章中进行详细定义说明。

部署方法

请将附录中的两份模板文件保存至CLI本地运行目录下, 完成下列参数的设置:

  • tagkey 自定义标签的key
  • level0 level1 level2 level3 四个级别标签,从低到高的value
  • s3filepath
    我们需要一个mapping.json文件,定义敏感数据类型与级别的关系,并将其放在S3中,请于附录下载保存。根据企业定义,将每行value中默认的0改为对应的敏感级别,例如如果认为ADDRESS居住地址是level2级别的信息,则将"ADDRESS":后边的0修改为数字2
{
  "ADDRESS": 2,
  "AUSTRALIA_DRIVERS_LICENSE": 0,
  "AUSTRALIA_TAX_FILE_NUMBER": 0,
  "AUSTRIA_DRIVERS_LICENSE": 0,
  "AWS_CREDENTIALS": 0,
  "BANK_ACCOUNT_NUMBER": 0,
  "BELGIUM_DRIVERS_LICENSE": 0,
  • region 运行cloudformation模板的AWS区域
  • stackname cloudformation stack的名称
  • template 附录中提供的cloudformation stack模板,请保存为yaml格式。

以下为示例命令行

tagkey='敏感度标识'
level0='公开'
level1='内部'
level2='保密'
level3='机密'
s3filepath=mapping.json
region=us-east-1
stackname=MacieAutotag
template=blog-template.yaml
aws cloudformation create-stack --stack-name $stackname --template-body file://$template \
--parameters  \
ParameterKey=level0,ParameterValue=$level0 \
ParameterKey=level1,ParameterValue=$level1 \
ParameterKey=level2,ParameterValue=$level2  \
ParameterKey=level3,ParameterValue=$level3 \
ParameterKey=tagkey,ParameterValue=$tagkey  \
ParameterKey=s3filepath,ParameterValue=$s3filepath \
--capabilities CAPABILITY_IAM \
--region=$region

Cloudformation 需要几分钟运行完成,请运行以下CLI示例命令,将mapping.json上传至新建立的S3中供Lambda使用:

aws s3 cp  $s3filepath s3://$(aws cloudformation --region $region describe-stacks --stack-name $stackname --query 'Stacks[*].Outputs[0].OutputValue' --output text)/ --region=$region

登录AWS控制台,打开新建的lambda function->Configuration->Environment variables,可以看到我们之前定义的标签信息都已经体现在这里,而lambda会根据这些定义,针对Macie的发现结果给S3中的Object打上对应的标签。


lambda的环境变量

结果展示

当macie完成一次扫描后,我们可以登录AWS控制台查看Lambda的Cloudwatch group,如下图示例,lambda根据Macie的发现结果CREDIT_CARD_NUMBER,为文件1-financial-data.txt打上了三级对应的标签:机密。


lambda的执行记录 S3中的标签

小结

在这篇博文中,我向您展示了一种自定义敏感数据标签并由Macie扫描结果自动触发打标签的方法,非常简单方便。本文中定义的是四级标准,您完成可以根据企业的需求改为三级或者五级,只需要在lambda中的环境变量进行修改即可。mapping.json中列出的是Macie所有MDI的,如果您使用custom data identifiers https://docs.aws.amazon.com/macie/latest/user/custom-data-identifiers.html(CDI)扫描只需将CDI名称加进去即可。本文中的示例仅部署在us-east-1一个region,您可以使用AWS的CloudFormation StackSets https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html,将模板部署在多个AWS Account以及多个regions中。

相关文章

  • Python笔记3:语法糖

    运算 数字运算 运算会根据结果自动判断结果是int还是float 用到除法的时候,结果自动输出为float 双斜杠...

  • 如何优化项目

    一些有意思的loader 和 plugins 如何自动加载 require.context:根据自定的规则获取需要...

  • DataBinding自定义adapter

    DataBinding支持使用自定义的方法来处理View。 自动检测自定义方法 假设现在有一个自定义View,其中...

  • 页面探测行业参考值

    根据听云给出的行业参考值,可以检测自己服务的检测结果和行业相比质量如何:单页面总下载时间(s):5.873可用性(...

  • 亚马逊·自动广告·关键词·分析

    如何分析自动广告跑出的关键词呢? 01什么是亚马逊自动广告? 亚马逊自动广告是亚马逊根据系统算法为你的产品进行自动...

  • UILabel实现首行缩进两个字符

    NSString*_test =@"首行缩进根据字体大小自动调整 间隔可自定根据需求随意改变。。。。。。。"; N...

  • 团队组织架构视图展示

    Introduction 根据数据源和自定义view,自动生成团队组织架构图View,可根据数据量自动约束高度和宽...

  • 实验室信息化管理系统的作用

    1、提高检测效率:随时随地登录系统查看所需信息,自动汇总生成各种数据报告。 2、提高结果可靠性:根据系统提供的数据...

  • 自定义cell的高度设定

    自定义cell的高度 自定义cell的高度需要根据内容不同自动调整,使用tabview的代理方法- (CGFloa...

  • ThinkPHP实例化模型

    ThinkPHP模型 M方法实例化基础模型 D方法实例化自定义模型 D方法可以自动检测模型类,如果存在自定义的模型...

网友评论

      本文标题:2022-12-21如何根据Macie检测结果为S3自动打上自定

      本文链接:https://www.haomeiwen.com/subject/nnwuqdtx.html