Đây là bài đăng trên blog của khách được đồng sáng tác với Patrick Oberherr từ Contentful và Johannes Günther từ Netlight Consulting.
Bài đăng trên blog này cho thấy cách cải thiện tính bảo mật trong kiến trúc đường ống dữ liệu dựa trên Quy trình công việc được quản lý của Amazon dành cho Luồng khí Apache (Amazon MWAA) và Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS) bằng cách thiết lập các quyền chi tiết, sử dụng Địa hình HashiCorp cho cơ sở hạ tầng dưới dạng mã.
Nhiều khách hàng AWS sử dụng Amazon EKS để thực thi khối lượng công việc dữ liệu của họ. Ưu điểm của Amazon EKS bao gồm các tùy chọn điện toán và lưu trữ khác nhau tùy theo nhu cầu khối lượng công việc, mức sử dụng tài nguyên cao hơn bằng cách chia sẻ cơ sở hạ tầng cơ bản và cộng đồng nguồn mở sôi động cung cấp các tiện ích mở rộng được xây dựng có mục đích. Các Dữ liệu về EKS dự án cung cấp một loạt mẫu và các tài nguyên khác để giúp khách hàng bắt đầu hành trình này. Nó bao gồm một mô tả về việc sử dụng Amazon MWAA với vai trò là người lập lịch công việc.
Nội dung là khách hàng của AWS và đối tác của Mạng đối tác AWS (APN). Đằng sau hậu trường của sản phẩm Phần mềm dưới dạng dịch vụ (SaaS), Nền tảng nội dung có thể tổng hợp có nội dung, Contentful sử dụng những hiểu biết sâu sắc từ dữ liệu để cải thiện việc ra quyết định kinh doanh và trải nghiệm của khách hàng. Tham gia hài lòng Ánh sáng mạng, đối tác tư vấn APN, để giúp thiết lập nền tảng dữ liệu nhằm thu thập những hiểu biết này.
Hầu hết khối lượng công việc ứng dụng của Contentful đều chạy trên Amazon EKS và kiến thức về dịch vụ này cũng như Kubernetes được phổ biến rộng rãi trong tổ chức. Đó là lý do tại sao nhóm kỹ thuật dữ liệu của Contentful cũng quyết định chạy đường dẫn dữ liệu trên Amazon EKS. Cho công việc lập kế hoạch, họ bắt đầu với Apache Airflow tự vận hành trên cụm Amazon EKS và sau đó chuyển sang Amazon MWAA để giảm chi phí kỹ thuật và vận hành. Công việc thực hiện vẫn còn trên Amazon EKS.
Contentful chạy một đường dẫn dữ liệu phức tạp bằng cách sử dụng cơ sở hạ tầng này, bao gồm việc nhập từ nhiều nguồn dữ liệu và các công việc chuyển đổi khác nhau, chẳng hạn như sử dụng DBT. Toàn bộ quy trình chia sẻ một môi trường Amazon MWAA duy nhất và một cụm Amazon EKS duy nhất. Với khối lượng công việc đa dạng trong một môi trường duy nhất, cần phải áp dụng nguyên tắc đặc quyền ít nhất, đảm bảo rằng các tác vụ hoặc thành phần riêng lẻ chỉ có các quyền cụ thể mà chúng cần để hoạt động.
Bằng cách phân chia quyền theo vai trò và trách nhiệm, nhóm kỹ thuật dữ liệu của Contentful có thể tạo ra một môi trường xử lý dữ liệu mạnh mẽ và an toàn hơn, điều này rất cần thiết để duy trì tính toàn vẹn và bảo mật của dữ liệu đang được xử lý.
Trong bài đăng trên blog này, chúng tôi hướng dẫn cách thiết lập cơ sở hạ tầng từ đầu và triển khai một ứng dụng mẫu bằng cách sử dụng Terraform, công cụ được Contentful lựa chọn cho cơ sở hạ tầng dưới dạng mã.
Điều kiện tiên quyết
Để theo dõi bài đăng trên blog này, bạn cần cài đặt phiên bản mới nhất của các công cụ sau:
Giới thiệu chung
Trong bài đăng blog này, bạn sẽ tạo một ứng dụng mẫu với cơ sở hạ tầng sau:
Quy trình làm việc Airflow mẫu liệt kê các đối tượng trong nhóm nguồn, lưu trữ tạm thời danh sách này bằng cách sử dụng Luồng khí XComvà ghi danh sách dưới dạng tệp vào nhóm đích. Ứng dụng này được thực thi bằng cách sử dụng nhóm Amazon EKS, được lên lịch bởi môi trường Amazon MWAA. Bạn triển khai cụm EKS và môi trường MWAA vào một đám mây riêng ảo (VPC) và áp dụng các quyền có đặc quyền tối thiểu cho nhóm EKS bằng cách sử dụng Vai trò IAM cho tài khoản dịch vụ. Nhóm cấu hình cho Amazon MWAA chứa các yêu cầu về thời gian chạy cũng như mã ứng dụng chỉ định một Đồ thị tuần hoàn định hướng luồng không khí (DAG).
Khởi tạo dự án và tạo nhóm
Tạo một tệp main.tf
với nội dung sau trong một thư mục trống:
Tập tin này định nghĩa Nhà cung cấp AWS Terraform cũng như nhóm nguồn và đích, có tên được xuất dưới dạng Thông số của Trình quản lý hệ thống AWS. Nó cũng yêu cầu Terraform tải lên một đối tượng trống có tên dummy.txt
vào nhóm nguồn, điều này cho phép ứng dụng mẫu Airflow mà chúng ta sẽ tạo sau này nhận được kết quả khi liệt kê nội dung nhóm.
Khởi tạo dự án Terraform và tải xuống các phần phụ thuộc của mô-đun bằng cách đưa ra lệnh sau:
Tạo cơ sở hạ tầng:
Terraform yêu cầu bạn xác nhận những thay đổi đối với môi trường và sau đó bắt đầu triển khai tài nguyên trong AWS. Sau khi triển khai thành công, bạn sẽ thấy thông báo thành công sau:
Tạo VPC
Tạo một tệp mới vpc.tf
trong cùng một thư mục với main.tf
và chèn những thứ sau:
Tệp này xác định VPC, một mạng ảo, sau này sẽ lưu trữ cụm Amazon EKS và môi trường Amazon MWAA. Lưu ý rằng chúng tôi sử dụng một hiện tại Terraform mô-đun đối với điều này, nó bao bọc cấu hình của các tài nguyên mạng cơ bản như mạng con, bảng lộ trìnhvà cổng NAT.
Tải xuống mô-đun VPC:
Triển khai các tài nguyên mới:
Lưu ý những tài nguyên nào đang được tạo. Bằng cách sử dụng mô-đun VPC trong tệp Terraform của chúng tôi, phần lớn sự phức tạp tiềm ẩn sẽ được loại bỏ khi xác định cơ sở hạ tầng của chúng tôi, nhưng vẫn hữu ích khi biết chính xác những gì đang được triển khai.
Lưu ý rằng Terraform hiện xử lý các tài nguyên mà chúng tôi đã xác định trong cả hai tệp, main.tf
và vpc.tf
, bởi vì Terraform bao gồm tất cả .tf
các tập tin trong thư mục làm việc hiện tại.
Tạo môi trường Amazon MWAA
Tạo một tệp mới mwaa.tf
và chèn nội dung sau:
Giống như trước đây, chúng tôi sử dụng một mô-đun hiện có để tiết kiệm công sức cấu hình cho môi trường Amazon MWAA. Mô-đun này cũng tạo nhóm cấu hình mà chúng tôi sử dụng để chỉ định sự phụ thuộc thời gian chạy của ứng dụng (apache-airflow-cncf-kubernetes) Trong requirements.txt
tài liệu. Gói này kết hợp với gói cài đặt sẵn apache-airflow-amazon, cho phép tương tác với Amazon EKS.
Tải xuống mô-đun MWAA:
Triển khai các tài nguyên mới:
Thao tác này mất 20–30 phút để hoàn thành.
Tạo cụm Amazon EKS
Tạo một tệp eks.tf
với nội dung sau:
Để tự tạo cụm, chúng tôi tận dụng Bản thiết kế Amazon EKS cho Terraform dự án. Chúng tôi cũng xác định một nhóm nút được quản lý với một nút làm kích thước mục tiêu. Lưu ý rằng trong trường hợp tải dao động, hãy chia tỷ lệ cụm của bạn bằng thợ mộc thay vì cách tiếp cận nhóm nút được quản lý được hiển thị ở trên làm cho quy mô cụm linh hoạt hơn. Chúng tôi sử dụng các nhóm nút được quản lý chủ yếu vì tính dễ cấu hình.
Chúng tôi xác định danh tính mà Vai trò thực thi Amazon MWAA giả định trong Kubernetes bằng cách sử dụng map_roles
Biến đổi. Sau khi cấu hình Nhà cung cấp Terraform Kubernetes, chúng tôi cấp cho Amazon MWAA quyền vai trò thực thi để quản lý các nhóm trong cụm.
Tải xuống mô-đun EKS Blueprints cho Terraform:
Triển khai các tài nguyên mới:
Thao tác này mất khoảng 12 phút để hoàn thành.
Tạo vai trò IAM cho tài khoản dịch vụ
Tạo một tệp roles.tf
với nội dung sau:
Tệp này xác định hai tài khoản dịch vụ Kubernetes, source-bucket-reader-sa
và destination-bucket-writer-sa
và các quyền của họ đối với API AWS, sử dụng vai trò IAM cho tài khoản dịch vụ (IRSA). Một lần nữa, chúng tôi sử dụng mô-đun từ dự án Amazon EKS Blueprints for Terraform để đơn giản hóa cấu hình IRSA. Lưu ý rằng cả hai vai trò chỉ nhận được các quyền tối thiểu mà chúng cần, được xác định bằng cách sử dụng Chính sách IAM của AWS.
Tải xuống mô-đun mới:
Triển khai các tài nguyên mới:
Tạo DAG
Tạo một tệp dag.py
xác định DAG luồng không khí:
DAG được xác định để chạy theo lịch trình hàng giờ, với hai nhiệm vụ read_bucket
với tài khoản dịch vụ source-bucket-reader-sa
và write_bucket
với tài khoản dịch vụ destination-bucket-writer-sa
, chạy theo nhau. Cả hai đều được chạy bằng cách sử dụng EksPodOperator, chịu trách nhiệm lên lịch các tác vụ trên Amazon EKS, sử dụng Hình ảnh Docker AWS CLI để chạy lệnh. Tác vụ đầu tiên liệt kê các tệp trong nhóm nguồn và ghi danh sách vào Airflow XCom. Tác vụ thứ hai đọc danh sách từ XCom và lưu nó vào nhóm đích. Lưu ý rằng service_account_name
tham số phân biệt những gì mỗi nhiệm vụ được phép làm.
Tạo một tệp dag.tf
để tải mã DAG lên bộ chứa cấu hình Amazon MWAA:
Triển khai các thay đổi:
Môi trường Amazon MWAA tự động nhập tệp từ vùng lưu trữ S3.
Chạy DAG
Trong trình duyệt của bạn, hãy điều hướng đến Bảng điều khiển Amazon MWAA và chọn môi trường của bạn. Ở góc trên bên phải, chọn Mở giao diện người dùng luồng khí . Bạn sẽ thấy như sau:
Để kích hoạt DAG, trong Hoạt động cột, chọn biểu tượng phát rồi chọn Kích hoạt DAG. Nhấp vào tên DAG để khám phá quá trình chạy DAG và kết quả của nó.
Điều hướng đến Bảng điều khiển Amazon S3 và chọn nhóm bắt đầu bằng “đích”. Nó phải chứa một tập tin list.json
được tạo gần đây bởi write_bucket
nhiệm vụ. Tải tệp xuống để khám phá nội dung của tệp, danh sách JSON có một mục nhập duy nhất.
Làm sạch
Các tài nguyên bạn tạo trong hướng dẫn này phải chịu chi phí AWS. Để xóa các tài nguyên đã tạo, hãy ra lệnh sau:
Và phê duyệt các thay đổi trong hộp thoại Terraform CLI.
Kết luận
Trong bài đăng blog này, bạn đã tìm hiểu cách cải thiện tính bảo mật của đường dẫn dữ liệu chạy trên Amazon MWAA và Amazon EKS bằng cách thu hẹp quyền của từng tác vụ riêng lẻ.
Để tìm hiểu sâu hơn, hãy sử dụng ví dụ hoạt động được tạo trong hướng dẫn này để khám phá thêm chủ đề: Điều gì xảy ra nếu bạn loại bỏ service_account_name
tham số từ tác vụ Luồng khí? Điều gì xảy ra nếu bạn trao đổi tên tài khoản dịch vụ trong hai tác vụ?
Để đơn giản, trong hướng dẫn này, chúng tôi đã sử dụng cấu trúc tệp phẳng với các tệp Terraform và Python bên trong một thư mục. Chúng tôi đã không tuân thủ các cấu trúc mô-đun tiêu chuẩn được đề xuất bởi Terraform, thường được khuyến nghị. Trong một dự án thực tế, việc chia dự án thành nhiều dự án hoặc mô-đun Terraform cũng có thể tăng tính linh hoạt, tốc độ và tính độc lập giữa các nhóm sở hữu các phần khác nhau của cơ sở hạ tầng.
Cuối cùng, hãy nhớ nghiên cứu Dữ liệu về EKS tài liệu cung cấp các tài nguyên có giá trị khác để chạy đường truyền dữ liệu của bạn trên Amazon EKS, cũng như AmazonMWAA và Luồng khí Apache tài liệu để triển khai các trường hợp sử dụng của riêng bạn. Cụ thể hãy xem cái này thực hiện mẫu của mô-đun Terraform dành cho Amazon MWAA và Amazon EKS, bao gồm cách tiếp cận hoàn thiện hơn đối với cấu hình Amazon EKS và tự động thay đổi quy mô nút cũng như kết nối mạng.
Nếu bạn có bất kỳ câu hỏi nào, bạn có thể bắt đầu một chủ đề mới trên AWS lại: Đăng hoặc tiếp cận với Hỗ trợ AWS.
Về các tác giả
Ulrich Hinze là Kiến trúc sư giải pháp tại AWS. Anh hợp tác với các công ty phần mềm để thiết kế và triển khai các giải pháp dựa trên đám mây trên AWS. Trước khi gia nhập AWS, anh đã làm việc cho các khách hàng và đối tác của AWS ở các vị trí kỹ thuật phần mềm, tư vấn và kiến trúc trong hơn 8 năm.
Patrick Oberherr là Kỹ sư dữ liệu nhân viên tại Contentful với hơn 4 năm làm việc với AWS và hơn 10 năm trong lĩnh vực Dữ liệu. Tại Contentful, anh chịu trách nhiệm về cơ sở hạ tầng và hoạt động của ngăn xếp dữ liệu được lưu trữ trên AWS.
Johannes Gunther là nhà tư vấn dữ liệu và đám mây tại Netlight với hơn 5 năm làm việc với AWS. Anh đã giúp khách hàng ở nhiều ngành khác nhau thiết kế nền tảng đám mây bền vững và được chứng nhận AWS.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/big-data/set-up-fine-grained-permissions-for-your-data-pipeline-using-mwaa-and-eks/
- : có
- :là
- :không phải
- $ LÊN
- 1
- 10
- 100
- 12
- 16
- 2023
- 27
- 41
- 8
- 9
- a
- Có khả năng
- Giới thiệu
- ở trên
- Theo
- Tài khoản
- Trợ Lý Giám Đốc
- công nhận
- ngang qua
- hành động
- xoay vòng
- thêm
- tham gia
- Lợi thế
- lợi thế
- Sau
- một lần nữa
- chống lại
- Tất cả
- dọc theo
- Ngoài ra
- đàn bà gan dạ
- Amazon Web Services
- an
- và
- Một
- bất kì
- Apache
- api
- Các Ứng Dụng
- Đăng Nhập
- phương pháp tiếp cận
- phê duyệt
- kiến trúc
- LÀ
- AS
- giả định
- At
- ủy quyền
- Tự động
- tự động
- có sẵn
- xa
- AWS
- Chứng nhận AWS
- Khách hàng AWS
- dựa
- bởi vì
- trước
- sau
- đằng sau hậu trường
- được
- giữa
- Blog
- cả hai
- trình duyệt
- kinh doanh
- nhưng
- by
- CAN
- trường hợp
- CHỨNG NHẬN
- thay đổi
- Những thay đổi
- sự lựa chọn
- Chọn
- Nhấp chuột
- khách hàng
- đám mây
- cụm
- mã
- Cột
- kết hợp
- cộng đồng
- Các công ty
- hoàn thành
- phức tạp
- phức tạp
- các thành phần
- Tính
- bảo mật
- Cấu hình
- An ủi
- chuyên gia tư vấn
- tư vấn
- chứa
- chứa
- nội dung
- nền tảng nội dung
- Corner
- sửa chữa
- Chi phí
- tạo
- tạo ra
- tạo ra
- Current
- khách hàng
- kinh nghiệm khach hang
- khách hàng
- DAG
- dữ liệu
- kỹ sư dữ liệu
- Nền tảng dữ liệu
- xử lý dữ liệu
- ngày giờ
- quyết định
- Ra quyết định
- sâu sắc hơn
- định nghĩa
- xác định
- Xác định
- xác định
- phụ thuộc
- Phụ thuộc
- Tùy
- triển khai
- triển khai
- triển khai
- triển khai
- Mô tả
- thiết kế
- điểm đến
- bị phá hủy
- Đối thoại
- ĐÃ LÀM
- khác nhau
- đạo diễn
- bổ nhào
- khác nhau
- do
- phu bến tàu
- tài liệu hướng dẫn
- tải về
- vẽ
- mỗi
- dễ dàng
- bỏ lỡ
- nỗ lực
- trống
- cho phép
- tham gia
- ky sư
- Kỹ Sư
- đảm bảo
- nhập
- Môi trường
- thiết yếu
- Ether (ETH)
- chính xác
- ví dụ
- Sàn giao dịch
- thi hành
- Thực thi
- thực hiện
- kinh nghiệm
- khám phá
- mở rộng
- sai
- lĩnh vực
- Tập tin
- Các tập tin
- Tên
- bằng phẳng
- Linh hoạt
- linh hoạt
- theo
- tiếp theo
- Trong
- từ
- chức năng
- xa hơn
- thu thập
- nói chung
- được
- GitHub
- Cho
- đồ thị
- Nhóm
- Các nhóm
- Khách
- Blog khách
- Xử lý
- xảy ra
- Có
- he
- giúp đỡ
- đã giúp
- cao hơn
- chủ nhà
- tổ chức
- Độ đáng tin của
- Hướng dẫn
- HTML
- HTTPS
- IAM
- Bản sắc
- if
- thực hiện
- thực hiện
- nhập khẩu
- nhập khẩu
- nâng cao
- in
- bao gồm
- bao gồm
- Bao gồm
- Tăng lên
- độc lập
- hệ thống riêng biệt,
- các ngành công nghiệp
- Cơ sở hạ tầng
- trong
- những hiểu biết
- thay vì
- tính toàn vẹn
- tương tác
- Giao thức
- trong
- vấn đề
- ban hành
- IT
- ITS
- chính nó
- Việc làm
- việc làm
- tham gia
- cuộc hành trình
- jpg
- json
- Key
- Loại
- Biết
- kiến thức
- Kubernetes
- một lát sau
- mới nhất
- học
- ít nhất
- Lượt thích
- Danh sách
- niêm yết
- Chức năng
- tải
- địa phương
- đăng nhập
- Xem
- duy trì
- làm cho
- LÀM CHO
- quản lý
- quản lý
- giám đốc
- trưởng thành
- Có thể..
- tin nhắn
- Siêu dữ liệu
- tối thiểu
- phút
- mô-đun
- Modules
- chi tiết
- nhiều
- nhiều
- tên
- Được đặt theo tên
- tên
- Điều hướng
- cần thiết
- Cần
- nhu cầu
- mạng
- mạng lưới
- Mới
- nút
- ghi
- tại
- vật
- đối tượng
- of
- on
- ONE
- có thể
- mã nguồn mở
- hoạt động
- Hoạt động
- khai thác
- Các lựa chọn
- or
- cơ quan
- Nền tảng khác
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- ra
- đầu ra
- riêng
- gói
- tham số
- đối tác
- mạng lưới đối tác
- Đối tác
- các bộ phận
- Vá
- con đường
- patrick
- quyền
- đường ống dẫn
- nền tảng
- Nền tảng
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- Play
- vỏ quả
- điều luật
- chân dung
- Bài đăng
- chủ yếu
- riêng
- xử lý
- Sản phẩm
- Hồ sơ
- dự án
- dự án
- đề xuất
- nhà cung cấp dịch vụ
- nhà cung cấp
- cung cấp
- Python
- Câu hỏi
- RE
- đạt
- nhận
- gần đây
- đề nghị
- giảm
- khu
- tẩy
- Yêu cầu
- tài nguyên
- Tận dụng nguồn tài nguyên
- Thông tin
- trách nhiệm
- chịu trách nhiệm
- kết quả
- Kết quả
- mạnh mẽ
- Vai trò
- vai trò
- Quy tắc
- chạy
- chạy
- chạy
- SaaS
- tương tự
- Lưu
- Quy mô
- mở rộng quy mô
- cảnh
- lịch trình
- lên kế hoạch
- lập kế hoạch
- xước
- Thứ hai
- an toàn
- an ninh
- xem
- Loạt Sách
- dịch vụ
- DỊCH VỤ
- định
- thiết lập
- cổ phiếu
- chia sẻ
- nên
- thể hiện
- Chương trình
- đơn giản
- đơn giản hóa
- duy nhất
- môi trường duy nhất
- Kích thước máy
- nhỏ
- Phần mềm
- kỹ thuật phần mềm
- Giải pháp
- nguồn
- nguồn
- riêng
- đặc biệt
- tốc độ
- ngăn xếp
- Nhân sự
- Bắt đầu
- bắt đầu
- Bắt đầu
- bắt đầu
- Tuyên bố
- Vẫn còn
- là gắn
- tùy chọn lưu trữ
- cửa hàng
- cấu trúc
- Học tập
- Tiêu đề
- thành công
- thành công
- chắc chắn
- bền vững
- chuyển
- biểu tượng
- hệ thống
- Hãy
- Lấy
- mất
- Mục tiêu
- Nhiệm vụ
- nhiệm vụ
- nhóm
- đội
- nói
- mẫu
- Terraform
- văn bản
- việc này
- Sản phẩm
- Nguồn
- cung cấp their dịch
- sau đó
- Kia là
- họ
- điều này
- Thông qua
- đến
- mã thông báo
- công cụ
- công cụ
- hàng đầu
- chủ đề
- Chuyển đổi
- kích hoạt
- đúng
- hai
- kiểu
- cơ bản
- Cập nhật
- trên
- sử dụng
- đã sử dụng
- người sử dang
- Giao diện người dùng
- sử dụng
- sử dụng
- Quý báu
- giá trị
- biến
- khác nhau
- phiên bản
- sôi động
- ảo
- đi bộ
- hương
- là
- we
- web
- các dịch vụ web
- TỐT
- Điều gì
- khi nào
- cái nào
- toàn bộ
- có
- tại sao
- phổ biến rộng rãi
- sẽ
- với
- làm việc
- quy trình làm việc
- Luồng công việc
- đang làm việc
- năm
- bạn
- trên màn hình
- zephyrnet