AWS Certified Security — Specialty 心得

Kun Yi Pan
13 min readMar 31, 2021

--

從 2018 第二次開放 Beta 拿到後,經過了三年後認命地來 re-cert ,也依賴著近年來的把玩經驗順利考過!順手紀錄一下大概怎麼準備 Specialty 這類 Domain Specific 的證照。

AWS 官方考試指南

首先考前仍是要仔細閱讀一下考試指南,每張證照都會提供相關文件和建議讓大家做準備,以 Security 這張的準備面向就要求:

  • 對專業資料分類和 AWS 資料保護機制的了解
  • 對資料加密方法以及 AWS 實作這些方法之機制的了解
  • 對安全網際網路協定以及 AWS 實作這些協定之機制的了解
  • 具有 AWS 安全服務和服務功能的工作知識,可提供安全的生產環境

準備方向可以參閱右側欄提供的 PDF 裡面有提到面向、比重:

Domain 1: Incident Response (12%)
1.1 Given an AWS abuse notice, evaluate the suspected compromised instance or exposed access keys.
1.2 Verify that the Incident Response plan includes relevant AWS services.
1.3 Evaluate the configuration of automated alerting, and execute possible remediation of security-related incidents and emerging issues.

Domain 2: Logging and Monitoring (20%)
2.1 Design and implement security monitoring and alerting.
2.2 Troubleshoot security monitoring and alerting.
2.3 Design and implement a logging solution.
2.4 Troubleshoot logging solutions.

Domain 3: Infrastructure Security (26%)
3.1 Design edge security on AWS.
3.2 Design and implement a secure network infrastructure.
3.3 Troubleshoot a secure network infrastructure.
3.4 Design and implement host-based security.

Domain 4: Identity and Access Management (20%)
4.1 Design and implement a scalable authorization and authentication system to access AWS resources.
4.2 Troubleshoot an authorization and authentication system to access AWS resources.

Domain 5: Data Protection (22%)
5.1 Design and implement key management and use.
5.2 Troubleshoot key management.
5.3 Design and implement a data encryption solution for data at rest and data in transit

推薦有閒可以好好啃,絕對有幫助

懶人包

IAM 絕對是核心重點!舉凡User、Role 的應用場景與管理,Root/IAM User Access Key 怎麼做保護及 Rotation、Policy 權限如何設計以符合 Least Privilege、到要怎麼利用 SAML/OIDC 與 AD 或 Cognito 做 Federation 驗證、MFA 運作在不同身份上該怎麼操作、Role Trust Relationship 怎麼驗證…等,都要具備一定的把握度,如果有實作經驗更能在一些模稜兩可之間做出選擇!

除了權限設計外,Tracebility 要如何啟用,機制、方法有哪些?會牽扯到那些 AWS Services?如 CloudTrail 紀錄 AWS API Call、Config 追蹤 Resource Configuration、VPC 流量透過 Flow Log 查看、GuardDuty 幫助 User 在不同服務之間找出有異樣的 Log 加以觸發告警、甚至觸發 Lambda 起來做 Auto-Remediation 等,多個服務各司其職、彼此搭配像堆積木一樣堆出五花八門的 Solution。另外就像是這些服務都是需要 User Enable 的,當一開始要如何啟用、設置過程發生錯誤時該怎麼確認、或是組織中有多個帳號要如何去做 Centralization 的管理都會需要理解個。

像上面提到的服務,大都會把 Log 存放至 S3 Bucket 當中,如有再注意一些資訊安全新聞的話,前幾年確實滿常看到因為權限問題而造成 data leak 的發生,這就會牽扯到 AWS 權限控管上的模組,有分為 Identity-based 和 Resource-based,前者如 IAM 由使用者面向出發的,後者便是以 S3 Bucket、SQS、KMS 等服務,可以透過服務資源角度去做權限管理;當今天兩個面向的權限模組彼此交疊的時候,會發生什麼事情,或是如何排除權限問題。

在像是 Log 等其他 Static Content 傳送至 S3 Bucket 或 CloudWatch Log 當中、甚至是 Request 訪問到建構在 Computing Resource 的 Application 應用程式服務,流量皆會在 Internet 做傳輸,那我們要如何確保接收到的資料、甚至資料要做存放的時候是具備一定安全性的?便會延伸到 Protect Data in Transit / at Rest 的領域。

以 Protect Data in Transit 來說會需要設計 End-to-End (E2E) 加密的架構與解決方案,像是如何申請 ACM 憑證、ELB 該如何做好 HTTPS 加密傳輸、Client 端 Request 到 EC2 Instance 過程會經過 CloudFront/ELB 該怎麼配置、如何確保 Request/Object 沒有被篡改、怎麼做 MD5 確認其完整性、當今天要去 access 一個已經被加密的 S3 Object 會需要哪些權限、Network Traffic 進出管制、CloudFront Signed url/Cookie 場景應用…等,每一個傳輸段都有其 Methodology 可以設計。

