Logo Zephyrnet

Xây dựng liên kết nhận dạng SAML cho các miền Dịch vụ tìm kiếm mở của Amazon trong VPC | Dịch vụ web của Amazon

Ngày:

Dịch vụ Tìm kiếm Mở của Amazon là dịch vụ phân tích và tìm kiếm được quản lý hoàn toàn được cung cấp bởi thư viện tìm kiếm Apache Lucene, có thể được vận hành trong đám mây riêng ảo (VPC). VPC là mạng ảo dành riêng cho tài khoản AWS của bạn. Nó được cách ly về mặt logic với các mạng ảo khác trong Đám mây AWS. Việc đặt miền Dịch vụ OpenSearch trong VPC sẽ cho phép liên lạc an toàn giữa Dịch vụ OpenSearch và các dịch vụ khác trong VPC mà không cần cổng internet, thiết bị NAT hoặc kết nối VPN. Tất cả lưu lượng truy cập vẫn được duy trì an toàn trong Đám mây AWS, cung cấp môi trường an toàn cho dữ liệu của bạn. Để kết nối với miền Dịch vụ OpenSearch chạy bên trong VPC riêng, khách hàng doanh nghiệp sử dụng một trong hai tùy chọn có sẵn: tích hợp VPC với mạng doanh nghiệp của họ thông qua VPN hoặc Kết nối trực tiếp AWShoặc làm cho điểm cuối của cụm có thể truy cập công khai thông qua proxy ngược. tham khảo Làm cách nào tôi có thể truy cập Bảng thông tin OpenSearch từ bên ngoài VPC bằng xác thực Amazon Cognito để đánh giá chi tiết các phương án có sẵn cũng như những ưu và nhược điểm tương ứng.

Để quản lý quyền truy cập vào Bảng thông tin OpenSearch trong môi trường của khách hàng doanh nghiệp, Dịch vụ OpenSearch hỗ trợ tích hợp Ngôn ngữ đánh dấu xác nhận bảo mật (SAML) với các nhà cung cấp danh tính (IdP) hiện có của khách hàng để cung cấp dịch vụ đăng nhập một lần (SSO). Mặc dù việc tích hợp SAML cho Bảng thông tin OpenSearch có thể truy cập công khai hoạt động tốt, nhưng việc bật SAML cho Bảng thông tin OpenSearch trong VPC yêu cầu thiết kế cẩn thận với nhiều cấu hình khác nhau.

Bài đăng này phác thảo một giải pháp toàn diện để tích hợp xác thực SAML cho các miền Dịch vụ OpenSearch chạy trong VPC. Nó cung cấp hướng dẫn triển khai từng bước và kèm theo Bộ công cụ phát triển đám mây AWS (AWS CDK), tự động hóa tất cả các cấu hình cần thiết.

Tổng quan về giải pháp

Sơ đồ sau đây mô tả quy trình xác thực từng bước để truy cập vào miền Dịch vụ OpenSearch riêng tư thông qua SSO bằng cách sử dụng liên kết danh tính SAML. Quyền truy cập được kích hoạt qua internet công cộng thông qua các máy chủ proxy ngược NGINX riêng chạy trên Dịch vụ container đàn hồi Amazon (Amazon ECS) để có tính sẵn sàng cao.

Tổng quan về giải pháp

Quy trình làm việc bao gồm các bước sau:

  1. Người dùng điều hướng đến URL Trang tổng quan OpenSearch trong trình duyệt của họ.
  2. Trình duyệt phân giải địa chỉ IP của miền và gửi yêu cầu.
  3. AWSWAF quy tắc đảm bảo rằng chỉ cho phép phạm vi địa chỉ IP được liệt kê.
  4. Cân bằng tải ứng dụng chuyển tiếp yêu cầu tới proxy ngược NGINX.
  5. NGINX thêm các tiêu đề cần thiết và chuyển tiếp yêu cầu tới Bảng điều khiển OpenSearch.
  6. Bảng điều khiển OpenSearch phát hiện rằng yêu cầu không được xác thực. Nó trả lời bằng một chuyển hướng đến SAML IdP tích hợp để xác thực.
  7. Người dùng được chuyển hướng đến trang đăng nhập SSO.
  8. IdP xác minh danh tính của người dùng và tạo mã thông báo xác nhận SAML.
  9. Người dùng được chuyển hướng trở lại URL Trang tổng quan OpenSearch.
  10. Yêu cầu sẽ thực hiện lại các Bước 1–5 cho đến khi đến OpenSearch. Lần này, Bảng thông tin OpenSearch phát hiện xác nhận SAML đi kèm và cho phép yêu cầu.

