Skip to main content

Command Palette

Search for a command to run...

Syllabus học Boundary

Updated
20 min readView as Markdown

TUẦN 0 - Tư duy nền tảng

Ngày 1: Boundary là gì và giải quyết bài toán gì

  • Mục tiêu: Hiểu vị trí Boundary trong hệ sinh thái HashiCorp và so với VPN/bastion host/PAM truyền thống.

  • Nội dung:

    • Lý thuyết: Boundary là "identity-aware proxy" cho least-privileged, just-in-time access. Triết lý: Boundary lo access (ai được kết nối tới đâu), Vault lo secrets (credential động) - Boundary không thay thế Vault, hai sản phẩm bổ trợ nhau.

    • So sánh: VPN/bastion (trust theo network/IP) vs Boundary (trust theo identity, session có thời hạn, ghi log/record được).

    • 4 giai đoạn core workflow: User AuthenticationGranular AuthorizationDynamic catalog selectionAccess.

    • Thực hành: Cài Boundary dev mode (boundary dev), login, thử boundary connect tới 1 target demo.

  • Mini-Project: Không, warm-up.

TUẦN 1 - Domain Model & Core Concepts

Ngày 2: Scopes - đơn vị tổ chức & blast radius

  • Mục tiêu: Hiểu cấu trúc phân cấp Global → Organization → Project.

  • Nội dung:

    • Lý thuyết: Scope là "container" cho resource và permission, mỗi scope có permission boundary cô lập → giới hạn blast radius. Global: admin cấu hình toàn hệ thống. Org: nên chia theo business unit. Project: chia theo sản phẩm/ứng dụng.

    • Thực hành: Tạo 1 org scope + 2 project scope, quan sát cây scope qua boundary scopes list.

Ngày 3: IAM - Users, Groups, Auth Methods, Accounts

  • Mục tiêu: Hiểu cách Boundary định danh và xác thực principal.

  • Nội dung:

    • Lý thuyết: Principal = User hoặc Group. Auth method hỗ trợ password, OIDC, LDAP. Account là bộ credential cụ thể trong 1 auth method, gắn với 1 user; 1 user có thể có nhiều account từ nhiều auth method.

    • Thực hành: Tạo password auth method, account + user, login thử bằng CLI.

Ngày 4: Access Management - Actions, Grants, Roles

  • Mục tiêu: Hiểu RBAC 3 tầng của Boundary.

  • Nội dung:

    • Lý thuyết: Action là hành vi trên resource. Grant = action(s) + resource(s) được phép (grant string id=...;type=...;actions=...). Role = tập hợp grant, gán cho principal, thuộc 1 scope duy nhất.

    • Thực hành: Viết grant string giới hạn 1 group chỉ read,list target trong 1 project, gán vào role, verify.

Ngày 5: Host Resources - Host, Host Catalog, Host Set

  • Mục tiêu: Hiểu cách Boundary tổ chức và khám phá tài nguyên mạng.

  • Nội dung:

    • Lý thuyết: Host = computing element có network address. Host catalog chứa host + host set - loại static hoặc plugin-based (dynamic). Host set = nhóm host tương đương cho access control.

    • Thực hành: Tạo static host catalog + host set với 2-3 host demo.

Ngày 6: Targets - address-based vs host-sources-based

  • Mục tiêu: Hiểu cách user "thấy" và kết nối tới resource.

  • Nội dung:

    • Lý thuyết: Target with address (đơn giản, host đơn lẻ) vs target with host sources (linh hoạt, khuyến nghị khi nhiều host/host động).

    • Thực hành: Tạo 1 target address-based, 1 target host-set-based, so sánh.

Ngày 7: Credentials - Store, Library, Brokering vs Injection

  • Mục tiêu: Hiểu cách Boundary cấp credential mà user không cần thấy secret.

  • Nội dung:

    • Lý thuyết: Credential store lưu/lấy/sinh credential. Credential library cấp credential cùng loại/access level từ 1 store. Brokering (trả credential về client) vs injection (Boundary tự inject, user không thấy secret).

    • Thực hành: Tạo static credential store, gắn vào target, connect và quan sát brokering vs injection.