Protect Data at Rest 的部分便會大量的探討如何針對存放在 Cloud 上的項目作加密保存、驗證其存取、加密備份要如何避免 Single Point of Failure (cross-region/cross-account),這一區塊上會大量探討 KMS 相關的項目,堪稱與 IAM 為 Security 兩大主角。 像是 AMI、EBS Volume、EBS Snapshot 該怎麼作加密,如果原先沒加密、現在要開始加密該怎麼做,如何透過 Policy 強制要求一定要加密才能呼叫 AWS API,Cross Region Replication 時加密的 Key 動作邏輯如何來確保安全性,KMS Key 創建方式、如何做 Rotation、該怎麼做 Best Practice…等,會大量的和上面提到的範圍做交疊。

以下請容許我透過條列紀錄其他可以拜讀或是實際操作的項目:

WAF & Shield

  • 兩個服務針對 OSI Model 不同層級做防護
  • 支援 ALB & CloudFront
  • DDoS 發生時有哪些應對策略(需要配合 VPC)
  • Support 哪些規則、其配置邏輯與運作機制為何
  • Advanced Shield 有哪些服務項目

VPC

  • NAT 的選項有哪些、如何挑選出符合需求的關鍵選項
  • 一定要知道 EC2 Instance source/destination checks 在做什麼
  • NACL & Security Group 各自的規則與作業場景,當 Traffic 出現問題該怎麼 Troubleshooting
  • ALB/NLB/CLB 各自運作場景
  • ELB Security Policy (關係到 Browser、HTTP 版本)
  • VPC Flow Log 運作範圍、不支援的內容、該與哪些服務互動完整的取得 Traffic 資訊
  • VPC Endpoint 可以讓 Request 以 Private 方式訪問 AWS 服務

Cloud Trail

Config

  • Log 保存部分同上
  • 如何透過 Managed/Custom Rule 來實現 Audit Resources 是否滿足 Compliance ,這部分會延伸到 Security Hub 上面有針對不同的國際認證標準做 Package Templates

CloudWatch Logs

  • Pushed from AWS services (including CloudTrail)
  • Pushed from custom applications/systems
  • Filter logs and push to custom metrics
  • Log Insight (會稍微關係到 Athena 等服務做 Log Analytics)

CloudWatch Events

  • Near real-time stream of system events
  • Events 類型有哪些、可以觸發哪些動作實現 Event-Driven(目前也被整合到 EventBridge 了)

CloudHSM

  • Physical & Dedicated Hardware 來保存使用者的 Master Key
  • FIPS 140–2 compliance
  • 2017 re:Invent 1st Beta 的唯一主角… 為什麼說是唯一呢,因為超過一半題目都圍繞著 HSM 打轉,也因哀嚎遍野才開放了第二次 Beta,甚至將第一次 Beta 做全額退費當沒這事發生(謝天謝地獲得第二次機會)

KMS

  • CMK Rotation by 手動或是自動,自動 Rotate 的週期為多久、如何客製
  • Encryption key 為 Regional Resource,意味著 cross-region 就要換掉 CMK
  • 使用者該如何建立/Import self-own CMK
  • 老朋友 — EBS Encryption with KMS
  • 和EC2連線用的KeyPair不一樣

EC2

  • .ssh & EC2 metadata /public-key/0/openssh-key 可以看到 Instance 現在用哪一把Public key,基本上要了解一下 ssh 運作機制,像是砍掉 Key Pair 並不會影響到 EC2 Instance 中記憶的 ~/.ssh/authorized_keys
  • 除了 SSH/RDP 之外,目前 EC2 也支援透過 Session Manager 或是 Instance Connect 連,另外也可以參考一下這篇 連線至 EC2 的三種方法與比較 — SSH、EC2 Instance Connect、System Manager(偷打廣告)
  • 如果要做 SSH Key Rotation ,在 System Manager 也有對應的腳本可以批量執行
  • 有些 Network Traffic 要做控管的場合,是 AWS Services 目前還不支援的,這種情況便會需要 Marketplace Solution,這時候 EC2 & VPC 會需要做哪些變更?
  • 如何配合 Inspector 做 Vulnerabilities 等弱點、漏洞掃描,來符合 Compliance
  • 若不幸發生 Instance 被黑掉了,該怎麼在最短時間內縮小其影響範圍,並確保其狀態是可以被查驗的(保留它!孤立它!流放它!)
  • Penetration Testing 行前須知

Trusted Advisor

  • 最棒的雲端管家上線囉,Support Plan 升等至 Business/Enterprise 變成解鎖全功能哦 🔥 💰
  • 會針對不同面向檢查 AWS 帳號有哪些改善建議

Parameter Management

  • Systems Manager — Parameter Store
  • Secret Manager
  • 兩個服務在做類似的 Solution,Parameter 為宣告其變數&Value,Secret Manager 為以一個 Dictionary 存放 Key & Value
  • 若是為單一 Value 如 License Code、Region…等變數,可以放在 Parameter Store
  • 若為 Credential 類型如 Database 連線資料,包含 User、Password、Port、Host,便能透過 Secret Manager 做保存,搭配其功能觸發 Lambda 實現 Auto-Rotation,可以參考 Rotate Amazon RDS database credentials automatically with AWS Secrets Manager

後話

寫著寫著篇幅好像也有些長度了…希望自己也有機會來把上面提到的 Solution 都實現出來看看,基本上不外乎 Well-Archtected Frameworks 提出來的 Design Principle,希望這篇會幫助到想要挑戰的人!

武運昌隆!

--

--

Kun Yi Pan

Bob aka Baboo | 踩坑廢宅 | 一個孩子的爸 | STEPN Runner