ZS đã xây dựng phân tích tự phục vụ ở quy mô lớn với Amazon WorkSpaces Applications như thế nào

Tác giả: Gourang Harhare
Ngày phát hành: 03 FEB 2026
Chuyên mục: Amazon WorkSpaces, Amazon WorkSpaces Core, End User Computing

Chuyển đổi số trong phân tích chăm sóc sức khỏe đòi hỏi các giải pháp cân bằng giữa khả năng phức tạp và quyền truy cập đơn giản. ZS, một công ty tư vấn quản lý và công nghệ toàn cầu, đồng thời là Đối tác Tư vấn Nâng cao của AWS, đã áp dụng chuyên môn của mình về phân tích nâng cao, AI và các nền tảng công nghệ có khả năng mở rộng để giải quyết thách thức này. Phục vụ nhiều ngành công nghiệp bao gồm dược phẩm, chăm sóc sức khỏe và dịch vụ tài chính, ZS đã biến một thiết lập máy tính để bàn ảo tiêu chuẩn thành một nền tảng phân tích mạnh mẽ bằng cách sử dụng Amazon WorkSpaces Applications (trước đây là Amazon AppStream 2.0). Giải pháp này hiện đang hoạt động trên ba AWS Region, phục vụ hơn 700 người dùng hàng ngày với kiểm soát truy cập dựa trên vai trò, môi trường phát triển tích hợp và tích hợp đăng nhập một lần (SSO) liền mạch với các dịch vụ AWS hạ nguồn. Là Đối tác Cung cấp Dịch vụ Amazon Redshift, ZS đã tích hợp một cách chuyên nghiệp kho dữ liệu hiệu suất cao này vào nền tảng của họ, mang lại khả năng sẵn sàng 99,99% và trao quyền cho người dùng với quy mô tính toán, quyền truy cập đơn giản và trải nghiệm nhất quán trên toàn thế giới.

Đối với các khách hàng dược phẩm và chăm sóc sức khỏe, điều này có nghĩa là thông tin chi tiết nhanh hơn cho các sáng kiến quan trọng trong khi vẫn duy trì tuân thủ HIPAA và GDPR. Việc triển khai cho thấy cách kiến thức ngành của ZS kết hợp với kiến trúc cloud-native của AWS có thể nâng cao việc cung cấp phân tích từ việc truyền phát ứng dụng cơ bản lên một hệ thống phân tích tự phục vụ, toàn diện, mở khóa toàn bộ tiềm năng dữ liệu của tổ chức.

Giới thiệu

Khách hàng của ZS đang tìm kiếm sự linh hoạt để sử dụng các công cụ Business Intelligence (BI) và phân tích quen thuộc trong khi vẫn duy trì cơ sở hạ tầng an toàn, hiệu suất cao mà không gặp phải sự phức tạp trong việc cung cấp hoặc quản lý. Mục tiêu là tạo ra một không gian làm việc ảo an toàn, có khả năng mở rộng và trực quan để khám phá & phân tích dữ liệu, được hỗ trợ bởi AWS, được điều chỉnh theo vai trò và nhu cầu của từng khách hàng.

Để giải quyết những nhu cầu này, ZS đã áp dụng Amazon WorkSpaces Applications làm nền tảng để cung cấp các ứng dụng máy tính để bàn ảo hóa, được lưu trữ trên đám mây.

ZS ban đầu triển khai Amazon WorkSpaces Applications để cung cấp cho khách hàng của họ quyền truy cập an toàn vào các công cụ phân tích. Khi việc sử dụng tăng lên và các yêu cầu phát triển, họ đã xác định các cơ hội để nâng cao khả năng, bảo mật và trải nghiệm người dùng của nền tảng.

Thách thức kinh doanh