Trong các phần sau, chúng tôi thiết lập proxy ngược NGINX trong mạng con riêng tư để cung cấp quyền truy cập vào Bảng thông tin OpenSearch cho miền được triển khai bên trong mạng con riêng tư VPC. Sau đó, chúng tôi bật xác thực SAML cho Bảng thông tin OpenSearch bằng ứng dụng SAML 2.0 và sử dụng điểm cuối miền tùy chỉnh để truy cập Bảng thông tin OpenSearch để xem hoạt động xác thực SAML.

Điều kiện tiên quyết

Trước khi bạn bắt đầu, hãy hoàn thành các bước tiên quyết trong phần này.

Cài đặt các công cụ cần thiết

Đầu tiên, cài đặt AWS CDK. Để biết thêm thông tin, hãy tham khảo Hướng dẫn dành cho nhà phát triển AWS CDK v2.

Chuẩn bị các tài nguyên AWS cần thiết

Hoàn thành các bước sau để thiết lập tài nguyên AWS của bạn:

  1. Tạo tài khoản AWS.
  2. tạo một Amazon Route 53 vùng lưu trữ công cộng như mydomain.com được sử dụng để định tuyến lưu lượng truy cập internet tới miền của bạn. Để biết hướng dẫn, hãy tham khảo Tạo vùng lưu trữ công khai.
  3. Yêu cầu Trình quản lý chứng chỉ AWS (ACM) chứng chỉ công khai cho vùng được lưu trữ. Để biết hướng dẫn, hãy tham khảo Yêu cầu chứng chỉ công cộng.
  4. Tạo VPC với mạng con công khai và riêng tư.
  5. Kích hoạt tính năng Trung tâm nhận dạng AWS IAM. Để được hướng dẫn, hãy tham khảo Bật Trung tâm nhận dạng IAM.

Chuẩn bị cụm dịch vụ OpenSearch của bạn

Bài đăng này đi kèm với một ứng dụng AWS CDK độc lập (tên miền opensearch) triển khai miền Dịch vụ OpenSearch mẫu trong mạng con VPC riêng tư. Miền được triển khai chỉ nhằm mục đích trình diễn và là tùy chọn.

Nếu bạn hiện có miền Dịch vụ OpenSearch trong VPC mà bạn muốn sử dụng để tích hợp SAML, hãy áp dụng các cấu hình sau:

  1. trên Cấu hình cụm tab, chọn Chỉnh sửa và chọn Bật điểm cuối tùy chỉnh trong Điểm cuối tùy chỉnh phần.
  2. Trong Tên máy chủ tùy chỉnh, hãy nhập tên miền đủ điều kiện (FQDN), chẳng hạn như opensearch.mydomain.com, mà bạn muốn sử dụng để truy cập vào cụm của mình. Lưu ý rằng tên miền của FQDN được cung cấp (ví dụ: mydomain.com) phải giống với vùng lưu trữ công khai mà bạn đã tạo trước đó.
  3. Trong Chứng chỉ AWS, hãy chọn chứng chỉ SSL bạn đã tạo trước đó.
  4. Trong tạp chí Tổng kết phần, tùy chọn bật phân tích chạy thử và chọn Chạy khô hoặc bỏ chọn nó và chọn Lưu các thay đổi.

Còn không thì tải file đi kèm tên miền opensearch Ứng dụng AWS CDK và giải nén nó. Sau đó, chỉnh sửa cdk.json vào thư mục gốc của thư mục đã giải nén và định cấu hình các tham số cần thiết:

  • vpc_cidr – Khối CIDR để tạo VPC. Bạn có thể để mặc định là 10.0.0.0/16.
  • opensearch_cluster_name – Tên của cụm Dịch vụ OpenSearch. Bạn có thể để giá trị mặc định là opensearch. Nó cũng sẽ được sử dụng cùng với hosted_zone_name tham số, để xây dựng FQDN của URL miền tùy chỉnh.
  • được lưu trữ_zone_id – ID vùng được lưu trữ công khai trên Tuyến 53.
  • tên_vùng_được lưu trữ – Tên vùng được lưu trữ công khai trên Tuyến 53 (ví dụ: mydomain.com). Kết quả FQDN với các giá trị ví dụ mặc định sẽ là opensearch.mydomain.com.

Cuối cùng, chạy các lệnh sau để triển khai ứng dụng AWS CDK:

cd opensearch-domain

# Create a Python environment and install the reuired dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
pip install -r requirements.txt

# Deploy the CDK application
cdk deploy

