2022-12-21如何根據(jù)Macie檢測結(jié)果為S3自動(dòng)打上自定義敏感數(shù)據(jù)標(biāo)簽?

寫寫我的學(xué)習(xí)筆記,本文僅為個(gè)人學(xué)習(xí)心得,與AWS無關(guān)

內(nèi)容簡介

對敏感數(shù)據(jù)發(fā)現(xiàn)后,進(jìn)行相應(yīng)的分類分級后打個(gè)性化標(biāo)簽的是企業(yè)數(shù)據(jù)管理過程中的首要一步。
Amazon Macie https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html 是一項(xiàng)數(shù)據(jù)安全服務(wù),它使用機(jī)器學(xué)習(xí)和規(guī)則匹配來發(fā)現(xiàn)敏感數(shù)據(jù),實(shí)現(xiàn)可見性和自動(dòng)防范數(shù)據(jù)安全風(fēng)險(xiǎn)。很多客戶在使用Macie發(fā)現(xiàn)S3中的數(shù)據(jù)后,希望可以自動(dòng)為S3中的Object打上敏感數(shù)據(jù)標(biāo)簽,并且希望是由企業(yè)自己定義的內(nèi)容而不是由Macie中的Severity簡單定義的高(High)、中(Medium)、低(Low)。https://docs.aws.amazon.com/macie/latest/user/findings-severity.html

本篇博文中將提供一個(gè)支持自定義標(biāo)簽內(nèi)容的并根據(jù)Macie發(fā)現(xiàn)結(jié)果自動(dòng)打標(biāo)簽的方案,并提供自動(dòng)部署的Cloudformation模板以及CLI示例命令行。

先決條件

架構(gòu)與工作原理

Macie在執(zhí)行完成敏感數(shù)據(jù)發(fā)現(xiàn)任務(wù)后,其掃描結(jié)果會(huì)自動(dòng)傳遞至Eventbrige,我們通過建立一條rule,觸發(fā)Lambda對S3中的文件進(jìn)行打標(biāo)簽的操作,整體流程如下圖:


架構(gòu)圖

本例中提供的是將敏感數(shù)據(jù)標(biāo)簽分為四個(gè)級別,具體在下一章中進(jìn)行詳細(xì)定義說明。

部署方法

請將附錄中的兩份模板文件保存至CLI本地運(yùn)行目錄下, 完成下列參數(shù)的設(shè)置:

  • tagkey 自定義標(biāo)簽的key
  • level0 level1 level2 level3 四個(gè)級別標(biāo)簽,從低到高的value
  • s3filepath
    我們需要一個(gè)mapping.json文件,定義敏感數(shù)據(jù)類型與級別的關(guān)系,并將其放在S3中,請于附錄下載保存。根據(jù)企業(yè)定義,將每行value中默認(rèn)的0改為對應(yīng)的敏感級別,例如如果認(rèn)為ADDRESS居住地址是level2級別的信息,則將"ADDRESS":后邊的0修改為數(shù)字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 運(yùn)行cloudformation模板的AWS區(qū)域
  • stackname cloudformation stack的名稱
  • template 附錄中提供的cloudformation stack模板,請保存為yaml格式。

以下為示例命令行

tagkey='敏感度標(biāo)識(shí)'
level0='公開'
level1='內(nèi)部'
level2='保密'
level3='機(jī)密'
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 需要幾分鐘運(yùn)行完成,請運(yùn)行以下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控制臺(tái),打開新建的lambda function->Configuration->Environment variables,可以看到我們之前定義的標(biāo)簽信息都已經(jīng)體現(xiàn)在這里,而lambda會(huì)根據(jù)這些定義,針對Macie的發(fā)現(xiàn)結(jié)果給S3中的Object打上對應(yīng)的標(biāo)簽。


lambda的環(huán)境變量

結(jié)果展示

當(dāng)macie完成一次掃描后,我們可以登錄AWS控制臺(tái)查看Lambda的Cloudwatch group,如下圖示例,lambda根據(jù)Macie的發(fā)現(xiàn)結(jié)果CREDIT_CARD_NUMBER,為文件1-financial-data.txt打上了三級對應(yīng)的標(biāo)簽:機(jī)密。


lambda的執(zhí)行記錄
S3中的標(biāo)簽

小結(jié)

在這篇博文中,我向您展示了一種自定義敏感數(shù)據(jù)標(biāo)簽并由Macie掃描結(jié)果自動(dòng)觸發(fā)打標(biāo)簽的方法,非常簡單方便。本文中定義的是四級標(biāo)準(zhǔn),您完成可以根據(jù)企業(yè)的需求改為三級或者五級,只需要在lambda中的環(huán)境變量進(jìn)行修改即可。mapping.json中列出的是Macie所有MDI的,如果您使用custom data identifiers https://docs.aws.amazon.com/macie/latest/user/custom-data-identifiers.html(CDI)掃描只需將CDI名稱加進(jìn)去即可。本文中的示例僅部署在us-east-1一個(gè)region,您可以使用AWS的CloudFormation StackSets https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html,將模板部署在多個(gè)AWS Account以及多個(gè)regions中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容