Việc triển khai Amazon WorkSpaces Applications ban đầu phải đối mặt với một số thách thức khi nhu cầu người dùng phát triển:

  • Người dùng với trình độ kỹ thuật khác nhau gặp khó khăn trong việc điều hướng giao diện mặc định và nhanh chóng tìm thấy các công cụ và ứng dụng phù hợp.
  • Người dùng mới thiếu trợ giúp theo ngữ cảnh như hướng dẫn, tài liệu hướng dẫn sử dụng hoặc nội dung đa phương tiện phong phú để thích nghi với môi trường mới.
  • ZS không thể cung cấp thông tin liên lạc trong cổng thông tin về các bản cập nhật hoặc thay đổi quan trọng trong bố cục ứng dụng hoặc việc ra mắt ứng dụng mới hoặc các hoạt động bảo trì theo kế hoạch, dẫn đến sự nhầm lẫn của người dùng và tăng số lượng yêu cầu hỗ trợ cho nhóm quản trị ZS.
  • Kiểm soát truy cập dựa trên vai trò/nhân vật cần độ chi tiết cao hơn để kiểm soát khả năng hiển thị.
  • Khả năng đạt được tích hợp SSO liền mạch với các dịch vụ AWS hạ nguồn như Amazon Redshift & Amazon S3.
  • Lưu trữ liên tục tiêu chuẩn không đủ cho những người dùng IDE nặng như PyCharm.
  • Các nhà khoa học dữ liệu yêu cầu môi trường phát triển mã nâng cao.
  • Người dùng toàn cầu trải nghiệm hiệu suất không nhất quán.
  • Các yêu cầu về bảo mật và tuân thủ ngày càng phức tạp.

Amazon WorkSpaces Applications là một dịch vụ truyền phát ứng dụng được quản lý hoàn toàn, cung cấp cho người dùng quyền truy cập tức thì vào các ứng dụng của họ từ mọi nơi. Amazon WorkSpaces Applications cung cấp khả năng truyền phát ứng dụng mạnh mẽ ngay lập tức. Bạn có thể tùy chỉnh trải nghiệm người dùng để đáp ứng các yêu cầu kinh doanh cụ thể.

Tổng quan giải pháp

Để giải quyết những thách thức này, ZS đã nâng cao việc triển khai Amazon WorkSpaces Applications của họ với một số thành phần chính:


Hình 1: Tổng quan giải pháp

Mô tả giải pháp:

Để giải quyết các hạn chế của thiết lập Virtual Desktop Infrastructure (VDI) tiêu chuẩn và cho phép trải nghiệm phân tích hoàn toàn tự phục vụ, an toàn, mạnh mẽ và nhận biết vai trò, ZS đã thiết kế một giải pháp tùy chỉnh sử dụng một bộ dịch vụ AWS được neo quanh Amazon WorkSpaces Applications và mở rộng thông qua một lớp UI được xây dựng có mục đích, tích hợp danh tính an toàn và cơ sở hạ tầng có khả năng mở rộng.

Giải pháp sử dụng các dịch vụ AWS sau:

Giao diện người dùng tùy chỉnh & Truy cập thông minh:

Cốt lõi của giải pháp là một giao diện người dùng tùy chỉnh được xây dựng bằng Node.js, được thiết kế để định hình lại trải nghiệm Amazon WorkSpaces Applications từ đầu. Giao diện người dùng này hoạt động như một điểm truy cập động và thân thiện với người dùng vào môi trường Amazon WorkSpaces Applications, được lưu trữ trên một cụm Amazon ECS dựa trên AWS Fargate để có khả năng mở rộng và được cung cấp trên toàn cầu thông qua Amazon CloudFront.

Các ứng dụng tùy chỉnh cho Amazon Redshift, Amazon S3 & Amazon EC2/EMR xuất hiện trực tiếp trong danh mục Amazon WorkSpaces Applications với các biểu tượng được tùy chỉnh, tạo ra trải nghiệm giống như bản địa cho người dùng cuối trong khi trừu tượng hóa sự phức tạp của backend. Tất cả các cài đặt ứng dụng tùy chỉnh sau đó được truyền đến các phiên người dùng riêng lẻ bằng cách sử dụng Session Scripts và các Amazon WorkSpaces Applications Image dựa trên mẫu.


Hình 2: Ảnh chụp màn hình giao diện người dùng ứng dụng WorkSpaces tùy chỉnh


Hình 3: Hướng dẫn người dùng dựa trên ngữ cảnh