Ngày 8: Aliases & Sessions (khái niệm)

  • Mục tiêu: Hiểu 2 resource còn lại trong domain model.

  • Nội dung:

    • Lý thuyết: Alias là chuỗi DNS-like trỏ tới resource đích. Session = tập hợp connection giữa user và host, có thể mang credential, có thời hạn.

    • Thực hành: Tạo alias cho target ở Ngày 6, connect bằng alias.

Ngày 9: Ôn tập Tuần 1

  • Mini-Project: Dựng 1 cây scope (1 org, 2 project) + RBAC (2 role khác quyền) + 1 target host-set + 1 credential store injection + 1 alias, verify bằng 2 user khác quyền.

TUẦN 2 - Kiến trúc & Internals: Controller, Worker, State

Ngày 10: Kiến trúc tổng thể - Control plane vs Data plane

  • Mục tiêu: Phân biệt Controller và Worker.

  • Nội dung:

    • Lý thuyết: Controller = control plane - API, state (Postgres), auth/authorization. Worker = data plane - proxy traffic thực tế, không lưu state lâu dài.

    • Thực hành: Setup 1 controller + 1 worker local, quan sát log giao tiếp.

Ngày 11: Controller Internals - Repository Layer & State Model

  • Mục tiêu: Hiểu cách Controller thực sự đọc/ghi state, đủ để debug các lỗi liên quan tới data.

  • Nội dung:

    • Lý thuyết: Luồng nội bộ Controller → Repository Layer → Postgres - Repository layer đóng vai trò domain logic + validate trước khi chạm DB; transaction model đảm bảo mỗi thay đổi resource (vd tạo target + gắn host set) atomic; optimistic locking (version field) tránh ghi đè khi 2 request sửa cùng resource đồng thời; resource hierarchy trong DB phản chiếu đúng cây scope đã học ở Tuần 1.

    • Thực hành: Kết nối Postgres backend (dev mode), xem schema bảng chính, thử tạo 2 request sửa cùng 1 resource gần như đồng thời để quan sát version conflict.

Ngày 12: Worker Lifecycle Internals

  • Mục tiêu: Hiểu đầy đủ vòng đời 1 worker và source code liên quan.

  • Nội dung:

    • Lý thuyết: Vòng đời Register → Authorize → Session Receive → Proxy → Terminate; worker định kỳ gửi status về controller (giống fingerprint ở các sản phẩm khác) để controller biết worker nào khả dụng cho session mới; source code tham khảo internal/worker/handlers (xử lý request/status) và internal/worker/proxy (logic proxy traffic thực tế).

    • Thực hành: Theo dõi log worker qua từng giai đoạn lifecycle khi mở 1 session mới, đối chiếu với sơ đồ lý thuyết.

Ngày 13: PKI-based Worker Registration

  • Mục tiêu: Hiểu cách worker tự đăng ký an toàn với controller.

  • Nội dung:

    • Lý thuyết: Worker dùng PKI-based auth - tự sinh keypair, gửi registration request, controller xác nhận; giúp scale worker mà không cần phân phối secret tĩnh (khác cơ chế KMS-based auth cũ).

    • Thực hành: Đăng ký thêm 1 worker mới bằng PKI-based auth, verify qua boundary workers list.

Ngày 14: Multi-hop Sessions & Ingress/Egress Workers

  • Mục tiêu: Hiểu cách Boundary kết nối tới target nằm sâu trong mạng private.

  • Nội dung:

    • Lý thuyết: Multi-hop session cho phép chuỗi worker (ingress → intermediate → egress) relay traffic qua nhiều network zone không cần mở firewall inbound; worker tags/filters chọn đúng worker qua worker_filter/egress_worker_filter/ingress_worker_filter.

    • Thực hành: Giả lập 2 mạng tách biệt, dùng multi-hop worker để connect tới target ở mạng "sâu" hơn.

