Lập trình bảo mật đám mây sử dụng trong thực tế (AWS, Python, Terraform)
Được cấu trúc để bạn có thể học các ngôn ngữ lập trình (Python, Terraform) cho đám mây. Bạn có thể tự mình tạo và áp dụng các công việc lặp lại đơn giản nhưng phiền toái, theo dõi khi nào và cách bạn đã triển khai, hay các chính sách riêng của công ty mà giải pháp hiện có không giải quyết được. Đặc biệt, bạn sẽ áp dụng kiến trúc bảo mật thông qua Terraform, ứng dụng IaC (Infrastructure as Code) phổ biến nhất, và thử tạo bảng điều khiển siêu đơn giản bằng Python!
653 học viên
Độ khó Cơ bản
Thời gian Không giới hạn

Tin tức
8 bài viết
Xin chào.
Đây là người chia sẻ kiến thức Cheon Kang-min.
Như đã thông báo trước đó, chúng tôi đã tiến hành tổ chức lại với mục đích cải thiện và thay đổi các bài giảng thô theo thời gian và tính đến hôm nay, việc tải lên các bài giảng quay phim mới đã hoàn tất.
Để giải thích ngắn gọn những gì đã thay đổi,
phần bổ sung
Thiết kế VPC Cidr và xây dựng Tường lửa mạng AWS
Tạo bảng điều khiển bảo mật với Steampipe + Streamlit
Trạng thái từ xa liên quan đến Terraform, phụ thuộc_on, v.v.
Những gì đã được cải thiện
Cải thiện mã lũy tiến bằng cách phát triển dựa trên boto3 thay vì liệt kê các hàm Python cụ thể
Các ví dụ và thực tiễn phong phú liên quan đến Terraform
Loại trừ những phần được đánh giá là không được sử dụng thường xuyên hoặc có vẻ như không liên quan trực tiếp đến bài giảng.
Các bộ phận đã được gỡ bỏ (dự kiến duy trì trong 6 tháng đến 1 năm)
Phần bài giảng hiện có
Tương tự như trên. Nếu bạn đã xem tất cả các bài giảng hiện có, bạn có thể đã quen thuộc với các phần Python và Terraform, vì vậy tôi khuyên bạn nên xem lại phần dự án.
Tôi hy vọng bạn sẽ hoàn thành tốt phần còn lại của năm 2024 và có một năm mới hạnh phúc vào năm 2025. Cảm ơn
Giấc mơ của Cheon Kang-min.
Xin chào.
Đây là người chia sẻ kiến thức Cheon Kang-min.
Khoảng một năm tám tháng đã trôi qua kể từ khi tôi đăng bài giảng.
Có một số thay đổi, và vì đây là bài giảng đầu tiên mình quay nên mình nghĩ sẽ cập nhật thêm video, tài liệu, nội dung bài giảng (Bây giờ nhìn lại mình thấy mình muốn nói với các bạn quá nhiều so với bản gốc. độ khó của bài giảng.) .)
Vì thế! Chúng tôi đang có kế hoạch cải tiến bài giảng!
[Phần được duy trì]
Các phần của chương trình giảng dạy hiện tại
Chi tiết về tiến độ có thể thay đổi.
[Phần cần xóa]
Lập trình Python
Đa quy trình
Tôi nghĩ nó không cần thiết vào lúc này
Nội dung liên quan đến GIL
Tôi nghĩ họ đã cố gắng giải thích quá nhiều trong một khoảng thời gian ngắn và điều đó có vẻ không cần thiết.
Lập trình địa hình
Giải thích về địa hình bằng IAM
Giải thích sẽ được thay thế bằng các chức năng khác
nội dung liên quan đến kiểm tra
[Các phần sẽ được thêm vào]
Thiết kế VPC cho kiến trúc 3 tầng
Kiến trúc mạng sử dụng Tường lửa mạng AWS
Chúng tôi dự định thay thế nó bằng một video được cải tiến hoàn toàn chậm nhất là trong năm nay. Vì mục đích này, chúng tôi mong muốn nhận được các cuộc khảo sát bổ sung.
Khảo sát tổ chức lại chương trình bảo mật đám mây ứng dụng trong thực tế
Chúng tôi sẽ đánh giá cao nếu bạn có thể để lại nhận xét thông qua liên kết ở trên (Yêu cầu đăng nhập, nhưng địa chỉ không được thu thập.)
Cảm ơn
Giấc mơ của Cheon Kang Min.
Xin chào. Đây là người chia sẻ kiến thức Cheon Kang-min.
Lần này, chúng tôi dự định phát hành một khóa học có tên “Bắt đầu với Docker và Container”. (Ngày khai trương chưa được xác định)
Theo đó, chúng tôi xin tổ chức sự kiện đăng ký học viên để bày tỏ lòng biết ơn tới những học viên đang tham gia các khóa học được liệt kê dưới đây.
Vui lòng kiểm tra nội dung bài giảng sẽ được phát hành thông qua biểu mẫu của Google và đăng ký bằng cách điền vào biểu mẫu. Các bài giảng bổ sung sẽ được cung cấp khi thời gian cho phép.
Tuy nhiên, xin lưu ý rằng khóa học sẽ không xuất hiện trong danh sách khóa học cho đến khi khóa học thực tế được phát hành.Chúng tôi sẽ luôn cố gắng cung cấp các bài giảng chất lượng.
Cảm ơn
Xin chào.
Đây là Kangmin Cheon, người hướng dẫn lập trình đám mây, người sử dụng nó trong thực tế.
Một tính năng được gọi là
provider-defined functionsđã được phát hành trong phiên bản Terraform 1.8.Nói một cách đơn giản, nó hỗ trợ các chức năng ở cấp độ nhà cung cấp. Nếu bạn nhìn vào ví dụ ngay lập tức,
terraform { required_providers { aws = { source = "hashicorp/aws" } } } provider "aws" {} # result: # { # "partition": "aws", # "service": "iam", # "region": "", # "account_id": "444455556666", # "resource": "role/example", # } output "role" { value = provider::aws::arn_parse("arn:aws:iam::444455556666:role/example") } # result: # { # "partition": "aws", # "service": "elasticloadbalancing", # "region": "us-east-2", # "account_id": "123456789012", # "resource": "loadbalancer/app/my-load-balancer/1234567890123456", # } output "elb" { value = provider::aws::arn_parse("arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456") }(Điên...)Vì đây là một tính năng mới được phát hành nên chắc chắn còn thiếu chức năng, nhưng có những trường hợp ngôn ngữ khai báo phải được sử dụng theo thủ tục thông qua các hàm tích hợp khác nhau (truy cập chỉ mục sau khi phân tách và lưu trữ cục bộ... ), vì vậy nó được hỗ trợ theo cách khai báo hơn. Điều này dường như đang xảy ra.
Đây là một tính năng rất thú vị nên nó rất đơn giản. Bạn nào muốn xem thì vào link nhé!
Khi nghĩ về tất cả các loại chức năng đang được tạo ra, tôi cảm thấy như mình đã được khen thưởng cho tất cả công việc tôi đã làm để tìm và triển khai các chức năng tích hợp sẵn. Chúng tôi dự định tìm hiểu thêm về nội dung, tạo một bài giảng riêng và tải nó lên!
Cảm ơn
Xin chào.
Đây là Kangmin Cheon, người hướng dẫn lập trình đám mây, người sử dụng nó trong thực tế.
Phiên bản Terraform 1.7 đã được phát hành. Thông báo liên quan có thể được tìm thấy ở đây .
Đã có một sự thay đổi lớn hơn tôi mong đợi (điều này khiến tôi căng thẳng hơn rất nhiều).Thay đổi thứ tự các mô-đun bị xóa sau khi thử nghiệm.
hiện có
tập tin trạng thái chính
Tệp trạng thái cho từng mô-đun (thứ tự ngược lại)
Do đó, khi viết bài kiểm tra bằng cách tham khảo mô-đun, nó phụ thuộc vào tài nguyên được tải trong tệp trạng thái chính
thay đổi
Xóa tệp trạng thái theo thứ tự ngược lại của khối chạy
Do đó, nó dựa vào tài nguyên bị xóa sớm
Ví dụ đơn giản