Các cải tiến UI chính bao gồm:

  • Tổ chức ứng dụng trực quan:
    Các ứng dụng được nhóm theo ngữ cảnh (ví dụ: Công cụ phân tích, IDE phát triển, v.v.), giúp người dùng dễ dàng định vị những gì họ cần. Bố cục này mô phỏng một không gian làm việc kỹ thuật số được điều chỉnh theo vai trò kinh doanh, thay thế danh mục ứng dụng Amazon WorkSpaces Applications gốc.
  • Kiểm soát truy cập dựa trên vai trò:
    Khả năng hiển thị ứng dụng được kiểm soát động dựa trên vai trò người dùng. Giao diện người dùng tùy chỉnh tích hợp với SSO của mỗi khách hàng, xác định người dùng doanh nghiệp nào nên có quyền truy cập vào các ứng dụng như Tableau, PyCharm, v.v.
  • Khởi chạy phiên liền mạch:
    Các biểu tượng ứng dụng trong giao diện người dùng ứng dụng WorkSpaces tùy chỉnh gọi API CreateStreamingURL của Amazon WorkSpaces Applications, nhúng ngữ cảnh phiên cụ thể của người dùng và các tham số ứng dụng để khởi chạy một phiên Amazon WorkSpaces Applications được cấu hình sẵn theo yêu cầu.
  • Bảng điều khiển hướng dẫn & giao tiếp tích hợp:
    Giao diện người dùng có các hướng dẫn người dùng dựa trên ngữ cảnh, video hướng dẫn và bảng thông báo cho phép ZS truyền đạt các bản cập nhật, sự cố ngừng hoạt động hoặc mẹo giới thiệu trực tiếp trong điểm truy cập Amazon WorkSpaces Applications.
  • Tích hợp DevOps có khả năng mở rộng:
    Mã ứng dụng được triển khai thông qua một pipeline CI/CD được cung cấp bởi AWS CodeBuild và AWS CodePipeline, cho phép các nhóm đẩy các bản cập nhật UI liền mạch từ các kho lưu trữ nội bộ của ZS đến Amazon ECS dựa trên AWS Fargate.

Truy cập dựa trên SSO cho các dịch vụ AWS:
Người dùng có thể truy cập các dịch vụ hạ nguồn như Amazon Redshift và Amazon S3 thông qua các luồng xác thực dựa trên SSO/SAML tùy chỉnh để có trải nghiệm liền mạch:


Hình 4: Truy cập dựa trên SSO cho các dịch vụ AWS