Ngày 15: Network Internals - Proxy Flow

  • Mục tiêu: Hiểu Boundary xử lý traffic ở tầng network/TLS, đủ để trả lời "ai thấy gì" trong 1 session.

  • Nội dung:

    • Lý thuyết: Luồng proxy đầy đủ Client TCP connection → TLS tới worker → Session tunnel (worker xác thực session token) → Worker mở connection riêng tới target → Connection multiplexing khi có nhiều connection trong cùng 1 session; điểm mấu chốt: Controller cấp session credential nhưng không nằm trên đường truyền traffic; Worker là nơi duy nhất thấy traffic thực tế (và có thể decrypt nếu TLS terminate tại đó); target có thể yêu cầu TLS riêng (double-hop TLS) tuỳ giao thức.

    • Thực hành: Dùng tcpdump/ss trên máy worker khi 1 session đang chạy để quan sát kết nối thực tế, đối chiếu với sơ đồ lý thuyết.

Ngày 16: Session Authorization Flow - toàn bộ chuỗi

  • Mục tiêu: Nắm được flow quan trọng nhất của Boundary từ đầu đến cuối trong 1 bức tranh duy nhất.

  • Nội dung:

    • Lý thuyết: Chuỗi đầy đủ User → OIDC (hoặc auth method khác) → Account → (Managed Group nếu có) → Role → Grant → Target → Session; ở mỗi bước, Controller kiểm tra 1 điều kiện khác nhau (xác thực danh tính → map principal → resolve permission → tìm target hợp lệ → cấp session); hiểu rõ chuỗi này giúp debug cực nhanh khi user báo "không connect được" (lỗi có thể nằm ở bất kỳ mắt xích nào).

    • Thực hành: Vẽ lại sơ đồ flow này cho chính hệ thống đã dựng ở Ngày 9, đánh dấu từng bước tương ứng resource nào trong Boundary; cố tình phá 1 mắt xích (vd xoá grant) và xác định lỗi trả về tương ứng bước nào.

Ngày 17: Deployment Topologies & HA Architecture

  • Mục tiêu: So sánh hướng triển khai và hiểu Boundary chịu tải/chịu lỗi ra sao.

  • Nội dung:

    • Lý thuyết: HCP Boundary (managed control plane, tự chạy private worker, có auto-update/DR/push-button deploy) vs Enterprise self-managed (full parity, tự vận hành controller + Postgres + worker) - tóm tắt nhanh khác biệt chủ yếu ở mức độ tự động hoá vận hành, không phải năng lực bảo mật cốt lõi. HA: nhiều controller sau load balancer cùng trỏ 1 Postgres HA, nhiều worker theo network zone; controller stateless về session nên scale ngang dễ.

    • Thực hành: Vẽ sơ đồ kiến trúc HA (2 controller + Postgres HA + 3 worker theo 3 zone) cho 1 hệ thống giả định.

Ngày 18: Source Code Reading có định hướng

  • Mục tiêu: Có lộ trình đọc code Boundary hiệu quả cho ai muốn đi sâu hơn mức vận hành.

  • Nội dung: Thứ tự đọc: internal/iam (domain model: scope, user, role, grant) → internal/auth (auth method, OIDC/LDAP/password logic) → internal/session (session lifecycle, authorization) → internal/worker (lifecycle, proxy) → internal/controller (API handlers, gRPC giữa controller-worker).

  • Mini-Project: Đọc internal/iaminternal/session, viết note đối chiếu với sơ đồ Session Authorization Flow ở Ngày 16.

Ngày 19: Ôn tập Tuần 2

  • Mini-Project: Từ hệ thống Ngày 9, thêm 1 worker multi-hop, verify toàn bộ Session Authorization Flow qua log thực tế của cả Controller lẫn Worker.

TUẦN 3 - Authentication & Identity