Với các điều kiện tiên quyết đã có, hãy tham khảo các phần sau để biết hướng dẫn từng bước cách triển khai giải pháp này.

Tạo ứng dụng SAML 2.0

Chúng tôi sử dụng Trung tâm nhận dạng IAM làm nguồn nhận dạng để tích hợp SAML. Cấu hình tương tự sẽ áp dụng cho các IdP tương thích SAML 2.0 khác. Tham khảo tài liệu IdP của bạn.

  1. Trên bảng điều khiển IAM Identity Center, hãy chọn Du lịch Nhóm trong khung điều hướng.
  2. Tạo một nhóm mới có tên Opensearch Adminvà thêm người dùng vào đó.
    Đây sẽ là nhóm SAML nhận được toàn quyền trong Bảng thông tin OpenSearch. Hãy lưu ý ID nhóm.Nhóm quản trị OpenSearch
  3. Chọn Ứng dụng trong khung điều hướng.
  4. Tạo ứng dụng SAML 2.0 tùy chỉnh mới.Tạo ứng dụng SAML
  5. Tải xuống tệp siêu dữ liệu SAML của Trung tâm nhận dạng IAM để sử dụng ở bước sau.Siêu dữ liệu SAML của Trung tâm nhận dạng IAM
  6. Trong URL bắt đầu ứng dụng, đi vào [Custom Domain URL]/_dashboards/.
    URL miền tùy chỉnh bao gồm giao thức truyền thông (https://), theo sau là FQDN mà bạn đã sử dụng cho cụm Dịch vụ OpenSearch của mình trong các điều kiện tiên quyết (ví dụ: https://opensearch.mydomain.com). Hãy xem phần cấu hình cụm Dịch vụ OpenSearch của bạn nếu có nghi ngờ.
  7. Trong URL ACS của ứng dụng, đi vào [Custom Domain URL]/_dashboards/_opendistro/_security/saml/acs.
  8. Trong Đối tượng SAML ứng dụng, đi vào [Custom Domain URL] (không có dấu gạch chéo ở cuối).
    Thuộc tính SAML của miền OpenSearch
  9. Chọn Gửi.
  10. Trong tạp chí Người dùng được chỉ định phần, chọn Quản trị viên Opensearch Và chọn Chỉ định người dùng.Chỉ định nhóm quản trị viên cho ứng dụng SAML
  11. trên Hoạt động menu, chọn Chỉnh sửa ánh xạ thuộc tính.Chỉnh sửa ánh xạ thuộc tính của ứng dụng SAML
  12. Xác định ánh xạ thuộc tính như trong ảnh chụp màn hình sau và chọn Lưu các thay đổi.Định cấu hình ánh xạ thuộc tính của ứng dụng SAML

Triển khai ứng dụng AWS CDK

Hoàn thành các bước sau để triển khai ứng dụng AWS CDK:

  1. Tải xuống và giải nén tích hợp opensearch-domain-saml Ứng dụng AWS CDK.
  2. Thêm khóa SSL riêng và chứng chỉ của bạn vào Quản lý bí mật AWStạo ra hai bí mật gọi là KeyCrt. Ví dụ, hãy xem đoạn mã sau:
    KEY=$(cat private.key | base64) && aws secretsmanager create-secret --name Key --secret-string $KEY
    CRT=$(cat certificate.crt | base64) && aws secretsmanager create-secret --name Crt --secret-string $CRT

    Bạn có thể sử dụng lệnh sau để tạo chứng chỉ tự ký. Điều này chỉ dành cho thử nghiệm; không sử dụng điều này cho môi trường sản xuất.

    openssl req -new -newkey rsa:4096 -days 1095 -nodes -x509 -subj '/' -keyout private.key -out certificate.crt

  3. Chỉnh sửa cdk.json tập tin và thiết lập các tham số cần thiết bên trong lồng nhau config vật:
  • aws_khu vực – Khu vực AWS mục tiêu để bạn triển khai (ví dụ: eu-central-1).
  • vpc_id – ID của VPC mà miền Dịch vụ OpenSearch đã được triển khai.
  • opensearch_cluster_security_group_id – ID của nhóm bảo mật được sử dụng bởi miền Dịch vụ OpenSearch hoặc bất kỳ nhóm bảo mật nào khác cho phép các kết nối gửi đến miền đó trên cổng 80 và 443. ID nhóm này sẽ được Cân bằng tải ứng dụng sử dụng để chuyển tiếp lưu lượng truy cập đến miền Dịch vụ OpenSearch của bạn .
  • được lưu trữ_zone_id – ID vùng được lưu trữ công khai trên Tuyến 53.
  • vùng_được lưu trữ – Tên vùng được lưu trữ công khai trên Tuyến 53 (ví dụ: mydomain.com).
  • opensearch_custom_domain_name – Một FQDN như opensearch.mydomain.com, mà bạn muốn sử dụng để truy cập vào cụm của mình. Lưu ý rằng tên miền của FQDN được cung cấp (mydomain.com) phải giống như hosted_zone tham số.
  • opensearch_custom_domain_certificate_arn – ARN của chứng chỉ được lưu trữ trong ACM.
  • opensearch_domain_endpoint – Điểm cuối miền VPC của Dịch vụ OpenSearch (ví dụ: vpc-opensearch-abc123.eu-central-1.es.amazonaws.com).
  • vpc_dns_resolver – Đây phải là 10.0.0. nếu VPC CIDR của bạn là 10.0.0.0/16. Nhìn thấy Máy chủ DNS của Amazon để biết thêm chi tiết.
  • alb_waf_ip_whitelist_cidrs – Đây là danh sách tùy chọn gồm 0 hoặc nhiều dải IP CIDR sẽ được tự động cho phép liệt kê trong AWS WAF để cho phép truy cập vào miền Dịch vụ OpenSearch. Nếu không được chỉ định, sau khi triển khai, bạn sẽ cần thêm các dải IP CIDR có liên quan theo cách thủ công vào bộ IP AWS WAF để cho phép truy cập. Ví dụ, ["1.2.3.4/32", "5.6.7.0/24"].
  1. Triển khai ứng dụng AWS CDK tích hợp SAML của miền Dịch vụ OpenSearch:
    cd opensearch-domain-saml-integration
    
    # Create a Python environment and install the required dependencies
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements-dev.txt
    pip install -r requirements.txt
    
    # Deploy the CDK application
    cdk deploy

Bật xác thực SAML cho cụm Dịch vụ OpenSearch của bạn

Khi quá trình triển khai ứng dụng hoàn tất, hãy bật xác thực SAML cho cụm của bạn:

  1. Trên bảng điều khiển Dịch vụ OpenSearch, điều hướng đến miền của bạn.
  2. trên Cấu hình bảo mật tab, chọn Chỉnh sửa.Bật xác thực SAML cho miền OpenSearch
  3. Chọn Bật xác thực SAML.
  4. Chọn Nhập từ tệp XML và nhập tệp siêu dữ liệu SAML của Trung tâm nhận dạng IAM mà bạn đã tải xuống ở bước trước đó.
  5. Trong Vai trò phụ trợ chính SAML, hãy sử dụng ID nhóm bạn đã lưu trước đó.
  6. Mở rộng Cài đặt thêm phần và cho Vai trò, hãy nhập tên thuộc tính SAML 2.0 mà bạn đã ánh xạ trước đó khi tạo ứng dụng SAML 2.0 trong Trung tâm nhận dạng AWS.
  7. Cấu hình chính sách truy cập tên miền để tích hợp SAML.
  8. Gửi các thay đổi và đợi Dịch vụ OpenSearch áp dụng các cấu hình trước khi chuyển sang phần tiếp theo.

Kiểm tra giải pháp

Hoàn thành các bước sau để xem giải pháp hoạt động:

  1. Trên bảng điều khiển IAM Identity Center, hãy chọn Bảng Điều Khiển (Dashboard) trong khung điều hướng.
  2. Trong tạp chí Tóm tắt cài đặt phần, chọn liên kết bên dưới URL cổng truy cập AWS.Đăng nhập vào Trung tâm nhận dạng IAM
  3. Đăng nhập bằng tên người dùng và mật khẩu của bạn (đăng ký mật khẩu nếu đây là lần đăng nhập đầu tiên của bạn).
    Nếu tài khoản của bạn đã được thêm thành công vào nhóm quản trị viên, logo ứng dụng SAML sẽ hiển thị.
  4. Chọn Ứng dụng SAML 2.0 tùy chỉnh được chuyển hướng đến bảng thông tin Dịch vụ OpenSearch thông qua SSO mà không cần bất kỳ nỗ lực đăng nhập bổ sung nào.Mở ứng dụng SAML
    Ngoài ra, bạn có thể bỏ qua việc đăng nhập vào cổng truy cập và trỏ trực tiếp trình duyệt của mình tới URL Trang tổng quan OpenSearch. Trong trường hợp đó, OpenSearch Dashboards trước tiên sẽ chuyển hướng bạn đến cổng truy cập để đăng nhập, cổng này sẽ chuyển hướng bạn quay lại giao diện người dùng OpenSearch Dashboards sau khi đăng nhập thành công, dẫn đến kết quả tương tự như trong ảnh chụp màn hình sau.Giao diện người dùng OpenSearch Dashboards sau khi đăng nhập thành công

Xử lý sự cố

IP công khai của bạn phải được cho phép liệt kê theo quy tắc AWS WAF, nếu không sẽ trả về lỗi 403 Forbidden. Cho phép liệt kê phạm vi IP CIDR của bạn thông qua AWS CDK alb_waf_ip_whitelist_cidrs như được mô tả trong hướng dẫn cài đặt và triển khai lại ứng dụng AWS CDK để các thay đổi có hiệu lực.

Làm sạch

Khi bạn hoàn tất cấu hình này, hãy dọn sạch tài nguyên để tránh bị tính phí trong tương lai.

  1. Trên bảng điều khiển Dịch vụ OpenSearch, điều hướng đến Cấu hình bảo mật tab của miền Dịch vụ OpenSearch của bạn và chọn Chỉnh sửa.
  2. Bỏ chọn Bật xác thực SAML Và chọn Lưu các thay đổi.
  3. Sau khi tắt tích hợp Amazon SAML, hãy xóa opensearch-domain-saml-integration ngăn xếp bằng cách sử dụng cdk destroy.
  4. Theo tùy chọn, nếu bạn sử dụng ngăn xếp AWS CDK mẫu Dịch vụ tìm kiếm mở được cung cấp (opensearch-domain), xóa nó bằng cách sử dụng cdk destroy.

Kết luận

Dịch vụ OpenSearch cho phép khách hàng doanh nghiệp sử dụng IdP liên kết ưa thích của họ như SAML bằng Trung tâm nhận dạng IAM cho các cụm chạy bên trong mạng con VPC riêng tư theo các phương pháp hay nhất của AWS.

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách tích hợp miền Dịch vụ OpenSearch trong VPC với IdP SAML hiện có để truy cập SSO vào Bảng thông tin OpenSearch bằng Trung tâm nhận dạng IAM. Giải pháp được cung cấp quản lý an toàn quyền truy cập mạng vào tài nguyên bằng AWS WAF để chỉ hạn chế quyền truy cập vào các phân đoạn mạng được ủy quyền hoặc địa chỉ IP cụ thể.

Để bắt đầu, tham khảo Làm cách nào tôi có thể truy cập Bảng thông tin OpenSearch từ bên ngoài VPC bằng xác thực Amazon Cognito để so sánh thêm về miền Dịch vụ OpenSearch trong các mẫu truy cập VPC riêng tư.


Về các tác giả

Mahdi Ebrahimi là Kiến trúc sư cơ sở hạ tầng đám mây cấp cao của Amazon Web Services. Anh ấy xuất sắc trong việc thiết kế các hệ thống phần mềm phân tán, có tính sẵn sàng cao. Mahdi tận tâm cung cấp các giải pháp tiên tiến giúp khách hàng của mình đổi mới trong bối cảnh phát triển nhanh chóng của ngành công nghiệp ô tô.

Dmytro Protsiv là Kiến trúc sư ứng dụng đám mây của Amazon Web Services. Anh ấy rất nhiệt tình giúp đỡ khách hàng giải quyết những thách thức kinh doanh của họ xung quanh việc hiện đại hóa ứng dụng.

Luca Menichetti là Kiến trúc sư dữ liệu lớn của Amazon Web Services. Anh ấy giúp khách hàng phát triển các giải pháp hiệu quả và có thể tái sử dụng để xử lý dữ liệu trên quy mô lớn. Luca đam mê quản lý kiến ​​trúc dữ liệu của tổ chức, hỗ trợ phân tích dữ liệu và học máy. Đã làm việc với hệ sinh thái Hadoop được một thập kỷ, anh ấy thực sự thích giải quyết các vấn đề trong môi trường NoSQL.

Krithivasan Balasubramaniyan là Chuyên gia tư vấn chính của Amazon Web Services. Anh hỗ trợ các khách hàng doanh nghiệp toàn cầu trong hành trình chuyển đổi kỹ thuật số của họ và giúp xây dựng các giải pháp gốc trên nền tảng đám mây.

Muthu Pitchaimani là Chuyên gia tìm kiếm với Dịch vụ tìm kiếm mở của Amazon. Anh xây dựng các giải pháp và ứng dụng tìm kiếm quy mô lớn. Muthu quan tâm đến các chủ đề về mạng và bảo mật, và có trụ sở tại Austin, Texas.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img