Amazon WorkSpaces Applications đóng vai trò là điểm truy cập an toàn không chỉ cho các ứng dụng phân tích máy tính để bàn mà còn cho các dịch vụ AWS hạ nguồn như Amazon Redshift, Amazon S3, Amazon EC2 và Amazon EMR cung cấp năng lượng cho các khối lượng công việc xử lý dữ liệu, phân tích và trực quan hóa của ZS. Để loại bỏ thông tin đăng nhập tĩnh và cải thiện tư thế bảo mật, ZS đã phát triển các ứng dụng được lưu trữ trên Amazon WorkSpaces Applications tùy chỉnh sử dụng thông tin đăng nhập AWS IAM tạm thời thông qua quyền truy cập liên kết, đảm bảo quyền truy cập liền mạch trên tất cả các dịch vụ từ trong các phiên Amazon WorkSpaces Applications.

  • Amazon Redshift:
    Amazon Redshift đóng vai trò là kho dữ liệu phân tích cốt lõi cho nhiều ứng dụng hướng tới khách hàng của ZS. Các nhà phân tích và nhà khoa học dữ liệu thường xuyên kết nối với Amazon Redshift để truy vấn các bộ dữ liệu được quản lý, xây dựng bảng điều khiển và chạy kiểm tra xác thực dữ liệu. Một ứng dụng SQL Workbench/J (một công cụ truy vấn SQL độc lập với DBMS, đa nền tảng) tùy chỉnh sử dụng Ứng dụng SSO dựa trên SAML của khách hàng để xác thực người dùng thông qua API AssumeRoleWithSAMLGetClusterCredentials. Cho phép truy cập tạm thời, không cần mật khẩu vào Amazon Redshift với các quyền được giới hạn mà người dùng không cần phải ghi nhớ hoặc tiết lộ thông tin đăng nhập của họ.
  • Amazon S3: Truy cập an toàn cấp thư mục:
    Amazon S3 được sử dụng để lưu trữ các bộ dữ liệu cụ thể của khách hàng và do người dùng tạo bổ sung cho các kho dữ liệu được quản lý để phân tích thăm dò hoặc ad-hoc, vì vậy, một ứng dụng tùy chỉnh được xây dựng bằng AWS SDK for Python (Boto3) cung cấp cho người dùng quyền truy cập an toàn, được giới hạn vào các thư mục Amazon S3 được chỉ định của họ. Mỗi người dùng được xác thực thông qua SSO của công ty bằng cách sử dụng API AssumeRoleWithSAML, API này cấp thông tin đăng nhập tạm thời. Quyền truy cập cấp thư mục được thực thi động dựa trên các thuộc tính SAML, đảm bảo người dùng chỉ có thể tương tác với các tệp dữ liệu của riêng họ để phân tích.
  • Mở rộng lưu trữ cho người dùng cao cấp với Amazon FSx for NetApp ONTAP:
    Để hỗ trợ người dùng cao cấp phát triển các mô hình ML dựa trên Python nâng cao, ZS đã tích hợp Amazon FSx for NetApp ONTAP với Amazon WorkSpaces Applications. Các tập lệnh phiên tùy chỉnh trong hình ảnh Amazon WorkSpaces Applications tự động gắn các ổ đĩa Amazon FSx khi bắt đầu phiên, với các kiểm soát truy cập đảm bảo rằng mỗi người dùng có một không gian làm việc riêng tư, biệt lập. Cải tiến này cho phép trải nghiệm IDE liền mạch cho người dùng nâng cao bằng cách tích hợp Amazon FSx for NetApp ONTAP, cung cấp lưu trữ hiệu suất cao, có khả năng mở rộng cho các khối lượng công việc đòi hỏi nhiều lưu trữ.
  • Các cải tiến trong truy cập SSO tới một số dịch vụ AWS hạ nguồn
    • Tích hợp với Identity Provider (IDP) của client cho SSO.
    • Kiểm soát truy cập chi tiết bằng cách sử dụng các AWS IAM role.

Đăng nhập SSO liền mạch cho Amazon Redshift:


Hình 5: Quy trình làm việc SSO liên kết cho phép truy cập an toàn vào Amazon Redshift

Quy trình xác thực Amazon Redshift:

  • Người dùng đăng nhập vào cổng SSO của công ty và khởi chạy phiên Amazon WorkSpaces Applications từ Giao diện người dùng Amazon WorkSpaces Applications tùy chỉnh được lưu trữ trên Amazon ECS.
  • Trong WorkSpaces Applications, client SQL Workbench/J được cấu hình sẵn với các thuộc tính kết nối tùy chỉnh—khởi tạo yêu cầu kết nối đến Amazon Redshift.
  • Client SQL chuyển hướng người dùng đến trang đăng nhập Azure AD của client để xác thực bằng thông tin đăng nhập của công ty.
  • Sau khi xác thực thành công, Azure AD cấp một xác nhận SAML chứa danh tính liên kết và ánh xạ vai trò của người dùng.
  • Client SQL chuyển xác nhận SAML đến AWS STS thông qua API AssumeRoleWithSAML để lấy thông tin đăng nhập IAM tạm thời.
  • AWS STS xác thực yêu cầu và giả định một IAM Role được cấu hình sẵn trong tài khoản AWS của ZS, được giới hạn cho quyền truy cập Amazon Redshift.
  • Sử dụng thông tin đăng nhập tạm thời, client SQL Workbench/J gọi API GetClusterCredentials để truy xuất thông tin đăng nhập cơ sở dữ liệu.
  • Client thiết lập kết nối an toàn, không cần mật khẩu đến Amazon Redshift, cho phép người dùng truy vấn và phân tích dữ liệu mà không cần quản lý thông tin đăng nhập tĩnh.