Ngày 20: Auth Methods Deep-dive

  • Mục tiêu: Nắm chi tiết từng loại auth method.

  • Nội dung:

    • Lý thuyết: password (native, bootstrap/demo); oidc (delegate IDP ngoài); ldap (Active Directory truyền thống). So sánh use case và giới hạn.

    • Thực hành: Cấu hình thêm 1 LDAP auth method trỏ tới LDAP server demo (hoặc mock).

Ngày 21: OIDC Integration với IDP thực tế

  • Mục tiêu: Setup SSO thực chiến.

  • Nội dung:

    • Lý thuyết: Luồng OIDC: redirect → IDP xác thực → callback với ID token → Boundary map claim thành account/user.

    • Thực hành: Tích hợp OIDC với 1 IDP miễn phí (Okta dev/Auth0/Keycloak), login qua SSO.

Ngày 22: Managed Groups

  • Mục tiêu: Tự động hoá gán quyền theo nhóm từ IDP.

  • Nội dung:

    • Lý thuyết: Managed group gom account dựa trên claim từ auth method backend - dùng trực tiếp làm principal trong role.

    • Thực hành: Tạo managed group filter theo claim, gán role, verify user trong nhóm IDP tự động có quyền.

Ngày 23: Multi-account Users & SSO nâng cao

  • Mục tiêu: Xử lý tình huống 1 người có nhiều danh tính.

  • Nội dung: Lý thuyết: 1 user có thể liên kết account từ nhiều auth method - hữu ích khi migrate IDP hoặc có tài khoản service riêng.

Ngày 24: Ôn tập Tuần 3

  • Mini-Project: OIDC SSO đầy đủ + managed group tự động cấp quyền theo team, không thao tác thủ công nào ở Boundary sau setup.

TUẦN 4 - Cấu hình Access nâng cao

Ngày 25: Configure Hosts - Dynamic Host Catalogs

  • Mục tiêu: Tự động hoá discovery tài nguyên cloud.

  • Nội dung:

    • Lý thuyết: Plugin-based host catalog (AWS/Azure/GCP) tự động quét/đồng bộ instance theo filter (tag, region...).

    • Thực hành: Cấu hình dynamic host catalog AWS (sandbox), filter theo tag, verify host tự xuất hiện.

Ngày 26: Configure Targets - đa loại giao thức

  • Mục tiêu: Mở rộng ra ngoài SSH/TCP đơn giản.

  • Nội dung:

    • Lý thuyết: Target hỗ trợ TCP, SSH, RDP, database, Kubernetes; mỗi loại xử lý credential/injection khác nhau.

    • Thực hành: Tạo target RDP và database, thử connect với credential injection.

Ngày 27: Kubernetes Access Patterns

  • Mục tiêu: Áp dụng Boundary cho use case ngày càng phổ biến - truy cập Kubernetes API riêng tư.

  • Nội dung:

    • Lý thuyết: Pattern Developer → Boundary → Private Kubernetes API giúp không cần expose K8s API server ra internet hay quản lý kubeconfig tĩnh; Boundary proxy traffic tới K8s API endpoint (EKS/RKE/OpenShift private endpoint), kết hợp Vault để cấp short-lived K8s token thay vì static kubeconfig.

    • Thực hành: Tạo target trỏ tới 1 private K8s API endpoint (hoặc mô phỏng bằng cluster local qua worker riêng), verify kubectl hoạt động qua Boundary session.

Ngày 28: Vault Integration cho Credentials

  • Mục tiêu: Đạt true passwordless bằng dynamic secret.

  • Nội dung:

    • Lý thuyết: Boundary dùng Vault làm credential store, lấy dynamic credential (vd DB credential từ Vault Database Secrets Engine) cho từng session, tự thu hồi khi session kết thúc.

    • Thực hành: Cấu hình Vault credential store + credential library, gắn vào target, verify credential sinh mới mỗi session.

