AWS学习记录

2022-09-09 使用 Amazon Inspector 和

2022-09-20  本文已影响0人  清风晓星辰

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

内容简介

本文是对学习【1】后的一些感想,将其部署步骤中在AWS Console的手动部分,补充了CLI命令行,使得操作更加简便。
CLI对应章节使用了原文的章节号,方便阅读和查找。
请先下载【3】中的 aws-samples-automate-vulnerability-management-and-remediation到本地,运行CLI一定要在templates文件夹下

架构与工作原理

Inspector发现的漏洞会和自动进入到Securityhub中,在security hub delegated admin account中聚合后的region,创建两个custom actionbutton,后台通过EventBridge Rule调用Automation来对漏洞列表中(放在S3上)记录的主机漏洞信息进行跨账号修复。下边为【1】 的架构图


多账号架构图

部署方法

根据原文章步骤补充CLI Walkthrough

Step 1: Create Security Hub custom actions for resolving Amazon Inspector Findings 创建按钮

Set parameter 参数设置

region为securityhub指定的聚合aggregated region
其它两个参数是按照原blog写好的,不需要修改

region='eu-west-2'
buttonnames=('Rem-Inspector-NoRBT' 'Rem-Inspector-RBT')
actionids=('InspectorRemNoRBT' 'InspectorRemRBT')
Run CLI command
for ((i=1; i<=${#buttonnames[@]}; i++));do
arn=$(aws securityhub create-action-target \
    --name $buttonnames[$I]\
    --description $buttonnames[$i] \
    --id $actionids[$i] --region=$region  --output text --query 'ActionTargetArn')
echo $arn
arnlist[i]=$arn
done
echo $arnlist

Step 2: Deploy the CloudFormation template for automation runbook 创建后台修复的runbook

下载【3】中的repository到本地运行CLI的目录下。

stackname=Remediateinspector
template='ResolveInspectorFindingsCFN.yaml'
orgid=$(aws organizations describe-organization  --query 'Organization.Id' --output text --region=$region)
aws cloudformation create-stack --stack-name $stackname --template-body file://$template \
--parameters  \
ParameterKey=OrganizationId,ParameterValue=$orgid  \
ParameterKey=RemediateInspectorFindingCustomActionNoRBTArn,ParameterValue=$arnlist[1] \
ParameterKey=RemediateInspectorFindingCustomActionRBTArn,ParameterValue=$arnlist[2] \
--capabilities CAPABILITY_IAM \
--region=$region

需要等待大约三至五分钟,Cloudformation stack完成后再运行下边命令.如果提前运行以下命令行,会没有结果,此时请耐心⌛️,再重复运行一次,直到得到两个屏幕回显

outputs=($(aws cloudformation describe-stacks --stack-name $stackname --region=$region \
--query 'Stacks[*].Outputs[*].OutputValue' --output text))
echo $outputs
s3name=$outputs[2]
runbookname=$outputs[3]

Step 3: Create execution roles for multi-account and multi-Region automation using StackSet创建cross account role

参数设置

stacksetname =SSMAutomationrole

切换至Organizations的Management Account,运行CLI 命令,在所有member account中创建Cloudformation stacksets来创建SSMAutomationRole以供后续跨账号修复漏洞时使用。

stacksettemplate=automationExecutionRole.yaml
aws cloudformation create-stack-set \
    --stack-set-name $stacksetname\
    --template-body file://$stacksettemplate  \
    --permission-model SERVICE_MANAGED \
    --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true \
    --parameters \
    ParameterKey=InstallOverrideListBucket,ParameterValue=$s3name  \
    ParameterKey=DelegatedAdministratorAccountId,ParameterValue=$accid \
    ParameterKey=AutomationRunPatchBaselineRunbook,ParameterValue=$runbookname \
    --capabilities CAPABILITY_NAMED_IAM \
    --region=$region
aws cloudformation create-stack-instances \
    --stack-set-name $stacksetname\
    --deployment-targets OrganizationalUnitIds=$(aws organizations list-roots --query "Roots[].Id" --output text)  \
    --regions $region  --region=$region

运行正确后回返回以下两段ID
{
"StackSetId": "SSMAutomationrole:4eb98a7d-251c-4c74-ae7c-0451cee5ffd1"
}
{
"OperationId": "bfeb270c-1ae8-4357-94e3-1d70e83180c5"
}
⌛️cloudformation任务完成后,在平台中可以看到各个任务成功完成,再进行下一步。


Console snapshot of operations Console snapshot of stack instance

Step 4: Update EC2 IAM instance roles with permissions to access the install override list S3 bucket

被修复的ec2的IAM role里要加上一条允许其访问S3的policy

Step 5: Remediate vulnerabilities using the Security Hub custom action

小结

参考资料

【1】 Automate vulnerability management and remediation in AWS using Amazon Inspector and AWS Systems Manager – Part 1

【2】 Automate vulnerability management and remediation in AWS using Amazon Inspector and AWS Systems Manager – Part 2

【3】 aws-samples-automate-vulnerability-management-and-remediation

上一篇下一篇

猜你喜欢

热点阅读