Khi người dùng khởi chạy SQL Workbench/J, client được cấu hình với các thuộc tính hiển thị bên dưới, nó sẽ tự động mở một cửa sổ trình duyệt để xác thực Azure và sau khi đăng nhập thành công, phiên sẽ kết nối liền mạch với Amazon Redshift. Cấu hình này định nghĩa plugin xác thực và các tham số kết nối cần thiết để Amazon Redshift thực hiện đăng nhập liên kết dựa trên SAML thông qua Azure AD. Tham khảo bài viết này để biết hướng dẫn thiết lập chi tiết.

Dưới đây là một ví dụ về cấu hình thuộc tính SQL Workbench/J cho xác thực Amazon Redshift bằng Azure AD (có thể tùy chỉnh cho các IdP khác):

profile.0001.name=Redshift SSO
profile.0001.autocommmit=true
profile.0001.connection.properties=<properties><entry key="client_secret">EXAMPLE_CLIENT_SECRET</entry><entry key="LogLevel">6</entry><entry key="LogPath">Your\Preferred Local\Log\Location</entry><entry key="AutoCreate">false</entry><entry key="plugin_name">com.amazon.redshift.plugin.BrowserAzureCredentialsProvider</entry><entry key="DSILogLevel">6</entry><entry key="client_id">EXAMPLE_CLIENT_ID</entry><entry key="idp_tenant">EXAMPLE_TENANT_ID</entry></properties>
profile.0001.driverclass=com.amazon.redshift.Driver
profile.0001.drivername=Amazon Redshift
profile.0001.group=SSO
profile.0001.idle.time=-1
profile.0001.rememember.schema=true
profile.0001.store.pwd=true
profile.0001.tags=
profile.0001.url=jdbc:redshift:iam://redshift_cluster_name:5439/database_name
Ảnh chụp màn hình hiển thị các thuộc tính kết nối của SQL Workbench

Thiết lập này cho phép người dùng kết nối với Amazon Redshift thông qua Azure SSO trực tiếp từ SQL Workbench/J trong Amazon WorkSpaces Applications, loại bỏ các lời nhắc mật khẩu và đảm bảo xác thực được xử lý thông qua thông tin đăng nhập liên kết.

Đăng nhập SSO liền mạch cho Amazon S3:


Hình 6: Luồng đăng nhập SSO liền mạch cho Amazon S3

Để cho phép người dùng truy cập an toàn vào các thư mục S3 được chỉ định của họ mà không lưu trữ hoặc chia sẻ thông tin đăng nhập tĩnh, ZS đã triển khai một luồng xác thực liên kết thông qua một ứng dụng dựa trên python tùy chỉnh tích hợp Azure Entra ID (trước đây là Azure AD) với AWS IAM và Amazon S3 và tạo Mã thông báo truy cập tạm thời có thể được cấu hình trong bất kỳ trình duyệt S3 hoặc luồng lập trình nào để truy cập S3. Ứng dụng Python bên dưới là một phần của Amazon WorkSpaces Applications Image và được hiển thị cho người dùng cuối thông qua UI tùy chỉnh.