Ngày 29: Credential Injection vs Brokering

  • Mục tiêu: Chọn đúng cơ chế theo yêu cầu bảo mật.

  • Nội dung: Lý thuyết: Injection phù hợp khi cần user tuyệt đối không thấy secret; brokering phù hợp khi ứng dụng/tool phía client cần tự cầm credential.

  • Thực hành: So sánh trải nghiệm 2 chế độ trên cùng target.

Ngày 30: Transparent Sessions & Client Agent

  • Mục tiêu: Hiểu trải nghiệm "không cần biết đang dùng Boundary".

  • Nội dung:

    • Lý thuyết: Client Agent chạy nền, tự intercept kết nối tới alias/target quen thuộc và route qua Boundary session dựa trên client cache.

    • Thực hành: Cài Client Agent, connect tới alias qua công cụ quen thuộc (vd ssh thẳng).

Ngày 31: Ôn tập Tuần 4

  • Mini-Project: Target database + Vault dynamic credential + injection, thêm 1 dynamic host catalog AWS và 1 target Kubernetes, verify toàn chuỗi tự động.

TUẦN 5 - Sessions, Performance, Monitoring & Compliance

Ngày 32: Session Lifecycle & Session Connections

  • Mục tiêu: Hiểu chi tiết vòng đời 1 session.

  • Nội dung:

    • Lý thuyết: Session có trạng thái pending → active → cancelling → terminated; 1 session có thể chứa nhiều connection; admin có thể cancel session để thu hồi quyền ngay lập tức.

    • Thực hành: Mở session, dùng boundary sessions cancel từ admin, quan sát client bị ngắt.

Ngày 33: Session Recording Architecture

  • Mục tiêu: Hiểu kiến trúc ghi session, không chỉ cách bật tính năng.

  • Nội dung:

    • Lý thuyết: Session recording lưu dưới dạng cấu trúc thư mục trong storage bucket (external object store); storage policy định nghĩa retention/lifecycle; kiến trúc ghi diễn ra ở tầng Worker (nơi thấy traffic thực) rồi đẩy asynchronously lên storage bucket, không làm chậm session đang chạy; đây là tính năng chỉ có ở HCP Plus/Enterprise Plus.

    • Thực hành (nếu có tier phù hợp): Cấu hình storage bucket, bật recording cho 1 target, review lại session đã ghi.

Ngày 34: Performance & Scale Planning

  • Mục tiêu: Trả lời câu hỏi production rất hay gặp: "cụm cần bao nhiêu controller/worker cho X user?"

  • Nội dung:

    • Lý thuyết: Các yếu tố cần cân nhắc khi scale từ 100 → 1,000 → 10,000 user: controller sizing (CPU/memory theo số request API đồng thời, chủ yếu bottleneck ở Postgres connection pool), worker sizing (băng thông + số session đồng thời proxy qua, bottleneck ở network throughput chứ không phải CPU), Postgres là điểm nghẽn chung nhất ở quy mô lớn (connection limit, transaction throughput) nên cần connection pooling (PgBouncer) và theo dõi sát; concurrent sessions ảnh hưởng trực tiếp tới số worker cần thiết theo network zone.

    • Thực hành: Ước lượng sizing cho 1 kịch bản giả định (vd 2,000 user, 500 session đồng thời cao điểm), đề xuất số controller/worker + cấu hình Postgres tương ứng.

Ngày 35: Monitor Access - Audit Logs & Event Streaming

  • Mục tiêu: Giám sát truy cập theo thời gian thực.

  • Nội dung:

    • Lý thuyết: Audit log ghi mọi request API; event streaming đẩy log ra SIEM ngoài (Splunk, Datadog...) để cảnh báo real-time.

    • Thực hành: Bật audit logging, thử vài action, review log sinh ra.

