inflearn logo

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!

(4.9) 52 đánh giá

653 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Python
Python
Terraform
Terraform
AWS
AWS
devsecops
devsecops
Python
Python
Terraform
Terraform
AWS
AWS
devsecops
devsecops

Tin tức

8 bài viết

  • rex님의 프로필 이미지

    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,

    1. phần bổ sung

      1. Thiết kế VPC Cidr và xây dựng Tường lửa mạng AWS

      2. Tạo bảng điều khiển bảo mật với Steampipe + Streamlit

      3. Trạng thái từ xa liên quan đến Terraform, phụ thuộc_on, v.v.

    2. Những gì đã được cải thiện

      1. 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ể

      2. Các ví dụ và thực tiễn phong phú liên quan đến Terraform

      3. 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.

    3. Các bộ phận đã được gỡ bỏ (dự kiến ​​duy trì trong 6 tháng đến 1 năm)

      1. 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.

    0
  • rex님의 프로필 이미지

    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ì]

    1. Các phần của chương trình giảng dạy hiện tại

      1. Chi tiết về tiến độ có thể thay đổi.

    [Phần cần xóa]

    1. Lập trình Python

      1. Đa quy trình

        1. Tôi nghĩ nó không cần thiết vào lúc này

      2. Nội dung liên quan đến GIL

        1. 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.

    2. Lập trình địa hình

      1. Giải thích về địa hình bằng IAM

        1. Giải thích sẽ được thay thế bằng các chức năng khác

      2. nội dung liên quan đến kiểm tra

    [Các phần sẽ được thêm vào]

    1. Thiết kế VPC cho kiến ​​trúc 3 tầng

    2. 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.

    2
  • rex님의 프로필 이미지

    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.

    1. Lập trình đám mây được sử dụng trong thực tế

    2. Hiểu biết và bảo mật của AWS Cloud IAM trong thực tế

    3. [DevOps] Tạo quy trình triển khai ứng dụng (CI/CD) nhanh chóng và an toàn


    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

    1
  • rex님의 프로필 이미지

    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

    2
  • rex님의 프로필 이미지

    Đã chỉnh sửa

    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).

    1. Thay đổi thứ tự các mô-đun bị xóa sau khi thử nghiệm.

      1. hiện có

        1. tập tin trạng thái chính

        2. Tệp trạng thái cho từng mô-đun (thứ tự ngược lại)

        3. 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

      2. thay đổi

        1. Xóa tệp trạng thái theo thứ tự ngược lại của khối chạy

        2. Do đó, nó dựa vào tài nguyên bị xóa sớm

      3. Ví dụ đơn giản

        1. image

        2. Trước đây không thể viết như trên nhưng có thể bắt đầu từ 1.7.

    2. Mô phỏng (trong phiên bản beta)

      1. 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ế.

      2. 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ó.

      3. 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" } }
      1. 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.

    3. Đánh giá về phiên bản 1.7

      1. 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...

      2. 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

    0
  • rex님의 프로필 이미지

    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 ơn

    0
  • rex님의 프로필 이미지

    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ế.

    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:

    1. Mô tả ngắn gọn về các phương pháp thử nghiệm hiện có của Terraform.

    2. Điều kiện tùy chỉnh Mô tả

    3. Cú pháp cơ bản của file .tftest.hcl

    4. Nội dung liên quan đến thử nghiệm (kiểm tra thành công/thất bại, v.v.)

    5. Quản lý trạng thái trong quá trình kiểm tra, thực hiện/xóa lệnh

    6. chiến lược thử nghiệm


    Xin lưu ý.
    Cảm ơn

    0
  • rex님의 프로필 이미지

    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ế.

    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.

    1. Tăng tốc Python (nhưng không có viên đạn bạc) -> 3.11/3.12

      1. Tuy nhiên, một số tác vụ nhất định có cảm giác nhanh hơn đáng kể.

    2. Đã thêm và tăng cường nhiều chức năng liên quan đến loại -> 3.10 ~ 3.12

      1. Chúng ta có nên đi theo hướng Java (Type)Script không?

    3. Giới thiệu GIL cho từng phiên dịch -> 3.12

      1. 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?

      2. Hiện tại, nó chỉ khả dụng thông qua API Python C.

        1. 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.

    1. Tùy chọn có thể được sử dụng trong biến -> 1.3

      1. Trong Python bạn có thể sử dụng một cái gì đó như obj.get("key", "default")

    2. Terraform_data mặc định thay thế null_resource -> 1.4

      1. Có thể được thay thế mà không cần tải xuống nhà cung cấp bổ sung

    3. Có thể nhập thông qua mã -> 1.5

    4. 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

    0

1.399.170 ₫