Quy trình truy cập S3:

  • Người dùng đăng nhập vào cổng SSO của công ty và khởi chạy phiên Amazon WorkSpaces Applications từ Giao diện người dùng tùy chỉnh được lưu trữ trên Amazon ECS.
  • Trong Amazon WorkSpaces Applications, người dùng mở client Python AWS S3 tùy chỉnh giao tiếp với cả AWS và công cụ trình duyệt S3 của bên thứ ba.
  • Client python kích hoạt yêu cầu xác thực đến Azure Active Directory (Azure AD) của client bằng cách sử dụng liên kết SAML 2.0.
  • Sau khi xác thực thành công, Azure AD cấp một xác nhận SAML chứa danh tính của người dùng.
  • Xác nhận SAML được chuyển đến AWS STS thông qua API AssumeRoleWithSAML để yêu cầu thông tin đăng nhập bảo mật tạm thời.
  • AWS STS xác thực yêu cầu và tương tác với Identity Provider của tổ chức để ủy quyền phiên.
  • Một AWS IAM Role được cấu hình sẵn được giới hạn cho quyền truy cập Amazon S3 được giả định, cấp thông tin đăng nhập có thời hạn được liên kết với người dùng đã xác thực.
  • Client S3 dựa trên Python truy xuất các khóa truy cập tạm thời, khóa bí mật và mã thông báo phiên được cấp bởi AWS STS và lưu trữ chúng trong tệp cấu hình thông tin đăng nhập gốc được sử dụng bởi các công cụ tương tác với AWS.
  • Sử dụng thông tin đăng nhập trong tệp, công cụ trình duyệt S3 kết nối với Amazon S3, thực thi động các kiểm soát truy cập cấp thư mục dựa trên các thuộc tính người dùng (ví dụ: s3://bucket_name//). Người dùng có thể tải lên, tải xuống và quản lý các tệp của riêng họ một cách an toàn thông qua trình duyệt S3 tích hợp.

Ví dụ sau đây phác thảo cách tích hợp này hoạt động bằng cách sử dụng AWS SDK for Python (Boto3):

Khởi tạo luồng SAML trên Microsoft Azure bằng API OAuth 2.0:

class BrowserAzureCredentialsProvider(SamlCredentialsProvider):
def __init__(self: "BrowserAzureCredentialsProvider") -> None:
super().__init__()
self.idp_tenant: typing.Optional[str] = "Your_IDP_Tenant_ID"
self.client_id: typing.Optional[str] = "Your_Client_ID"
self.idp_response_timeout: int = 120
self.listen_port: int = None
self.redirectUri: typing.Optional[str] = None
# method to provide a listen socket for authentication
def get_listen_socket(self: "BrowserAzureCredentialsProvider") -> socket.socket:
s: socket.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1", 0))
# bind to any free port
s.listen()
self.listen_port = s.getsockname()[1]
#self.listen_port = 5439
return s
# method to grab the field parameters specified by end user.
# This method adds to it Azure specific parameters.
def add_parameter(self: "BrowserAzureCredentialsProvider", info: RedshiftProperty) -> None:
super().add_parameter(info)
# The value of parameter idp_tenant.
self.idp_tenant = info.idp_tenant
# The value of parameter client_id.
self.client_id = info.client_id
self.idp_response_timeout = info.idp_response_timeout
_logger.debug("Idp_tenant={}".format(self.idp_tenant))
_logger.debug("Client_id={}".format(self.client_id))
_logger.debug("Idp_response_timeout={}".format(self.idp_response_timeout))
_logger.debug("Listen_port={}".format(self.listen_port))

Chụp phản hồi SAML:

def get_saml_assertion(self: "BrowserAzureCredentialsProvider") -> str:
if self.idp_tenant == "" or self.idp_tenant is None:
raise InterfaceError("Missing required property: idp_tenant")
if self.client_id == "" or self.client_id is None:
raise InterfaceError("Missing required property: client_id")
if self.idp_response_timeout < 10:
raise InterfaceError("idp_response_timeout must be 10 seconds or greater.")
listen_socket: socket.socket = self.get_listen_socket()
self.redirectUri = "http://localhost:{port}/redshift/".format(port=self.listen_port)
_logger.debug("Listening for connection on port {}".format(self.listen_port))
try:
token: str = self.fetch_authorization_token(listen_socket)
saml_assertion: str = self.fetch_saml_response(token)
except Exception as e:
raise e
finally:
listen_socket.close()
_logger.debug("Got SAML assertion")
encoded_saml_assertion = self.wrap_and_encode_assertion(saml_assertion)
root = ET.fromstring(base64.b64decode(encoded_saml_assertion))
namespaces = {'saml': 'urn:oasis:names:tc:SAML:2.0:assertion'}
username = root.find('.//saml:NameID', namespaces).text
print(username)
awsroles = []
role_arns = []
for saml2attribute in root.iter('{urn:oasis:names:tc:SAML:2.0:assertion}Attribute'):
if (saml2attribute.get('Name') == 'https://aws.amazon.com/SAML/Attributes/Role'):
for saml2attributevalue in saml2attribute.iter('{urn:oasis:names:tc:SAML:2.0:assertion}AttributeValue'):
awsroles.append(saml2attributevalue.text)

Tạo Mã thông báo tạm thời từ Xác nhận SAML:
Sử dụng API assume_role_with_saml() của Boto3 để xác thực người dùng thông qua Azure Entra ID và tạo thông tin đăng nhập AWS tạm thời được giới hạn cụ thể cho thư mục được gán của họ trong một S3 bucket.

Giới hạn cấp thư mục động được thực hiện bằng cách nhúng một JSON chính sách phiên trực tiếp vào lệnh gọi API, hạn chế quyền đối với đường dẫn được chỉ định của người dùng, ví dụ: s3://bucket_name///.

Dưới đây là một ví dụ đơn giản về cách quyền truy cập bị hạn chế động bằng cách sử dụng các chính sách phiên và thông tin đăng nhập tạm thời:

s3_policy = {
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::bucket_name",
f"arn:aws:s3:::bucket_name/{username}/*"
]
}
]
}