Ngày 36: Audit & Compliance sâu hơn

  • Mục tiêu: Hiểu Boundary hỗ trợ các khung compliance phổ biến thế nào.

  • Nội dung: Lý thuyết: Ánh xạ tính năng Boundary vào yêu cầu compliance thường gặp - PCI-DSS (least-privileged access, session logging cho hệ thống chứa dữ liệu thẻ), SOC2 (audit trail đầy đủ ai truy cập gì khi nào, access review định kỳ qua role/grant), ISO27001 (quản lý access lifecycle, thu hồi quyền tức thời qua session cancel); session recording (nếu có tier) là bằng chứng mạnh nhất cho auditor.

Ngày 37: Cloud-native Access Patterns

  • Mục tiêu: Áp dụng Boundary đúng cách trong kiến trúc cloud thực tế.

  • Nội dung: Lý thuyết: Pattern phổ biến theo từng cloud - AWS: Boundary → Vault (dynamic secret) → RDS/EC2 kết hợp dynamic host catalog theo tag; Azure: tương tự với Azure AD làm OIDC provider + dynamic host catalog Azure; GCP: kết hợp Workload Identity của GCP với Vault; điểm chung: Boundary luôn đứng giữa user và resource, Vault luôn đứng giữa Boundary và credential thực.

Ngày 38: Ôn tập Tuần 5

  • Mini-Project: Bản sizing + kiến trúc giám sát/compliance hoàn chỉnh cho 1 hệ thống giả định 2,000 user, kèm mapping tính năng Boundary vào ít nhất 1 khung compliance cụ thể.

TUẦN 6 - Security & Operations

Ngày 39: Secure Boundary - TLS & KMS

  • Mục tiêu: Bảo mật giao tiếp và encryption-at-rest.

  • Nội dung:

    • Lý thuyết: TLS giữa client-controller và controller-worker; KMS (Vault Transit hoặc cloud KMS) mã hoá dữ liệu nhạy cảm trong Postgres.

    • Thực hành: Cấu hình KMS block trỏ Vault Transit/AWS KMS, verify controller khởi động thành công.

Ngày 40: Deploy Boundary - Self-managed HA Setup

  • Mục tiêu: Triển khai thực tế cụm production tự quản lý.

  • Nội dung: Thực hành: Deploy 2 controller + Postgres HA + 2 worker bằng Terraform/Docker Compose, verify LB phân phối đúng, worker vẫn hoạt động khi 1 controller down.

Ngày 41: Upgrade Boundary

  • Mục tiêu: Nâng cấp version không downtime.

  • Nội dung: Lý thuyết: Rolling upgrade controller trước (giữ ít nhất 1 controller sống), sau đó worker; kiểm tra compatibility matrix.

Ngày 42: Disaster Recovery

  • Mục tiêu: Chuẩn bị phương án phục hồi khi có sự cố nghiêm trọng.

  • Nội dung: Lý thuyết: Backup/restore Postgres state, recovery KMS key để phục hồi quyền truy cập dữ liệu mã hoá; ở HCP, DR phần lớn tự động hoá (managed); ở self-managed cần tự xây quy trình backup Postgres định kỳ + test restore + lưu trữ recovery KMS key an toàn tách biệt khỏi cụm chính.

  • Thực hành: Backup Postgres, giả lập mất cụm, restore và verify Boundary hoạt động lại đầy đủ.

Ngày 43: Enterprise Features

  • Mục tiêu: Có bức tranh đầy đủ về những gì Enterprise/HCP thêm so với OSS.

  • Nội dung: Lý thuyết: Tổng hợp lại - Session recording architecture (Ngày 33), Worker filtering nâng cao (filter phức tạp hơn theo nhiều tag/attribute kết hợp, ưu tiên worker theo latency), HCP deployment model (control plane managed, chỉ cần vận hành private worker), DR automation (backup/restore tự động, không cần tự script). Giúp ra quyết định đúng giữa OSS/Enterprise/HCP theo nhu cầu tổ chức.

