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ố kiểm soát bảo mật ngay từ đầu. Trang này cung cấp tổng quan về các 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 mã Terraform của bạn. Xem Terraform Projects.

Khi hạ tầng được cung cấp bỏ qua một quy tắc Checkov, việc bỏ qua được giới hạn trong 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 việc bỏ qua, và chúng tôi khuyến nghị tuân theo cùng một thực hành trong mã của bạn. Xem Suppressing Checkov Checks.

Các dự án xây dựng container image (ví dụ: agents, MCP servers và database migration images) bao gồm một target trivy quét các image để tìm các lỗ hổng HIGH và CRITICAL trước khi chúng được triển khai, làm build thất bại khi phát hiện. Xem Docker Bundling để biết chi tiết, bao gồm cách bỏ qua các phát hiện với tệp .trivyignore.

Các workspace bao gồm các pre-commit hook git-secrets quét các tệp được 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, agents và MCP servers sử dụng xác thực AWS IAM (SigV4) theo mặc định:

  • tRPC, FastAPISmithy API mặc định sử dụng xác thực IAM, với Cognito và custom authorizers có sẵn như các tùy chọn. Custom authorizer stub được cung cấp từ chối các yêu cầu theo mặc định.
  • AgentsMCP servers đượ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ữ:

  • Các 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 headers bao gồm HTTP Strict Transport Security (HSTS), Content Security Policy và các security headers 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 S3 bucket chặn tất cả quyền truy cập công khai, thực thi quyền truy cập chỉ SSL thông qua bucket policies, đượ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 các KMS key do khách hàng quản lý, nơi chúng có thể được truy vấn bằng Logs Insights và cảnh báo.
  • Các API access log được ghi vào các CloudWatch log group được mã hóa bằng các KMS key do khách hàng quản lý với rotation được bật.
  • Aurora databases bật mã hóa lưu trữ với KMS key do khách hàng quản lý, 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à agents, grantConnect trên databases) để 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 trong các tài nguyên và hành động cụ thể. Khi một tài nguyên wildcard được yêu cầu bởi dịch vụ AWS (ví dụ: ecr:GetAuthorizationToken), nó được giới hạn trong 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 dựa trên 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à trách nhiệm chung. AWS mô tả điều này thông qua Mô hình Trách nhiệm Chung, phân biệt giữa bảo mật của đám mây (trách nhiệm của AWS) và bảo mật trong đám mây (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 bảo mật và mã hóa các thực hành tốt nhất của AWS trong phạm vi mã mà chúng tạo ra — các 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 mã đượ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, mã được tạo là của bạn để sửa đổi, mở rộng và vận hành, và nó phải được xử lý giống như bất kỳ mã nào khác mà bạn viết.

Cụ thể:

  • Phạm vi của plugin chỉ 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 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 những principal đã xác thực nào nên được phép thực hiện những thao tác nào trên những 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.
  • Mã đượ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 vào 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ý bí mật, 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 mã đượ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 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ỳ khối lượng công việc sản xuất nào. Các kiểm soát được cung cấp bởi plugin nhằm bổ sung cho các quy trình đó, không phải thay thế chúng.