สำหรับหัวข้อที่ฟัง อาจจะแหว่งๆไปบ้างนะครับ พอดีวันนี้ไปงานรับปริญญาเพื่อนที่จุฬาฯ มาครับ โดยหัวข้อที่ฟังมา มีดังนี้
- Manage users and groups in Azure Active Directory
- Cloud defense strategies with Microsoft Azure
- Azure Kubernetes Service best practices
- Enable DevSecOps with GitHub and SonarQube hosted on Microsoft Azure
- Dealing with more than 100 secrets on GitHub Actions using Mozilla SOPS and Azure Key Vault
- Planning for migrate on-premises to Microsoft Azure with Cloud Adoption Framework (CAF)
- Planning and designing enterprise landing zone to support on-premises workload migration to Microsoft Azure
Key Note
- One Stop Service สำหรับ Dev Code Visual Studio > Commit เข้า github > devops & deploy บน Azure หรือ จะทำแบบ Low Code / No Code แบบ Power Platform
Manage users and groups in Azure Active Directory
- Active Directory (AD) - Tools เข้ามาช่วยจัดการ Identity Governance (จัดการสิทธิ Permission ต่างๆในองค์กร แล้วทีนี้ พอมี Azure มี Active Directory (AD) ตามด้วย รองรับได้หลาย Protocol อย่าง SAML/OAuth
- สำหรับองค์กรที่มี AD on premise สามารถใช้ Azure Connect มา Sync Azure Active Directory รวมถึงสามารถใช้ On-Premise มาเป็น Authentication Service ได้
- มุมของ Dev เอา Azure AD มา Integrate กับ App ของเราได้
- Q&A ทำไมต้องมี Azure ADDS ต่อกับ Azure AD ? - Azure AD DS, มันเป็น Active Directory Domain Service ที่ให้บริการในรูปแบบของ PaaS รูปแบบของ PaaS ครับ ใช้กับ Workloads (Azure VMs) ที่ต้องการ Join Domain แบบเดิม ( LDAP/Kerberos)ครับ
- Q&A Azure AD กับ ADFS ต่างกัน อย่างไร ? - Azure AD เป็น Identity and Access Management (IAM) ส่วน AD FS เป็น Federation Service (Claim-Based Authentication)
Resource Manage users and groups in Azure Active Directory - Learn | Microsoft Docs
Cloud defense strategies with Microsoft Azure
- IT Asset - ในที่นี้ Workload/Resource ต่างๆที่เราขึ้นไว้บน Cloud หรือ On-Premise
- เอามาช่วยปกป้อง IT Asset บน Azure ก่อนจะใช้ต้องเข้าใจบางเรื่องก่อน
- Shared Responsibility Model ว่าหน้าที่เรา กับ MS ต่างกันไง
- Defense In Depth Model
- Security Posture - สิ่งที่สะท้อนด้าน Security ของ IT Asset เช่น เปิด VM บน Azure default มันเปิด RDP ไว้ แล้วมี VM ทั้งหมดกี่ตัว ?
- ภาพนี้ดีนะ จะได้วางแผนความปลอดภัย กับเสียตังค์ถูก ว่าเรามี Resource ไหนที่ใช้ และต้องมาเพิ่ม Azure Security โดยใช้ Service อะไร
- SOC Team - Operate response กับ Issue บน Azure ได้
- Microsoft Defender for Cloud มาช่วย SOC Team อย่างไร
- CSPM - Improve Security Posture - ประเมินว่าปัจจุบัน ตัว IT Asset เป็นอย่างไร และปรับปรุงอย่างไร / Azure จะประเมินออกมาเป็น Secure Score รวมถึงตรวจตามมาตรฐานข้างนอกก็ได้นะ เช่น PCI-DSS เป็นต้น
- CWPP- Vulnerability Detection and Threat Management / Anomaly Detection โดยมีแยกตาม workload เช่น
- สำหรับ Servers
- MS Defender for End Points เพิ่มเติม และทำ Vulnerability Asse
- JIT VM Access ตอนแรกผมงง ตอนสร้าง VM มันเอาไปทำอะไร ตอนนี้เข้าใจและ ว่ามันมากัน Management Port (RDP / SSH) หรือ Port อื่นๆ โดยกำหนดเวลา Access ได้
- สำหรับ Storage Account - เช่น มีใครไม่รู้เข้ามา download storage account ได้ ตัว SOC มาทำ mitigate เพิ่มเติมตามคำแนะนำได้
- สำหรับ Servers
- Microsoft Sentinel มาช่วย SOC Team อย่างไร ?
- MS Sentinel เอาข้อมูล Threat ที่มาจาก Security Posture มาประมวลผลหาว่า Threat มันเกิดอย่างไร จากไหน ไ่ม่มีการ Protect เหมือนฝั่ง MS Defender for Cloud ตัว MS sentinel มี 4 ขั้นตอน
- Collect ผ่าน Data Connector กำหนดตาม Environment ต่างๆ
- Defect - Analytic สิ่งที่ได้จาก Connector มาดูว่ามีอะไรแปลกๆไหม
- Investigate - มาหา root-cause มาจากไหน เวลาอะไร เป็นต้น
- Respond - Play Book เป็น Automate Test ต่างๆ มาช่วงสร้าง Workflow (จริงๆมัน คือ Azure Logic App)
Resource
Azure Kubernetes Service best practices
- Private AKS Cluster
- ต้อง Setup ต้องเลือก Option ด้วย (Default เป็น Public) เมื่อเลือกแล้ว AKS สร้าง Private Endpoint ขึ้นมา
- Note
- ถ้ามี AKS Cluster Public แล้ว ต้อง Re-create Cluster มาใหม่ และเอา Wordload ใส่ คืน
- ห้าม Deleted Private Endpoint
- Use AKS Manage AAD with K8S RBAC
- ปกติ K8S ไม่มี Authen Service แต่จะเปิด OpenID Connect Tokens
- AKS มี Integrate กับ Azure อยู่แล้ว
- ข้อดี - Grant สิทธิต่างๆ Group ได้เลย โดย AKS มี Build-in Role มาใช้ให้เลย สะดวกการจัดการ
- Use AAD Pod Identity to Access Azure Resource -
- ใช้ AAD Pod Identity + Managed Identity มาจัดการ Resource ต่างๆใน Azure ตอนทำจริงขอ Token
- ปัจจุบันจะย้ายไปใช้ Azure AD Workload Identity
- Define pod resource requests and Limit - กำหนดไว้ เพื่อไม่ให้ Pod ใช้ resource เกิน
- Secure Traffic between pods using network policies - อารมณ์เหมือน NSG ใน Azure
- Backup K8S Namespace with Velero
- สำหรับ AKS ทำ manage identity เตรียมให้ Velero ก่อน เพราะต้อง Access Storage Account
- ข้อมูล Backup 2 ส่วน
- Config Namespace
- Data ของเป็นการทำ Snapshot
- ตัว Velero เอามา Adapt สำหรับ Migrate ได้ แต่ต้องดูว่ามีการใช้ Resouce ที่ Specific เฉพาะ Provider ไหม
- Blog เต็มๆ Backup Azure Kubernetes Service (AKS) ด้วย Velero และ Azure Disk CSI Driver | by Sirinat Paphatsirinatthi | Medium
Resource
- The Azure Kubernetes Service Checklist - ✨ Be ready for production ✨ (the-aks-checklist.com)
- Global Azure 2022: Azure Kubernetes Service Best Practices - Google สไลด์
Enable DevSecOps with GitHub and SonarQube hosted on Microsoft Azure
- DevSecOps
- เอางานที่ทำ Manual มาปรับเป็น Automation ทั้งงาน Develop / Security / Operation ถ้าดู DevSecOps งานนี้มีพูดเยอะครับ สรุป Microsoft Tech Week 2022 For developers, architects, and creators (04-APR-2022)
- สำหรับอันนี้ ตัว Sec คือ SonarQube ครับ
- GitHub Action
- Continuous Integration Tools ของ GitHub ที่ช่วยมาจัดการกับ Code แบบอัตโนมัติ มาทำเป็น Pipeline เช่น Build / Test / Deploy และถ้ามี Task ที่ Reused ได้สามารถลองหาใน Actions Market Place ได้
- Private Repo ฟรี 2000 นาที / Public ใช้ GitHub Action ฟรี
- มี Rest API เพื่อช่วยให้เข้า Trigger GitHub Action ตรงได้
- SonarQube
- Tools สำหรับตรวจ Source Code แบบ Static Application Security Testing (SAST)
- สำหรับภาพ Flow รวมนี้ ผมสนใจตรงนี้ เพราะที่ บ เอา Sonar ขึ้นมา แต่ยังใช้แบบแยก User กับระบบอื่นๆอยู่ครับ ถ้า Azure AD เชื่อมได้ พวก AD ปกติ / LDAP น่าจะทำได้
- อันนี้ดี ไม่ควร Push Code เข้า Branch ต้นทางตรงๆ อย่าง Master / Release อันนี้ตัว GitHub จะเป็น Pull Request ผูกกับ SonarQube Scan Code ได้เลย
ถ้าเป็น GitLab จะเป็น Merge Request ต้องไปดูว่า GitLab ฟรีที่ใช้มันทำได้ไหมหว่า 555
Resource
Dealing with more than 100 secrets on GitHub Actions using Mozilla SOPS and Azure Key Vault
- แนะนำให้อ่าน Blog ของ Speaker Dealing with more than 100 secrets on GitHub Actions using Mozilla SOPS and Azure Key Vault | Thada W.
- สำหรับผมได้ Update อะไรหลายอย่างเลยใช้ PGP และตอนนี้ Age Encryption (มองว่าเป็นอีก Algorithm ของ File Encryption) มาแล้ว
Resource
Planning for migrate on-premises to Microsoft Azure with Cloud Adoption Framework (CAF)
- Cloud Adoption Framework (CAF)
- เครื่องมือที่ Guide / แนะนำ Best Practices โดยมีการทำงานแบบ Life Cycle วน Loop ค่อยๆ Improve ไปเรื่อยๆ
- Define Strategy
- Workload ที่ย้ายไปเอาจุดเด่นของ Cloud อย่าง High Availability / Scalability / Elasticity (ปรับได้สะดวก เช่น เพิ่ม-ลด Instance / Agility / Geo-Distribution / Disaster Recovery ไปให้เกิด Business Outcome อย่างไร ?
- แต่ละระบบที่ย้ายขึ้นไป ต้องกำหนด
- Plan - คน ระบบ องค์กร มีความพร้อมใ้ช้ Cloud ไหม
- Ready
- Setup Landing Zone - พวก Infra พื้นฐานที่ต้องมี
- Adopt
- Migrate - ยกทั้งระบบขึ้นไป เอา VM เดิม Lift-Shift ขึ้นเลย แต่อาจจะไม่ได้ประโยชน์จาก Cloud เต็มที่
- Innovate - ปรับเปลี่ยนบสงอย่าง ให้เข้ากับสถาปัตย์กรรมที่เข้ากับ Cloud ได้
- Manage
- จัดการงาน Operation ต่างๆ การ Patch / Monitor
- Govern
- กำหนดกติกาการจัดการ รวมถึง Policy ต่าง เช่น Pattern การตั้งชื่อ
- Note: Step Plan / Ready / Adopt / Govern / Manage จะเป็นงานแบบ Iterative ค่อยๆวนทำซ้ำไป
- Initial Decision Checklist
- Step 1: Understand how Azure works
- เข้าใจทั้งองค์กรรวมถึงผู้บริหารด้วย
- Step 2: Understand initial Azure concepts
- รู้เข้าใจ terminology เฉพาะของ Azure เช่น Resource Group / Resource ต่างกันอย่างไร จะค่อยขยับเข้า Technical ไปเรื่อยๆ
- Step 3: Review the portfolio
- กลุ่มของ Workload ที่จะโยกย้ายขึ้นไป รวมถึงกา่รกำหนด Accountable Person (คนที่รับผิดชอบ) ไม่ใช่ IT อย่างเดียวนะ รวมถึง User ที่ใช้ระบบ Workload นั้นๆ ด้วย
- Step 4: Define portfolio-hierarchy depth to align the portfolio
- Workload ที่จะโยกย้ายขึ้น มีความสัมพันธ์อย่างไร เช่น ระบบ HR สัมพันธ์กับ Payroll ไหม มีการต่อ Database อะไรบ้าง
- Step 5: Establish a naming and tagging standard across the portfolio
- naming conversion - การตั้งชื่อให้กับ Resource ต่างๆ และ tagging ใน Azure Resource มีให้กำหนดเอาจัดกลุ่มดู Cost และปัญหาโลกแตกของการกำหนดตัวย่อย อันนี้ Azure ออก Guideline มาให้ครับ Recommended abbreviations for Azure resource types - Cloud Adoption Framework
- จะได้ติดตามและจัดการได้สะดวกตอน Go-live จริง
- Step 6: Create a resource organization design to implement the portfolio hierarchy
- ปรับโครงสร้างการทำงานขององต์กร ให้สอดคล้องกับ portfolio-hierarchy
- Step 7: Map capabilities, teams, and RACI to fundamental concepts
- RACI (responsible, accountable, consulted, and informed) diagram - accountable(คนที่มีหน้าที่รับผิดชอบ เช่นหัวหน้า) / responsible (ตัวตนคนที่ทำงาน)
- ลงมือทำ
- เริ่มจากศึกษาส่วน Necessary References จาก Microsoft Cloud Adoption Framework for Azure > Getting started(live.com) มันจะเริ่มจาก
- Cloud Adoption Framework (CAF)
- Initial Decision Checklist มี template ตัวอย่างให้ เช่น Portfolio / naming and tagging standard เป็นต้น
- ดูๆไปแล้ว เหมือนทำพวก Process Improvement เลย
Resource
- Define your cloud operating model - Cloud Adoption Framework | Microsoft Docs
- Get started: Document foundational alignment decisions - Cloud Adoption Framework | Microsoft Docs
- Tools and templates - Cloud Adoption Framework | Microsoft Docs
Planning and designing enterprise landing zone to support on-premises workload migration to Microsoft Azure
- ขยายจากหัวข้อที่แล้ว Cloud Adoption Framework (CAF) - ส่วน Ready-Landing Zone
- Azure Landing Zone คือ อะไร ?
- Landing Zone = Azure Subscription โดยแยก Subscription ตามแผนก/หน่วยงาน ซึ่งจะทำให้มี Landing Zone หลายจุด เช่น HR / Accounting โดยมีข้อดี -
- แยกบิล ชัดเจนใครใช้งานเยอะ
- scalable
- security
- modular
- หลังจากมี Landing Zone และมาเริ่ม (minimum ทำ 1-2 ให้พร้อมรับการทำ Migration ส่วน 3-5 ทำให้ระบบของเรายั่งยืน น่าจะคำนี้นะ
- Use networking service
- Set Identity Rules - Azure AD / RBAC
- Govern Environment
- Use Security Control
- Manage Environment
- Azure landing zone design principles
- Subscription democratization
- subscriptions as a unit of management แยกตามแผนก/หน่วย/App
- การ Control Policy จะใช้ Management Group มาครอบจัดการได้
- Policy-driven governance
- ใชั Azure Policy มาทำ Central Policy
- Single control and management plane
- คุมทุกอย่างด้วย Tools เดียว ใช้ Azure Portal มาจัดการ หากไปใช้ Third-Party อาจจะมี feature ที่ไม่ครบเท่าที่ Azure มี
- Application-centric service model
- มองการงานทำ Application เป็นหลัก ไม่ใช้ยกตาม Infra เดิมที่ On-Premise ทำ เช่น ของเดิม VM มีทั้ง Application + MSSQL อันใหม่ควรเป็น App Service แทน + Azure SQL ประมาณนี้
- Align with Azure-native design and roadmaps
- ออกแบบให้ตรงกับ Product ที่ Azure มี
- Azure landing zone Design Area
- Environment design areas
- แยก Subscription
- จัดการสิทธิ ขิงแต่ละ User ในการเข้าถึง Resource
- สถาปัตยกรรมของ Network ที่ใช้ มี VNET กี่อัน
- จัด Resource แต่ละอันว่าจะให้อยู่ภายใต้ Subscription ไหน
- Compliance design areas
- Security - ต้องวางเสริมจาก Environment design เพื่อเพิ่มความปลอดภัย
- Management
- Governance - auditing + Azure Policy
- Automation - DevOps จริงๆ ผมว่าพวก ARM Template น่าจะนับด้วย
- Design area process
- กระบวนการทำให้เกิดการตัดสินใจ แบบว่าจะจัดระบบที่ย้ายขึ้นมา Landing ตรง โดยดูจาก roles / functions ข้อจำกัดต่างๆ ของ scope boundaries ของมัน
- จากตรงนี้เห็นความสัมพันธ์ของ Landing Zone (Subscription) 8 Subscription ที่คุมจากชั้น Management Groups อีกที
- การจะแยก Subscription ต้องคุยภายในองค์กรกันก่อน ถ้ายังคิดไม่ออก มี Template ที่เตรียมไว้ Landing zone implementation options - Cloud Adoption Framework มาเริ่มต้นกันได้
Resource
- What is an Azure landing zone? - Cloud Adoption Framework | Microsoft Docs
- Azure landing zone design principles - Cloud Adoption Framework | Microsoft Docs
- Azure landing zone design areas - Cloud Adoption Framework | Microsoft Docs
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.