Thực thi hàm assume_role_with_saml() của Boto3 để tạo Khóa truy cập/Khóa bí mật và Mã thông báo phiên:

client = boto3.client('sts')
response = client.assume_role_with_saml(RoleArn="your_iam_role_arn",
PrincipalArn="your_iam_idp_arn",
SAMLAssertion=encoded_saml_assertion, Policy=s3_policy, DurationSeconds=43200)
credentials = response['Credentials']
access_key = credentials['AccessKeyId']
secret_key = credentials['SecretAccessKey']
session_token = credentials['SessionToken']

Các thông tin đăng nhập này sau đó có thể được sử dụng để thực hiện các hoạt động đọc/ghi/xóa độc quyền trong thư mục S3 được giới hạn của người dùng, đảm bảo sự cô lập và quyền truy cập ít đặc quyền nhất trong khi vẫn duy trì tích hợp SSO liền mạch.

Các cải tiến bảo mật bao gồm:

Tối ưu hóa môi trường phát triển

Đối với các khối lượng công việc khoa học dữ liệu, ZS:

  • Tích hợp PyCharm IDE.
  • Triển khai tự động hóa quy trình làm việc Git.
  • Thêm lưu trữ hiệu suất cao bằng Amazon FSx for NetApp ONTAP.

Cải thiện hiệu suất toàn cầu

Để đảm bảo hiệu suất nhất quán trên toàn thế giới:

  • Triển khai tài nguyên trên nhiều AWS Region.
  • Triển khai Amazon CloudFront để phân phối UI.
  • Tối ưu hóa việc mở rộng fleet Amazon WorkSpaces Applications với các chỉ số sử dụng Amazon CloudWatch Alerts để cải thiện khả năng mở rộng chủ động.

Kiểm toán truy cập & hiệu suất nâng cao

  • Bật ghi nhật ký chỉ số sử dụng Amazon WorkSpaces Applications bằng Amazon S3 & AWS Glue Data Catalog và Amazon Athena cho Query Engine.
  • Bật chỉ số sử dụng Amazon WorkSpaces Applications thông qua Amazon CloudWatch để cải thiện khả năng mở rộng fleet Amazon WorkSpaces Applications chủ động.

Tác động kinh doanh