Ngày 44: Troubleshooting - Common Error Messages

  • Mục tiêu: Debug nhanh các lỗi thường gặp.

  • Nội dung:

    • Lý thuyết: Lỗi permission denied (grant sai), worker không reachable (network/firewall/PKI registration), session bị treo (credential store lỗi kết nối Vault), lỗi API do version mismatch.

    • Thực hành: Cố tình gây 2-3 lỗi và tự debug bằng log + tài liệu "Common error messages", đối chiếu với Session Authorization Flow (Ngày 16) để xác định lỗi rơi vào mắt xích nào.

Ngày 45: Ôn tập Tuần 6

  • Mini-Project: Runbook upgrade cụm 2-controller không downtime + quy trình backup/restore đã test + checklist xử lý 3 lỗi thường gặp nhất.

TUẦN 7 - Automation & Ecosystem

Ngày 46: Terraform Boundary Provider

  • Mục tiêu: IaC hoá toàn bộ cấu hình Boundary.

  • Nội dung:

    • Lý thuyết: Terraform provider quản lý hầu hết resource domain model - version control cấu hình IAM/access thay vì click tay.

    • Thực hành: Viết Terraform apply toàn bộ setup từ Ngày 9 bằng code.

Ngày 47: CLI, API & Go SDK Automation

  • Mục tiêu: Tự động hoá vượt ra ngoài Terraform cho tác vụ vận hành/runtime.

  • Nội dung:

    • Lý thuyết: HTTP API cho phép build tool nội bộ (tự cấp quyền tạm thời khi incident, tự cancel session khi phát hiện bất thường); Go SDK khi cần tích hợp sâu vào hệ thống Go nội bộ.

    • Thực hành: Viết script gọi API tạo role tạm thời, gán quyền, tự thu hồi sau X phút - mô phỏng just-in-time access elevation.

Ngày 48: CI/CD Integration Patterns

  • Mục tiêu: Đưa Boundary vào pipeline tự động.

  • Nội dung: Thực hành: Pipeline CI/CD dùng Boundary connect tới môi trường private khi cần migration/deploy, request session ngắn hạn qua CLI/API trong job, tự hết hạn sau khi job xong.

Ngày 49: Ôn tập Tuần 7

  • Mini-Project: Toàn bộ hạ tầng Boundary quản lý bằng Terraform trong 1 repo, kèm 1 script just-in-time access elevation qua API.

TUẦN 8 - Capstone

Ngày 50: Capstone Project - Triển khai Boundary Production hoàn chỉnh

Yêu cầu:

  1. Kiến trúc HA: 2+ controller sau load balancer, Postgres HA (có connection pooling), worker triển khai theo tối thiểu 2 network zone với ít nhất 1 chuỗi multi-hop.

  2. IAM đầy đủ: cây scope, SSO qua OIDC với 1 IDP thực, managed group tự động cấp quyền theo team.

  3. Access resources: dynamic host catalog cloud, target đa giao thức (SSH + database + Kubernetes), ít nhất 1 target address-based.

  4. Credential: Vault credential store với dynamic secret + injection cho true passwordless.

  5. Bảo mật: TLS toàn bộ, KMS ngoài, worker PKI-based auth.

  6. Giám sát & Compliance: audit logging + event streaming ra hệ thống ngoài; mapping tính năng đã dùng vào ít nhất 1 khung compliance (SOC2/PCI-DSS/ISO27001); (nếu có tier) session recording cho 1 target nhạy cảm.

  7. Vận hành: runbook upgrade không downtime, backup/restore Postgres đã test, bản sizing ước lượng cho quy mô mục tiêu (vd 2,000 user).

  8. Automation: toàn bộ cấu hình bằng Terraform, có script just-in-time access elevation qua API.

  9. Internals: tài liệu hoá Session Authorization Flow của chính hệ thống capstone (sơ đồ tự vẽ, không copy lý thuyết), kèm ghi chú đã đọc qua source internal/iam, internal/session.

  10. Troubleshooting: tài liệu hoá 3 sự cố phổ biến nhất đã tự tạo và tự xử lý được.

Knowledge

Part 1 of 50