Security Hub Compliance Analyzer (SHCA) สร้างสิ่งประดิษฐ์เพื่อสนับสนุนการรับรองระบบสารสนเทศของ Department of Defense Risk Management Framework (RMF) ด้วยการใช้เอกสารประกอบของ Amazon Web Services แมปการควบคุม NIST800-53-Rev-5 กับ AWS Security Hub Security Control IDs SHCA จะขอการปฏิบัติตามสภาพแวดล้อมปัจจุบันจาก Security Hub และสร้างไฟล์ ZIP ที่จัดเก็บไว้ใน Amazon S3 ที่มีอาร์ติแฟกต์แยกกันใน CSV, JSON OCSF จัดหาสิ่งประดิษฐ์ให้กับ SecOps เพื่อนำเข้าสู่เครื่องมือ RMF
ศูนย์รักษาความปลอดภัยพร้อมด้วยมาตรฐานความปลอดภัย NIST Special Publication 800-53 Revision 5 และดำเนินการอย่างน้อย 24 ชั่วโมงเพื่อให้ได้ผลลัพธ์
** สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้งานการเยี่ยมชมมาตรฐานนี้ การเปิดใช้งานและปิดใช้งานมาตรฐานความปลอดภัย )
การค้นพบทั้งหมดภายใน Security Hub จะถูกแยกและบันทึกใน JSON
การค้นพบล่าสุดจากรหัสควบคุม/ทรัพยากรแต่ละรายการใน JSON จะถูกเขียนลงในไฟล์ CSV เพื่อการวิเคราะห์และการอ่านที่ดีขึ้น
ข้อมูลสรุปของการควบคุมทั้งหมดจะถูกสร้างขึ้นจากไฟล์ CSV ตามวิธีการต่อไปนี้
ขั้นตอนนี้จะสร้างไฟล์สำหรับแต่ละตัวควบคุม NIST SP 800-53 ตามสถานะของตัวควบคุมนั้น และเก็บไว้ในสองโฟลเดอร์:
นอกจากนี้ ขั้นตอนนี้จะดึงข้อมูลและรวมไฟล์ต่างๆ จากบัคเก็ต S3 โฟลเดอร์และเนื้อหาได้แก่:
ไฟล์เหล่านี้ให้ข้อมูลที่ครอบคลุมเกี่ยวกับสถานะความปลอดภัยของทรัพยากร AWS โดยอิงจากการตรวจสอบความปลอดภัยอัตโนมัติ NIST SP 800-53 ของ Security Hub
นี่คือสิ่งที่คุณต้องติดตั้งเพื่อใช้ AWS CDK
ตรวจสอบการติดตั้ง Python 3.7 หรือใหม่กว่า, pip, virtualenv และ Node.js บน Linux
node --version
นักพัฒนา AWS CDK ทั้งหมด แม้แต่ผู้ที่ทำงานใน Python, Java หรือ C# ต่างก็ต้องการ Node.js 14.15.0 หรือใหม่กว่า ภาษาที่รองรับทั้งหมดใช้แบ็กเอนด์เดียวกัน ซึ่งทำงานบน Node.js เราขอแนะนำเวอร์ชันที่ใช้งานการสนับสนุนระยะยาว องค์กรของคุณอาจมีคำแนะนำที่แตกต่างออกไป
ข้อกำหนดเบื้องต้นอื่นๆ ขึ้นอยู่กับภาษาที่คุณพัฒนาแอปพลิเคชัน AWS CDK และมีดังต่อไปนี้:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบการติดตั้งที่ถูกต้องและพิมพ์หมายเลขเวอร์ชันของ AWS CDK
cdk --version
ไฟล์ cdk.json
จะบอก CDK Toolkit ถึงวิธีดำเนินการแอป
โปรเจ็กต์นี้ได้รับการตั้งค่าเหมือนกับโปรเจ็กต์ Python มาตรฐาน กระบวนการเริ่มต้นยังสร้าง virtualenv ภายในโปรเจ็กต์นี้ ซึ่งจัดเก็บไว้ในไดเร็กทอรี .venv
ในการสร้าง virtualenv จะถือว่ามี python3
(หรือ python
สำหรับ Windows) ที่สามารถเรียกใช้งานได้ในเส้นทางของคุณพร้อมการเข้าถึงแพ็คเกจ venv
หากการสร้าง virtualenv อัตโนมัติล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม คุณสามารถสร้าง virtualenv ด้วยตนเองได้
หากต้องการสร้าง virtualenv บน MacOS และ Linux ด้วยตนเอง:
$ python3 -m venv .venv
หลังจากกระบวนการเริ่มต้นเสร็จสิ้นและสร้าง virtualenv แล้ว คุณสามารถใช้ขั้นตอนต่อไปนี้เพื่อเปิดใช้งาน virtualenv ของคุณ
$ source .venv/bin/activate
หากคุณอยู่บนแพลตฟอร์ม Windows คุณจะเปิดใช้งาน virtualenv ดังนี้:
% .venvScriptsactivate.bat
เมื่อเปิดใช้งาน virtualenv แล้ว คุณจะสามารถติดตั้งการขึ้นต่อกันที่จำเป็นได้
$ pip install -r requirements-deploy.txt
ดาวน์โหลด AWS Lambda Layer สำหรับ AWS SDK สำหรับ Pandas (AWS Wrangler) และวางไว้ในตำแหน่งต่อไปนี้: ดู README.md สำหรับข้อมูลเพิ่มเติม
bash update_aws_wrangler.sh
การปรับใช้สแต็กด้วย AWS CDK ต้องใช้บัคเก็ต Amazon S3 เฉพาะและคอนเทนเนอร์อื่นๆ เพื่อให้พร้อมใช้งานกับ AWS CloudFormation ระหว่างการปรับใช้ การสร้างสิ่งเหล่านี้เรียกว่าการบูตสแตรปปิ้ง หากต้องการบูตสแตรป ให้ออก:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
ณ จุดนี้ คุณสามารถสังเคราะห์เทมเพลต CloudFormation สำหรับโค้ดนี้ได้
$ cdk synth
แก้ไขค่าต่อไปนี้ใน cdk.json
- "environment": "shca"
- ตั้งชื่อที่สื่อความหมายสำหรับการปรับใช้ SHCA ซึ่งอาจเป็นค่าใดๆ ก็ได้ และไม่ส่งผลกระทบต่อฟังก์ชันการทำงาน เป็นการติดป้ายกำกับทรัพยากร SHCA ภายในบัญชี AWS - "vpc_cidr": "10.30.0.0/24"
- ตั้งค่าช่วง CIDR สำหรับ VPC ขนาดเล็กที่สร้างขึ้นเพื่อให้ฟังก์ชัน Lambda ทำงาน เนื่องจากไม่สร้างฟังก์ชัน [Lambda.3] Lambda ควรอยู่ในการค้นหา VPC เลือกช่วง CIDR ที่ยังไม่ได้ใช้งานภายในสภาพแวดล้อมของคุณ - "schedule_frequency_days": 7
- การตั้งค่านี้จะกำหนดความถี่ที่คุณต้องการให้ SHCA สร้างการรายงานการปฏิบัติตามข้อกำหนด - "send_failure_notification_email": true
หรือ false
- หากเป็น true
อีเมลจะถูกส่งไปยังที่อยู่ที่ระบุไว้ใน failure_notification_email
- "failure_notification_email": [email protected]
- ที่อยู่อีเมลนี้จะได้รับการแจ้งเตือนเมื่อเกิดความล้มเหลวในการดำเนินการ SHCA
จากที่นี่ คุณจะมีสองตัวเลือกในการติดตั้ง SHCA (CloudShell หรือ CDK)
หากคุณไม่มีสิทธิ์เข้าถึงแล็ปท็อปหรือสภาพแวดล้อมการพัฒนาที่คุณสามารถติดตั้งข้อกำหนดเบื้องต้นข้างต้นได้ อาจใช้บริการ CloudShell เพื่อทำให้ SHCA ใช้งานได้ นอกจากนี้ ด้วยการใช้ข้อมูลรับรองชั่วคราวจาก AWS IAM Identity Center เราสามารถใช้ CloudShell เดียวในบัญชีเพื่อทำการเรียก CloudFormation API และปรับใช้โค้ดในบัญชีใดๆ ที่คุณสามารถเข้าถึงได้
CloudShell ได้รับการอนุมัติจาก DISA สำหรับการใช้งานในสภาพแวดล้อม IL2-IL5 รวมถึงภูมิภาคเชิงพาณิชย์และ GovCloud โปรดปรึกษาบุคลากรด้านการปฏิบัติตามกฎระเบียบขององค์กรของคุณเพื่อให้แน่ใจว่า CloudShell ได้รับการอนุมัติให้ใช้ในการปรับใช้ AWS ขององค์กรของคุณ
ดาวน์โหลดซอร์สโค้ดเช่น shca-main.zip จากสาขาหลักของ repo นี้
ไปที่บริการ CloudShell ในบัญชี AWS ที่คุณจะใช้เพื่อทำหน้าที่เป็นสภาพแวดล้อมการปรับใช้ของคุณ ตรวจสอบให้แน่ใจว่าคุณมีพื้นที่เพียงพอใน CloudShell ก่อนดำเนินการปรับใช้ หากพื้นที่ไม่เพียงพอก็จะล้มเหลว
อัปโหลดซอร์สโค้ดลงใน CloudShell แตกไฟล์และ cd ลงในไดเร็กทอรี shca-main
:
unzip shca-main.zip && cd shca-main
วางข้อมูลประจำตัวชั่วคราวจาก AWS IAM Identity Center สำหรับบัญชีที่คุณต้องการปรับใช้ SHCA ใน AWS CDK จะใช้ข้อมูลรับรองชั่วคราวเหล่านี้ (ปัจจุบันตั้งเป็นตัวแปรสภาพแวดล้อม) เพื่อปรับใช้โค้ดในบัญชีเป้าหมายที่ถูกต้อง แม้ว่าคุณจะใช้ CloudShell จากบัญชีอื่นก็ตาม
เรียกใช้ aws sts get-caller-identity
และตรวจสอบว่าหลักและหมายเลขบัญชีตรงกับค่าที่คุณคาดหวัง
ให้สิทธิ์ดำเนินการและเรียกใช้ ./cloud_shell_deployment.sh
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
ป้อน y
เมื่อ CDK แจ้งให้คุณทราบในเชลล์ ทั้งสองครั้ง
$ cdk deploy
cdk ls
แสดงรายการสแต็กทั้งหมดในแอปcdk synth
ปล่อยเทมเพลต CloudFormation ที่สังเคราะห์แล้วcdk deploy
ปรับใช้สแต็กนี้กับบัญชี/ภูมิภาค AWS เริ่มต้นของคุณcdk diff
เปรียบเทียบสแต็กที่ปรับใช้กับสถานะปัจจุบันcdk docs
เปิดเอกสาร CDK เมื่อปรับใช้ SHCA แล้ว:
นำทางไปยังบริการ Step Functions/State Machines:
เลือก YOUR-ENVIRONMENT-NAME-State-Machine
หากคุณเพิ่งปรับใช้ SHCA เป็นครั้งแรก ให้ตรวจสอบว่าเครื่องสถานะทำงานได้สำเร็จโดยการดูการดำเนินการ หากเครื่องสถานะทำงานสำเร็จ ให้ข้ามไปยังขั้นตอนที่ 6 มิฉะนั้น หากต้องการเรียกใช้ SHCA ตามความต้องการ ให้เลือก "เริ่มดำเนินการ":
เลือก "เริ่มดำเนินการ" อีกครั้งในหน้าต่างป๊อปอัป ปล่อยให้เป็นค่าเริ่มต้นทั้งหมด
เลื่อนไปที่ด้านล่างของหน้าและรอให้ทุกขั้นตอนดำเนินการให้เสร็จสิ้น คุณจะเห็นข้อความ "ExecutionSucceeded" ที่ด้านล่างเมื่อเสร็จสิ้น
ไปที่คอนโซล Amazon S3 แล้วค้นหาและเลือกบัคเก็ตชื่อ "-resources-%YOUR_ACCOUNT_NUMBER%"
ในที่เก็บข้อมูลนี้ไปที่ customer/compliance_scraper/
ดาวน์โหลดไฟล์ zip สิ่งประดิษฐ์ล่าสุด
ตรวจสอบไฟล์ที่อยู่ในไฟล์ zip
ดูการมีส่วนร่วมสำหรับข้อมูลเพิ่มเติม
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache-2.0