Amazon QuickSight là một dịch vụ kinh doanh thông minh (BI) gốc trên đám mây, được quản lý hoàn toàn giúp dễ dàng kết nối với dữ liệu của bạn, tạo bảng thông tin tương tác và chia sẻ những bảng điều khiển này với hàng chục nghìn người dùng, trong chính QuickSight hoặc được nhúng trong phần mềm dưới dạng ứng dụng dịch vụ (SaaS).
Phiên bản QuickSight Enterprise gần đây đã thêm tính năng bảo mật cấp hàng (RLS) bằng cách sử dụng thẻ, một tính năng mới cho phép nhà phát triển chia sẻ một trang tổng quan với hàng chục nghìn người dùng, đồng thời đảm bảo rằng mỗi người dùng chỉ có thể xem và có quyền truy cập vào dữ liệu cụ thể. Điều này có nghĩa là khi một nhà cung cấp phần mềm độc lập (ISV) thêm bảng điều khiển được nhúng QuickSight vào ứng dụng của họ, họ không phải cung cấp cho người dùng cuối của mình trong QuickSight và có thể chỉ cần thiết lập các thẻ để lọc dữ liệu dựa trên người dùng của bảng điều khiển được phục vụ cho. Ví dụ: nếu một ISV muốn thiết lập một trang tổng quan được chia sẻ với 20,000 người dùng trên 100 khách hàng của một ứng dụng, với tất cả người dùng trong một khách hàng có quyền truy cập vào dữ liệu giống hệt nhau, thì tính năng mới này cho phép bạn chia sẻ một trang tổng quan duy nhất cho tất cả người dùng mà không phải thiết lập hoặc quản lý 20,000 người dùng trong QuickSight.
RLS được thực thi bằng thẻ đảm bảo rằng mỗi người dùng cuối chỉ nhìn thấy dữ liệu có liên quan đến họ, trong khi QuickSight tự động thay đổi quy mô để đáp ứng đồng thời của người dùng nhằm đảm bảo mọi người dùng cuối đều thấy hiệu suất nhanh nhất quán. Trong bài đăng này, chúng tôi xem xét làm thế nào điều này có thể được thực hiện.
Tổng quan về giải pháp
Để nhúng trang tổng quan mà không cần cấp phép người dùng, chúng tôi sử dụng API TạoNhúngURLForAnonymousUser, hoạt động với QuickSight's định giá dung lượng phiên. Với API này, máy chủ nhúng (logic trong ứng dụng SaaS) xác định và quản lý danh tính của người dùng mà bảng điều khiển đang được hiển thị (ngược lại với danh tính này được cung cấp và quản lý trong QuickSight).
Sơ đồ sau đây cho thấy quy trình công việc mẫu của bảng thông tin được nhúng bảo mật dữ liệu dựa trên người đang truy cập ứng dụng bằng RLS có thẻ.
Trong trường hợp này, một ISV có ứng dụng SaaS được truy cập bởi hai người dùng cuối. Một người là quản lý và người kia là giám sát công trường. Cả hai người dùng đều truy cập vào cùng một ứng dụng và cùng một bảng điều khiển QuickSight được nhúng trong ứng dụng và họ không được cung cấp trong QuickSight. Khi người giám sát trang web truy cập bảng điều khiển, họ chỉ thấy dữ liệu liên quan đến trang web của họ và khi người quản lý truy cập trang tổng quan, họ sẽ thấy dữ liệu liên quan đến tất cả các trang web mà họ quản lý.
Để đạt được hành vi này, chúng tôi sử dụng một tính năng mới cho phép định cấu hình bảo mật cấp hàng bằng thẻ. Phương pháp bảo mật dữ liệu trên bảng thông tin được nhúng này chỉ hoạt động khi bảng thông tin được nhúng mà không có sự cung cấp của người dùng (còn được gọi là nhúng ẩn danh). Quá trình bao gồm hai bước:
- Thiết lập các khóa thẻ trên các cột của bộ dữ liệu được sử dụng để tạo trang tổng quan.
- Đặt giá trị cho các khóa thẻ trong thời gian chạy khi nhúng trang tổng quan ẩn danh.
Thiết lập khóa thẻ trên các cột trong bộ dữ liệu được sử dụng để tạo trang tổng quan
ISV hoặc nhà phát triển có thể đặt các cột trên bộ dữ liệu bằng cách sử dụng CreateDataset
or UpdateDataset
API như sau:
Trong mã ví dụ trước, row-level-permission-tag-configuration
là phần tử mà bạn có thể sử dụng để xác định khóa thẻ trên các cột của tập dữ liệu. Đối với mỗi thẻ, bạn có thể xác định các mục tùy chọn sau:
- TagMultiValueDấu phân cách – Tùy chọn này khi được đặt trên một cột cho phép bạn chuyển nhiều giá trị cho thẻ trong thời gian chạy và các giá trị được phân tách bằng chuỗi được đặt cho tùy chọn này. Trong mẫu này, dấu phẩy được đặt làm chuỗi phân cách.
- Khớp tất cả giá trị – Tùy chọn này khi được đặt trên một cột cho phép bạn chuyển tất cả các giá trị của một cột trong thời gian chạy và các giá trị được biểu thị bằng chuỗi được đặt cho tùy chọn này. Trong mẫu này, dấu hoa thị được đặt là chuỗi khớp với tất cả.
Sau khi chúng tôi xác định các thẻ của mình, chúng tôi có thể bật hoặc tắt các quy tắc này bằng cách sử dụng Status
phần tử của API. Trong trường hợp này, giá trị được đặt thành ENABLED
. Để vô hiệu hóa các quy tắc, giá trị là DISABLED
. Sau khi các thẻ được bật, chúng tôi có thể chuyển các giá trị cho các thẻ trong thời gian chạy để bảo mật dữ liệu được hiển thị dựa trên người đang truy cập trang tổng quan.
Mỗi bộ dữ liệu có thể có tối đa 50 khóa thẻ.
Chúng tôi nhận được phản hồi sau đây cho CreateDataset
or UpdateDataset
API:
Cho phép tác giả truy cập dữ liệu được bảo vệ bằng khóa thẻ khi phân tích tác giả
Sau khi các khóa thẻ được đặt và bật trên tập dữ liệu, nó sẽ được bảo mật. Các tác giả khi sử dụng tập dữ liệu này để tạo trang tổng quan sẽ không thấy bất kỳ dữ liệu nào. Họ phải được cấp quyền để xem bất kỳ dữ liệu nào trong tập dữ liệu khi tạo trang tổng quan. Để cấp cho tác giả QuickSight quyền xem dữ liệu trong tập dữ liệu, hãy tạo tệp quyền hoặc tập dữ liệu quy tắc. Để biết thêm thông tin, xem Tạo quy tắc tập dữ liệu cho bảo mật cấp hàng. Sau đây là một tập dữ liệu quy tắc ví dụ.
Tên người dùng | tên_cột_1 | tên_cột_2 | tên_cột_3 |
quản trị viên/tác giả mẫu |
Trong tập dữ liệu mẫu này, chúng tôi có tên người dùng của tác giả được liệt kê trong cột Tên người dùng. Ba cột còn lại là các cột từ tập dữ liệu mà chúng tôi đặt khóa thẻ. Các giá trị được để trống cho các cột này đối với tác giả đã thêm vào bảng này. Điều này cho phép tác giả xem tất cả dữ liệu trong các cột này mà không có bất kỳ hạn chế nào khi họ thực hiện phân tích.
Đặt giá trị cho các khóa thẻ trong thời gian chạy khi nhúng trang tổng quan
Sau khi các khóa thẻ được đặt cho các cột của bộ dữ liệu, nhà phát triển sẽ đặt giá trị cho các khóa trong thời gian chạy khi nhúng trang tổng quan. Các nhà phát triển gọi API GenerateDashboardEmbedURLForAnonymousUser
để nhúng bảng điều khiển và chuyển các giá trị cho các khóa thẻ trong phần tử SessionTags
, như được hiển thị trong mã ví dụ sau:
Vì tính năng này bảo mật dữ liệu cho người dùng không được cung cấp trong QuickSight nên lệnh gọi API dành cho AnonymousUser
duy nhất và do đó tính năng này chỉ hoạt động với API GenerateDashboardEmbedURLForAnonymousUser
.
Mã ví dụ trước có các thành phần sau:
- Trong
tag_name_1
, bạn đặt hai giá trị (value1
vàvalue2
) sử dụngTagMultiValueDelimiter
được xác định khi đặt khóa thẻ (trong trường hợp này là dấu phẩy). - Trong
tag_name_2
, bạn đặt một giá trị là dấu hoa thị. Điều này cho phép khóa thẻ này được chỉ định tất cả các giá trị cho cột đó vì chúng tôi đã xác định dấu hoa thị làMatchAllValue
khi đặt khóa thẻ trên cột trước đó. - Trong
tag_name_3
, bạn đặt một giá trị (value3
).
Định nghĩa phản hồi API
Phản hồi của API có EmbedURL
, Status
và RequestID
. Bạn có thể nhúng URL này vào trang HTML của mình. Dữ liệu trong trang tổng quan này được bảo mật dựa trên các giá trị được chuyển đến khóa thẻ khi gọi API nhúng GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl (chuỗi) – Một URL sử dụng một lần mà bạn có thể đưa vào trang web phía máy chủ để nhúng trang tổng quan của mình. URL này có giá trị trong 5 phút. Thao tác API cung cấp cho URL một
auth_code
giá trị cho phép đăng nhập một (và chỉ một) vào phiên người dùng có giá trị trong tối đa 10 giờ. URL này hiển thị trang tổng quan với các quy tắc RLS được áp dụng dựa trên các giá trị được đặt cho khóa thẻ RLS. - Trạng thái (số nguyên) – Trạng thái HTTP của yêu cầu.
- RequestId (chuỗi) – ID yêu cầu AWS cho thao tác này.
Kiểm soát truy cập chi tiết
Bạn có thể đạt được kiểm soát truy cập chi tiết bằng cách sử dụng động Quản lý truy cập và nhận dạng AWS (IAM) tạo chính sách. Để biết thêm thông tin, xem Cô lập đối tượng thuê SaaS bằng chính sách IAM được tạo động. Khi sử dụng GenerateEmbedUrlForAnonymousUser
API để nhúng, bạn cần đề cập đến hai loại tài nguyên trong chính sách IAM: không gian tên ARN người dùng ẩn danh của bạn hầu như thuộc về và ARN bảng điều khiển có thể được sử dụng trong AuthorizedResourceArns
giá trị tham số đầu vào. Các phiên được tạo bằng API này có thể truy cập các tài nguyên được ủy quyền và các tài nguyên (bảng điều khiển) được chia sẻ với không gian tên.
Bởi vì người dùng ẩn danh là một phần của không gian tên, nên họ có thể truy cập bất kỳ trang tổng quan nào được chia sẻ với không gian tên đó, bất kể chúng có được chuyển rõ ràng qua AuthorizedResourceArns
tham số.
Để cho phép danh tính người gọi tạo URL cho bất kỳ người dùng nào và bất kỳ trang tổng quan nào, Resource
khối của chính sách có thể được đặt thành *
. Để cho phép danh tính người gọi tạo URL cho bất kỳ người dùng ẩn danh nào trong một không gian tên cụ thể (chẳng hạn như Tenant1
), Resource
một phần của chính sách có thể được thiết lập để arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Điều này cũng tương tự đối với ID trang tổng quan. Để tạo chính sách động, bạn cũng có thể sử dụng trình giữ chỗ cho không gian tên và người dùng.
Đoạn mã sau là một ví dụ về chính sách IAM:
Trường hợp sử dụng
OkTank là một ISV trong lĩnh vực chăm sóc sức khỏe. Họ có một ứng dụng SaaS được các bệnh viện khác nhau trên các vùng khác nhau của đất nước sử dụng để quản lý doanh thu của họ. OkTank có hàng nghìn nhân viên chăm sóc sức khỏe truy cập vào ứng dụng của họ và đã nhúng các hoạt động liên quan đến hoạt động kinh doanh của họ vào bảng điều khiển QuickSight trong ứng dụng của họ. OkTank không muốn quản lý riêng người dùng của họ trong QuickSight và muốn bảo mật dữ liệu dựa trên việc người dùng từ bệnh viện nào đang truy cập ứng dụng của họ. OkTank đang bảo mật dữ liệu trên bảng điều khiển trong thời gian chạy bằng bảo mật cấp hàng bằng cách sử dụng thẻ.
OkTank có các bệnh viện (Bệnh viện phía Bắc, Bệnh viện phía Nam và Bệnh viện Trung tâm thành phố) ở các khu vực Trung tâm, Đông, Nam và Tây.
Trong ví dụ này, những người dùng sau truy cập ứng dụng của OkTank và bảng điều khiển được nhúng. Mỗi người dùng có một mức quy tắc hạn chế nhất định xác định dữ liệu nào họ có thể truy cập trong trang tổng quan. PowerUser
là một siêu người dùng có thể xem dữ liệu cho tất cả các bệnh viện và khu vực.
Người dùng ứng dụng OkTank | Bệnh viện | Khu vực |
Người dùng phía bắc | Bệnh viện bắc | Trung và Đông |
NorthAdmin | Bệnh viện bắc | Tất cả các vùng |
người dùng nam | bệnh viện nam | miền Nam |
NamAdmin | bệnh viện nam | Tất cả các vùng |
người sử dụng năng lượng | Tất cả các bệnh viện | Tất cả các vùng |
Không ai trong số những người dùng này đã được cung cấp trong QuickSight. OkTank quản lý những người dùng này trong ứng dụng của riêng mình và do đó biết từng người dùng thuộc khu vực và bệnh viện nào. Khi bất kỳ người dùng nào trong số này truy cập bảng điều khiển QuickSight được nhúng trong ứng dụng, OkTank phải bảo mật dữ liệu trên bảng điều khiển để người dùng chỉ có thể xem dữ liệu cho khu vực và bệnh viện của họ.
Đầu tiên, OkTank đã tạo các khóa thẻ trên tập dữ liệu mà họ đang sử dụng để cung cấp năng lượng cho bảng điều khiển. trong họ UpdateDataset
lệnh gọi API, RowLevelPermissionTagConfiguration
phần tử trên tập dữ liệu như sau:
Thứ hai, trong thời gian chạy khi nhúng trang tổng quan qua GenerateDashboardEmbedURLForAnonymousUser
API, họ đặt SessionTags
cho mỗi người dùng.
SessionTags
cho NorthUser
trong GenerateDashboardEmbedURLForAnonymousUser
Cuộc gọi API như sau:
SessionTags
cho NorthAdmin
như sau:
SessionTags
cho SouthUser
như sau:
SessionTags
cho SouthAdmin
như sau:
SessionTags
cho PowerUser
như sau:
Ảnh chụp màn hình sau đây cho thấy những gì SouthUser
xem liên quan đến bệnh viện Nam ở khu vực phía Nam.
Ảnh chụp màn hình sau đây cho thấy những gì SouthAdmin
thấy liên quan đến Bệnh viện Nam ở tất cả các khu vực.
Ảnh chụp màn hình sau đây cho thấy những gì PowerUser
thấy liên quan đến tất cả các bệnh viện trong tất cả các khu vực.
Dựa trên thẻ phiên, OkTank đã bảo mật dữ liệu trên bảng điều khiển được nhúng sao cho mỗi người dùng chỉ nhìn thấy dữ liệu cụ thể dựa trên quyền truy cập của họ. Bạn có thể truy cập bảng điều khiển với tư cách là một trong những người dùng (bằng cách thay đổi người dùng trong menu thả xuống ở trên cùng bên phải) và xem dữ liệu thay đổi như thế nào dựa trên người dùng đã chọn.
Nhìn chung, với bảo mật cấp hàng bằng cách sử dụng thẻ, OkTank có thể cung cấp trải nghiệm phân tích hấp dẫn trong ứng dụng SaaS của họ, đồng thời đảm bảo rằng mỗi người dùng chỉ nhìn thấy dữ liệu phù hợp mà không cần phải cung cấp và quản lý người dùng trong QuickSight. QuickSight cung cấp tùy chọn phân tích an toàn, có khả năng mở rộng cao mà bạn có thể thiết lập và đưa vào sản xuất trong vài ngày, thay vì vài tuần hoặc vài tháng trước đây.
Kết luận
Sự kết hợp của bảng điều khiển nhúng cho người dùng không được cung cấp trong QuickSight và bảo mật cấp hàng bằng cách sử dụng thẻ cho phép các nhà phát triển và ISV nhanh chóng và dễ dàng thiết lập các phân tích tinh vi, tùy chỉnh cho người dùng ứng dụng của họ—tất cả mà không cần bất kỳ thiết lập hoặc quản lý cơ sở hạ tầng nào trong khi mở rộng quy mô cho hàng triệu người dùng . Để biết thêm thông tin cập nhật từ Phân tích nhúng QuickSight, Xem Có gì mới trong Hướng dẫn sử dụng Amazon QuickSight.
Về các tác giả
Raji Sivasubramaniam là Kiến trúc sư giải pháp chuyên gia tại AWS, tập trung vào Analytics. Raji có 20 năm kinh nghiệm trong việc kiến trúc các giải pháp Quản lý dữ liệu doanh nghiệp, Business Intelligence và Analytics từ đầu đến cuối cho các công ty Fortune 500 và Fortune 100 trên toàn cầu. Cô ấy có kinh nghiệm chuyên sâu về phân tích và dữ liệu chăm sóc sức khỏe tích hợp với nhiều bộ dữ liệu chăm sóc sức khỏe bao gồm thị trường được quản lý, nhắm mục tiêu theo bác sĩ và phân tích bệnh nhân. Khi rảnh rỗi, Raji thích đi bộ đường dài, tập yoga và làm vườn.
Srikanth Baheti là một Kiến trúc sư Giải pháp World Wide Sr. Chuyên biệt cho Amazon QuickSight. Ông bắt đầu sự nghiệp của mình với tư cách là một nhà tư vấn và làm việc cho nhiều tổ chức tư nhân và chính phủ. Sau đó, anh làm việc cho PerkinElmer Health and Sciences & eResearch Technology Inc, nơi anh chịu trách nhiệm thiết kế và phát triển các ứng dụng web có lưu lượng truy cập cao, các đường ống dẫn dữ liệu có thể mở rộng và bảo trì cao cho các nền tảng báo cáo sử dụng dịch vụ AWS và máy tính Serverless.
Kareem Syed-Mohammed là Giám đốc sản phẩm tại Amazon QuickSight. Anh ấy tập trung vào phân tích nhúng, API và trải nghiệm của nhà phát triển. Trước QuickSight, anh ấy đã làm việc với AWS Marketplace và Amazon bán lẻ với tư cách là PM. Kareem bắt đầu sự nghiệp của mình với tư cách là nhà phát triển và sau đó là PM cho công nghệ trung tâm cuộc gọi, Chuyên gia địa phương và Quảng cáo cho Expedia. Anh ấy đã làm cố vấn cho McKinsey and Company trong một thời gian ngắn.
- '
- "
- &
- 000
- 100
- 11
- truy cập
- Tài khoản
- Hoạt động
- quảng cáo
- Tất cả
- đàn bà gan dạ
- phân tích
- api
- API
- ứng dụng
- Các Ứng Dụng
- các ứng dụng
- ứng dụng
- tác giả
- AWS
- xây dựng
- kinh doanh
- kinh doanh thông minh
- cuộc gọi
- Sức chứa
- Tuyển Dụng
- mã
- Cột
- Các công ty
- công ty
- máy tính
- chuyên gia tư vấn
- khách hàng
- bảng điều khiển
- dữ liệu
- quản lý dữ liệu
- Nhà phát triển
- phát triển
- Downtown
- nhân viên
- Doanh nghiệp
- kinh nghiệm
- NHANH
- Đặc tính
- Chính phủ
- cho sức khoẻ
- chăm sóc sức khỏe
- tại đây
- Cao
- đi bộ đường dài
- Bệnh viện
- bệnh viện
- Độ đáng tin của
- HTTPS
- IAM
- Bản sắc
- Bao gồm
- thông tin
- Cơ sở hạ tầng
- Sự thông minh
- tương tác
- IT
- Key
- phím
- Cấp
- địa phương
- Làm
- quản lý
- thị trường
- thị trường
- Trận đấu
- tháng
- tính năng mới
- Bắc
- Hoạt động
- Tùy chọn
- Nền tảng khác
- hiệu suất
- bác sĩ
- Nền tảng
- điều luật
- quyền lực
- riêng
- Sản phẩm
- Sản lượng
- tài nguyên
- Thông tin
- phản ứng
- bán lẻ
- doanh thu
- Lăn
- quy tắc
- SaaS
- mở rộng quy mô
- KHOA HỌC
- an ninh
- nhìn
- chọn
- Không có máy chủ
- DỊCH VỤ
- định
- thiết lập
- Chia sẻ
- chia sẻ
- ngắn
- Các trang web
- So
- Phần mềm
- Giải pháp
- miền Nam
- Không gian
- bắt đầu
- Tuyên bố
- Trạng thái
- Công nghệ
- Công nghệ
- thời gian
- hàng đầu
- giao thông
- Cập nhật
- Người sử dụng
- giá trị
- web
- Ứng dụng web
- hướng Tây
- CHÚNG TÔI LÀ
- ở trong
- quy trình làm việc
- công trinh
- thế giới
- năm
- Yoga