Bỏ qua để đến nội dung

Bảo mật

Các dự án được tạo bởi Nx Plugin for AWS bao gồm một số biện pháp kiểm soát bảo mật ngay từ đầu. Trang này cung cấp tổng quan về các biện pháp kiểm soát đó và liên kết đến các hướng dẫn liên quan để biết thêm chi tiết.

Các dự án hạ tầng được cấu hình với Checkov như một phần của target build, do đó cấu hình hạ tầng không an toàn sẽ làm build thất bại:

  • Các dự án CDK tổng hợp các template CloudFormation được quét bởi Checkov. Xem Security Testing để biết chi tiết.
  • Các dự án Terraform chạy Checkov trực tiếp trên code Terraform của bạn. Xem Terraform Projects.

Khi hạ tầng được cung cấp chặn một quy tắc Checkov, việc chặn được giới hạn cho tài nguyên cụ thể và được chú thích với lý do giải thích. Helper suppressRules được chia sẻ yêu cầu một lý do cho mỗi lần chặn, và chúng tôi khuyến nghị tuân theo cùng một thực hành trong code của riêng bạn. Xem Suppressing Checkov Checks.

Các dự án xây dựng container image (ví dụ: agent, MCP server và database migration image) bao gồm một target trivy quét các image để tìm các lỗ hổng HIGH và CRITICAL, thoát với mã khác không khi phát hiện. Xem Docker Bundling để biết chi tiết, bao gồm cách chặn các phát hiện bằng file .trivyignore.

Các workspace bao gồm các hook pre-commit git-secrets quét các file đã staged để tìm các mẫu thông tin xác thực AWS, ngăn chặn việc commit ngẫu nhiên các access key và các giá trị nhạy cảm khác. Xem phần Git Secrets của hướng dẫn workspace.

API, agent và MCP server sử dụng xác thực AWS IAM (SigV4) theo mặc định:

  • tRPC, FastAPI, và Smithy API mặc định sử dụng xác thực IAM, với Cognito và custom authorizer có sẵn như các tùy chọn. Custom authorizer stub được cung cấp từ chối các request theo mặc định.
  • AgentMCP server được triển khai lên Amazon Bedrock AgentCore Runtime sử dụng xác thực IAM (SigV4) theo mặc định, với xác thực Cognito dựa trên JWT như một tùy chọn.
  • Website auth generator cung cấp một Amazon Cognito user pool với xác thực đa yếu tố (MFA) được yêu cầu, chính sách mật khẩu mạnh và bảo vệ xóa được bật.

Hạ tầng được cung cấp mã hóa dữ liệu trong quá trình truyền tải và khi lưu trữ:

  • Website được phục vụ qua CloudFront với HTTP được chuyển hướng sang HTTPS, và một chính sách response header bao gồm HTTP Strict Transport Security (HSTS), Content Security Policy và các security header khác. Một WAF với các quy tắc được quản lý bởi AWS được liên kết với distribution.
  • Các bucket S3 chặn tất cả truy cập công khai, thực thi truy cập chỉ SSL thông qua bucket policy, được mã hóa (KMS với key rotation cho nội dung website), và gửi server access log đến các CloudWatch log group được mã hóa bằng customer-managed KMS key, nơi chúng có thể được truy vấn bằng Logs Insights và cảnh báo.
  • API access log được ghi vào các CloudWatch log group được mã hóa bằng customer-managed KMS key với rotation được bật.
  • Aurora database bật mã hóa lưu trữ với customer-managed KMS key, tạo thông tin xác thực trong AWS Secrets Manager (không bao giờ hardcode), và hỗ trợ rotation thông tin xác thực tự động.

Các CDK construct và Terraform module được cung cấp tuân theo đặc quyền tối thiểu:

  • Các construct expose các phương thức grant* (ví dụ: grantInvokeAccess trên API và agent, grantConnect trên database) để người dùng chỉ cấp quyền truy cập mà họ cần.
  • Các IAM policy trong hạ tầng được cung cấp được giới hạn cho các tài nguyên và hành động cụ thể. Khi một wildcard resource được yêu cầu bởi dịch vụ AWS (ví dụ: ecr:GetAuthorizationToken), nó được giới hạn cho các hành động đó và được giới hạn bằng các điều kiện khi được hỗ trợ.

License generator cấu hình quản lý license header tự động và kiểm tra license phụ thuộc so với danh sách cho phép các license được phê duyệt, giúp bạn phát hiện các phụ thuộc bắc cầu có vấn đề trước khi chúng được triển khai.

Bảo mật và tuân thủ là một trách nhiệm được chia sẻ. AWS mô tả điều này thông qua Shared Responsibility Model, phân biệt giữa bảo mật của cloud (trách nhiệm của AWS) và bảo mật trong cloud (trách nhiệm của bạn với tư cách là khách hàng).

Nx Plugin for AWS giúp bạn giải quyết các phần trong phía của bạn trong mô hình đó. Các generator của nó cung cấp nền tảng an toàn và mã hóa các thực hành tốt nhất của AWS trong phạm vi code mà chúng tạo ra — các biện pháp kiểm soát được mô tả ở trên. Điều này giảm nỗ lực cần thiết để xây dựng một cách an toàn, nhưng nó không chuyển quyền sở hữu bảo mật cho plugin.

Bạn sở hữu code được tạo vào workspace của bạn và vẫn chịu trách nhiệm về bảo mật của nó. Sau khi được cung cấp, code được tạo là của bạn để sửa đổi, mở rộng và vận hành, và nó phải được đối xử giống như bất kỳ code nào khác mà bạn viết.

Đặc biệt:

  • Phạm vi của plugin được giới hạn ở các generator của nó. Plugin không có kiến thức về logic nghiệp vụ của ứng dụng, phân loại dữ liệu, mô hình mối đe dọa hoặc nghĩa vụ quy định của bạn, và không thể đưa ra các quyết định phụ thuộc vào chúng.
  • Xác thực được cấu hình, nhưng ủy quyền thì không. API được bảo vệ bằng xác thực theo mặc định (ví dụ: IAM/SigV4), nhưng plugin không thể xác định principal được xác thực nào nên được phép thực hiện hành động nào trên tài nguyên nào. Ủy quyền chi tiết phụ thuộc vào logic nghiệp vụ của bạn và phải được thiết kế, triển khai và kiểm tra bởi bạn.
  • Code được tạo là điểm khởi đầu, không phải sản phẩm hoàn thiện. Khi bạn thêm chức năng, bạn đưa ra các cân nhắc bảo mật mà plugin không thể dự đoán — xác thực đầu vào, xử lý dữ liệu, quản lý secret, lựa chọn phụ thuộc và tích hợp với các hệ thống khác.

Theo đó, bạn nên xem xét code được tạo và các ứng dụng bạn xây dựng trên đó phù hợp với các chính sách bảo mật, tiêu chuẩn và quy trình xem xét của tổ chức của bạn, và áp dụng chúng vào cùng mô hình hóa mối đe dọa, kiểm tra bảo mật và cổng phê duyệt mà bạn áp dụng cho bất kỳ workload sản xuất nào. Các biện pháp kiểm soát được cung cấp bởi plugin được thiết kế để bổ sung cho các quy trình đó, không phải để thay thế chúng.