Nền tảng được nâng cao đã mang lại những cải tiến đáng kể:

  • Nhanh chóng làm quen, ít phụ thuộc vào IT hơn:
    Bố cục dựa trên vai trò và đào tạo tích hợp cho phép người dùng mới, đặc biệt là trong các vai trò phi kỹ thuật, bắt đầu trong vài phút mà không cần hỗ trợ IT, giảm thời gian làm quen và số lượng yêu cầu hỗ trợ.
  • Truy cập an toàn, không ma sát:
    Truy cập liên kết, tạm thời thông qua các IAM role và SSO đã thay thế thông tin đăng nhập tĩnh, thắt chặt bảo mật đồng thời cải thiện niềm tin của người dùng, tuân thủ và trải nghiệm trên tất cả các môi trường client.
  • Trải nghiệm người dùng được cá nhân hóa:
    Các danh mục ứng dụng được điều chỉnh loại bỏ sự lộn xộn, giúp người dùng tập trung vào các tác vụ phân tích cốt lõi và tăng hiệu quả.
  • Hiệu suất toàn cầu nhất quán:
    Được xây dựng trên AWS Fargate, Amazon ECS, Amazon WorkSpaces Applications và Amazon CloudFront, kiến trúc cloud-native mang lại khả năng sẵn sàng 99,99% với độ trễ toàn cầu dưới 100ms. Các nhóm phân tán tận hưởng hiệu suất nhất quán trên toàn thế giới với khả năng tiết kiệm chi phí có thể đo lường được, tất cả trong khi vẫn duy trì tuân thủ GDPR và HIPAA.
  • Vận hành tối ưu và hỗ trợ nhà phát triển:
    Tập trung các công cụ phân tích trong Amazon WorkSpaces Applications và tích hợp Amazon Redshift và Amazon S3 đã giảm sự phức tạp của cơ sở hạ tầng và hợp lý hóa việc quản lý thông tin đăng nhập. Amazon FSx for NetApp ONTAP cho phép các nhà khoa học dữ liệu chạy các khối lượng công việc ML đòi hỏi nhiều lưu trữ một cách liền mạch, tăng năng suất mà không ảnh hưởng đến hiệu suất hoặc sự cô lập.

Các phương pháp hay nhất và bài học kinh nghiệm

1. Tối ưu hóa hiệu suất

  • Giám sát và điều chỉnh dung lượng fleet một cách chủ động.
  • Triển khai phân bổ tài nguyên theo khu vực.
  • Kiểm tra hiệu suất thường xuyên.

2. Quản lý chi phí

  • Triển khai các chính sách tự động mở rộng.
  • Sử dụng mở rộng theo lịch trình cho các khối lượng công việc có thể dự đoán được.
  • Giám sát và tối ưu hóa việc sử dụng tài nguyên.

Kết luận

Việc triển khai Amazon WorkSpaces Applications được nâng cao của ZS chứng minh cách các tổ chức có thể xây dựng dựa trên các dịch vụ AWS để tạo ra các giải pháp an toàn, có khả năng mở rộng và thân thiện với người dùng. Bằng cách tập trung vào trải nghiệm người dùng, bảo mật và hiệu suất, ZS đã tạo ra một nền tảng phục vụ tốt hơn cơ sở người dùng toàn cầu của họ trong khi vẫn duy trì bảo mật và tuân thủ cấp doanh nghiệp.

Các bước tiếp theo

  • Khám phá các khả năng của Amazon WorkSpaces Applications cho tổ chức của bạn.
  • Cân nhắc triển khai các lớp UI tùy chỉnh cho các trường hợp sử dụng cụ thể.
  • Xem xét AWS IAM Identity Center cho các nhu cầu xác thực.
  • Liên hệ với các Kiến trúc sư Giải pháp AWS để được hướng dẫn triển khai.

Về tác giả


Kunal Jain là Trưởng nhóm Kỹ thuật Nền tảng Đám mây tại ZS Associates, nơi anh định hình kiến trúc đám mây để đáp ứng tiêu chuẩn cao của ZS về bảo mật, hiệu quả và đổi mới, đồng thời thúc đẩy các cải tiến trên cả sản phẩm và nền tảng nội bộ. Kể từ khi tìm hiểu AWS vào năm 2020, anh đã không ngừng mày mò với mọi công cụ mới trong bộ công cụ đám mây. Khi không bận rộn với bảng điều khiển AWS để tìm kiếm thử nghiệm tiếp theo, bạn sẽ thấy anh ấy say mê đọc sách và đắm chìm trong thế giới điện ảnh hấp dẫn.


Gourang Harhare là Kiến trúc sư Giải pháp Cấp cao tại AWS có trụ sở tại Pune, Ấn Độ. Với nền tảng vững chắc về thiết kế và triển khai hệ thống doanh nghiệp quy mô lớn, hiện đại hóa ứng dụng và kiến trúc cloud native, anh chuyên về AI/ML, serverless và công nghệ container. Anh thích giải quyết các vấn đề phức tạp và giúp khách hàng thành công trên AWS. Trong thời gian rảnh rỗi, anh thích chơi bóng bàn, đi bộ đường dài hoặc đọc sách.