Trước đây không thể viết như trên nhưng có thể bắt đầu từ 1.7.
Mô phỏng (trong phiên bản beta)
Nói một cách đơn giản, đó là một hàm xác định và sử dụng các giá trị cụ thể mà không cần tạo/xóa/tham chiếu đến các nhà cung cấp, tài nguyên, dữ liệu hoặc mô-đun thực tế.
Theo kết quả đánh giá sơ bộ của chúng tôi, có vẻ như việc kiểm tra có thể được thực hiện nhanh hơn nhiều so với trước đây bằng cách chỉ cần tạo biểu mẫu được phân phối hoặc tạo dưới dạng dữ liệu mô phỏng và chèn nó.
Một ví dụ dưới đây:
# main.tftest.hcl mock_provider "aws" { override_data { target = module.credentials.data.aws_s3_object.data_bucket values = { body = "{\"username\":\"username\",\"password\":\"password\"}" } } } run "test" { assert { condition = jsondecode(local_file.credentials_json.content).username == "username" error_message = "incorrect username" } }Bạn có thể tạo kết quả từ các khối dữ liệu và kiểm tra nhanh chóng chúng thông qua các khối chạy.
Đánh giá về phiên bản 1.7
Tôi cảm thấy thực sự tồi tệ khi họ đã thay đổi logic thực sự quan trọng chỉ trong một phiên bản nhỏ. Tôi muốn thay mặt những người đã xem bài giảng của tôi và thực hiện các thay đổi dựa trên trạng thái xóa hiện tại gửi lời xin lỗi...
Vì những lý do trên + vì nó đang trong giai đoạn thử nghiệm nên tôi dự định sẽ bổ sung thêm nhiều nội dung hơn về Mocks trong tương lai khi nó trưởng thành và vững chắc hơn. Tuy nhiên, tôi nghĩ việc truyền lại nội dung đã phát hành là đúng đắn nên tôi đăng tin này.
Cảm ơn
Xin chào.
Đây là Kangmin Cheon, người hướng dẫn lập trình đám mây, người sử dụng nó trong thực tế.
Tôi đã quay và tải lên một video chi tiết hơn về Python GIL.
Trên thực tế, nếu bạn không cố gắng tạo một ứng dụng lớn(?) thông qua Python, bạn không cần phải lo lắng quá nhiều về nó, nhưng cần phải sửa những điều đã giải thích ở trên (để thuận tiện) và nếu bạn biết thêm chi tiết , bạn sẽ biết nên chọn mô-đun nào trong dự án. Tôi đã thêm nó vì tôi nghĩ nó sẽ giúp tôi hiểu tại sao nó hoạt động theo cách này.
Xin lưu ý.
Cảm ơnXin chào.
Đây là Kangmin Cheon, người hướng dẫn lập trình đám mây, người sử dụng nó trong thực tế.
Chúng tôi đã thêm một bài giảng về chức năng kiểm tra được thêm vào Terraform 1.6.
Các bổ sung chính như sau:
Mô tả ngắn gọn về các phương pháp thử nghiệm hiện có của Terraform.
Điều kiện tùy chỉnh Mô tả
Cú pháp cơ bản của file .tftest.hcl
Nội dung liên quan đến thử nghiệm (kiểm tra thành công/thất bại, v.v.)
Quản lý trạng thái trong quá trình kiểm tra, thực hiện/xóa lệnh
chiến lược thử nghiệm
Xin lưu ý.
Cảm ơnXin chào.
Đây là Kangmin Cheon, người hướng dẫn lập trình đám mây, người sử dụng nó trong thực tế.
Chúng tôi đã xuất bản bản tin mới công bố phiên bản Python/Terraform được sử dụng trong bài giảng.
[Trăn]
Python hiện được phát hành lên phiên bản 3.12. Tuy nhiên, (theo đánh giá rất chủ quan của tôi) tôi không nghĩ có gì cần bổ sung vào bài giảng hiện tại về các tính năng mới được bổ sung nên không có bản cập nhật.
Những thay đổi chính trong phiên bản 3.10 đến 3.12 như sau.Tăng tốc Python (nhưng không có viên đạn bạc) -> 3.11/3.12
Tuy nhiên, một số tác vụ nhất định có cảm giác nhanh hơn đáng kể.
Đã thêm và tăng cường nhiều chức năng liên quan đến loại -> 3.10 ~ 3.12
Chúng ta có nên đi theo hướng Java (Type)Script không?
Giới thiệu GIL cho từng phiên dịch -> 3.12
Liệu có một ngày nào đó chúng ta sử dụng đa luồng như các ngôn ngữ khác không?
Hiện tại, nó chỉ khả dụng thông qua API Python C.
Liệu tốc độ và hiệu quả của các thư viện viết bằng C thuần túy có được cải thiện (nếu được cải thiện)?
Đó là về nó. Tất nhiên, nhiều thứ khác đã không được dùng nữa và được cải thiện (hoặc được thêm vào), nhưng dường như không có gì quan trọng đến mức bạn cần biết ngay.
Ngoài ra, AWS Lambda hiện hỗ trợ lên tới 3.11.
Trong mọi trường hợp, kế hoạch hiện tại là bổ sung thêm các bài giảng liên quan khi Python 3.13 được phát hành.
[Địa hình]
Terraform cũng bổ sung thêm nhiều tính năng khác nhau thông qua các phiên bản 1.2 đến 1.5.
Tùy chọn có thể được sử dụng trong biến -> 1.3
Trong Python bạn có thể sử dụng một cái gì đó như obj.get("key", "default")
Terraform_data mặc định thay thế null_resource -> 1.4
Có thể được thay thế mà không cần tải xuống nhà cung cấp bổ sung
Có thể nhập thông qua mã -> 1.5
Xác minh nâng cao thông qua khối kiểm tra -> 1.5
Tuy nhiên, vì tất cả các hàm trên đều hoạt động trong thời gian chạy (khi được thực thi) nên tôi cảm thấy không cần thiết phải giới thiệu chi tiết.
Các tính năng liên quan đến thử nghiệm cuối cùng đã được phát hành trong phiên bản Terraform 1.6 . Các thử nghiệm hiện tại 1) không thể tách rời khỏi thời gian chạy hoặc 2) chỉ có thể thực hiện được thông qua các nguồn mở khác nhau. Tuy nhiên, với việc phát hành tính năng này, giờ đây việc thử nghiệm có thể thực hiện được ngay cả khi không sử dụng nguồn mở riêng biệt.
Chúng tôi dự định cập nhật tính năng này bằng một bài giảng vào tuần tới. Xin lưu ý.
Cảm ơn

