Cách sử dụng AD FS user và Tableau để truy vấn dữ liệu một cách an toàn trong AWS Lake Formation

Những khách hàng có ý thức về bảo mật thường áp dụng kiến ​​trúc Zero Trust security. Zero Trust là một mô hình bảo mật tập trung vào ý tưởng rằng quyền truy cập vào dữ liệu không nên chỉ dựa trên bảo mật ở mức phân chia các lớp mạng, mà yêu cầu người dùng và hệ thống chứng minh danh tính và độ tin cậy của họ và thực thi các quy tắc ủy quyền chi tiết dựa trên danh tính trước khi cấp quyền truy cập vào  ứng dụng, dữ liệu và các hệ thống khác.

Một số khách hàng dựa vào identity providers (IdPs) bên thứ ba như  Active Directory Federated Services (AD FS) như một hệ thống để quản lý thông tin xác thực và chứng minh danh tính cũng như độ tin cậy. Người dùng có thể sử dụng thông tin đăng nhập AD FS của họ để xác thực với các hệ thống độc lập nhưng có liên quan khác nhau, bao gồm AWS Management Console (để biết thêm thông tin, hãy xem Enabling SAML 2.0 federated users to access the AWS Management Console).

Trong bối cảnh phân tích, một số khách hàng mở rộng Zero Trust cho dữ liệu được lưu trữ trong các kho dữ liệu, bao gồm các công cụ kinh doanh thông minh (BI) khác nhau được sử dụng để truy cập vào dữ liệu đó. Mô hình kho dữ liệu phổ biến là lưu trữ dữ liệu trong Amazon Simple Storage Service (Amazon S3) và truy vấn dữ liệu bằng Amazon Athena.

AWS Lake Formation cho phép bạn xác định và thực thi các chính sách truy cập ở cấp độ cơ sở dữ liệu, bảng và cột khi sử dụng truy vấn Athena để đọc dữ liệu được lưu trữ trong Amazon S3. Các nhà cung cấp nhận dạng Lake Formation hổ trợ Active DirectorySecurity Assertion Markup Language (SAML) như là OKTA và  Auth0. Hơn nữa, Lake Formation tích hợp an toàn với dịch vụ AWS BI  Amazon QuickSight. QuickSight cho phép bạn dễ dàng tạo và xuất bản các bảng điều khiển BI tương tác và hỗ trợ xác thực thông qua  Active Directory. Tuy nhiên, nếu bạn sử dụng các công cụ BI thay thế như Tableau, bạn có thể muốn sử dụng thông tin xác  Active Directory của mình để truy cập dữ liệu được lưu trữ trong Lake Formation.

Qua bài này, chúng ta đã có thể sử dụng thông tin đăng nhập AD FS với Tableau để triển khai kiến ​​trúc Zero Trust và truy vấn dữ liệu một cách an toàn trong Amazon S3 và Lake Formation.

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

Trong kiến ​​trúc này, thông tin đăng nhập của người dùng được quản lý bởi Active Directory chứ không phải  Amazon Identity and Access Management (IAM). Mặc dù Tableau cung cấp trình connector để kết nối Tableau với Athena, trình kết nối yêu cầu ID khóa truy cập AWS và khóa truy cập bí mật AWS thường được sử dụng cho programmatic access. Tạo người dùng IAM với programmatic access để Tableau sử dụng là một giải pháp tiềm năng, tuy nhiên, một số khách hàng đã đưa ra quyết định kiến ​​trúc rằng quyền truy cập vào tài khoản AWS được thực hiện thông qua một quy trình liên kết sử dụng Active Directory chứ không phải người dùng IAM.

Trong bài này, chúng ta có thể sử dụng trình điều khiển Athena ODBC kết hợp với thông tin đăng nhập AD FS để truy vấn dữ liệu mẫu trong datalake mới được tạo. Chúng ta mô phỏng môi trường bằng cách bật liên kết tới AWS bằng AD FS 3.0 và SAML 2.0. Sau đó, sẽ hướng dẫn bạn thiết lập một datalake bằng cách sử dụng Lake Formation. Cuối cùng, chúng ta cấu hình trình điều khiển ODBC cho Tableau để truy vấn dữ liệu của bạn trong data lake bằng thông tin đăng nhập AD FS của bạn một cách an toàn nhất.

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

Các điều kiện tiên quyết sau là bắt buộc để hoàn thành hướng dẫn này:

Tạo môi trường của bạn

Để mô phỏng môi trường production, chúng ta tạo một VPC tiêu chuẩn trong  Amazon Virtual Private Cloud (Amazon VPC) với một mạng con riêng và một mạng con công cộng. Bạn có thể làm tương tự bằng cách sử dụng VPC wizard. Phiên bản Amazon Elastic Compute Cloud (Amazon EC2) của chúng ta chạy ứng dụng khách Tableau nằm trong một mạng con riêng và có thể truy cập thông qua EC2 bastion host. Để đơn giản, việc kết nối với Amazon S3,  AWS Glue và Athena được thực hiện thông qua cổng NAT và internet gateway do VPC wizard thiết lập. Theo tùy chọn, bạn có thể thay thế NAT gateway bằng các AWS PrivateLink endpoints ( cần AWS Security Token Service (AWS STS), Amazon S3, Athena, và AWS Glue endpoints ) để đảm bảo lưu lượng truy cập vẫn nằm trong mạng AWS.

Sơ đồ sau đây minh họa kiến trúc môi trường của chúng ta.

Sau khi bạn tạo VPC của mình với các mạng con riêng tư và công khai của nó, bạn có thể tiếp tục xây dựng các yêu cầu khác, chẳng hạn như Active Directory và Lake Formation. Hãy bắt đầu với Active Directory.

Bật liên kết với AWS bằng AD FS 3.0 và SAML 2.0

AD FS 3.0, một thành phần của Windows Server, hỗ trợ SAML 2.0 và được tích hợp với IAM. Sự tích hợp này cho phép người dùng Active Directory liên kết với AWS bằng thông tin đăng nhập thư mục công ty, chẳng hạn như tên người dùng và mật khẩu từ Active Directory. Trước khi bạn có thể hoàn thành phần này, AD FS phải được định cấu hình và chạy.

Để thiết lập AD FS, hãy làm theo hướng dẫn trong  Setting up trust between AD FS and AWS and using Active Directory credentials to connect to Amazon Athena with ODBC driver. Phần đầu tiên của bài này giải thích chi tiết cách thiết lập AD FS và thiết lập sự tin cậy giữa AD FS và Active Directory. Phần tiếp theo kết thúc với việc thiết lập trình điều khiển ODBC cho Athena, bạn có thể bỏ qua. Trong bài này chúng ta sẽ tạo một nhóm tên là ArunADFSTest. Nhóm này liên quan đến một vai trò trong tài khoản AWS của bạn, mà bạn sử dụng sau này.

Khi bạn đã xác minh thành công rằng bạn có thể đăng nhập bằng IdP của mình, bạn đã sẵn sàng định cấu hình trình điều khiển ODBC trong môi trường Windows của mình để kết nối với Athena.

Thiết lập một datalake bằng cách sử dụng Lake Formation

Lake Formation là một dịch vụ được quản lý hoàn toàn giúp bạn dễ dàng xây dựng, bảo mật và quản lý các datalake. Lake Formation cung cấp mô hình quyền của riêng mình để tăng cường mô hình quyền IAM. Mô hình quyền được xác định tập trung này cho phép truy cập chi tiết vào dữ liệu được lưu trữ trong các datalake thông qua một cơ chế cấp / thu hồi đơn giản. Chúng ta sử dụng mô hình quyền này để cấp quyền truy cập vào vai trò AD FS đã tạo trước đó.

  1. Trên bảng điều khiển Lake Formation, bạn sẽ nhận được một lời nhắn chào mừng khi bạn truy cập vào Lake formation lần đầu tiên.

Lời nhắn yêu cầu bạn chọn người dùng và vai trò quản trị ban đầu.

  1. Chọn Add myself và chọn Get Started.

Chúng ta sử dụng cơ sở dữ liệu mẫu do Lake Formation cung cấp, nhưng bạn có thể sử dụng tập dữ liệu của riêng mình. Để biết hướng dẫn về cách tải tập dữ liệu của riêng bạn, hãy xem  Getting Started with Lake Formation. Với Lake Formation đã được cấu hình, chúng ta phải cấp quyền truy cập đọc cho vai trò AD FS  (ArunADFSTest) đã tạo ở bước trước.

  1. Trong ngăn dẫn hướng, chọn Databases.
  2. Chọn cơ sở dữ liệu được sampledb.
  3. Trên menu Actions, chọn Grant.

Chúng ta cấp quyền truy cập vai trò SamlOdbcAccess cho sampledb.

  1. Đối với Principals, hãy chọn IAM users and roles..
  2. Đối với IAM users and roles, hãy chọn vai trò ArunADFSTest.
  3. Chọn Named data catalog resources.
  4. Đối với Databases, hãy chọn cơ sở dữ liệu được sampledb.
  5. Đối với Tables¸ chọn All tables.
  1. Đặt các quyền của bảng thành SelectDescribe.
  2. Đối với Data permissions, hãy chọn All data access.
  3. Chọn Grant.

Người dùng AD FS của chúng ta đảm nhận vai trò ArunADFSTest, đã được cấp quyền truy cập vào sampledb bởi Lake Formation. Tuy nhiên, vai trò ArunADFSTest yêu cầu quyền truy cập vào Lake Formation, Athena, AWS Glue và Amazon S3. Theo dõi practice of least privilege, AWS xác định các chính sách cho các nhân vật Lake Formation cụ thể. Người dùng của chúng ta phù hợp với tính cách Data Analyst persona, yêu cầu đủ quyền để chạy các truy vấn.

  1. Thêm AmazonAthenaFullAccess managed policy (để biết hướng dẫn, hãy xem Adding and removing IAM identity permissions) và chính sách nội tuyến sau vào vai trò  ArunADFSTest.

{

    “Version”: “2012-10-17”,

    “Statement”: [

        {

            “Effect”: “Allow”,

            “Action”: [

                “lakeformation:GetDataAccess”,

                “glue:GetTable”,

                “glue:GetTables”,

                “glue:SearchTables”,

                “glue:GetDatabase”,

                “glue:GetDatabases”,

                “glue:GetPartitions”,

                “lakeformation:GetResourceLFTags”,

                “lakeformation:ListLFTags”,

                “lakeformation:GetLFTag”,

                “lakeformation:SearchTablesByLFTags”,

                “lakeformation:SearchDatabasesByLFTags”

            ],

            “Resource”: “*”

        }

    ]

}

Mỗi lần Athena chạy một truy vấn, nó sẽ lưu trữ kết quả trong một thùng S3, được định cấu hình làm vị trí kết quả truy vấn trong Athena.

  1. Tạo một S3 bucket và trong bucket mới này, hãy tạo một thư mục mới có tên gọi là athena_results.
  2. Cập nhật cài đặt trên bảng điều khiển Athena để sử dụng thư mục mới tạo của bạn.

Tableau sử dụng Athena để chạy truy vấn và đọc kết quả từ Amazon S3, có nghĩa là vai trò ArunADFSTest yêu cầu quyền truy cập vào thư mục S3 mới tạo của bạn.

  1. Đính kèm chính sách nội tuyến sau vào vai trò ArunADFSTest

{

    “Version”: “2012-10-17”,

    “Statement”: [

        {

            “Effect”: “Allow”,

            “Action”: [

                “s3:GetObject”,

                “s3:PutObject”,

                “s3:PutObjectAcl”

            ],

            “Resource”: “arn:aws:s3:::[BUCKET_NAME]/athena_results/*”

        }

    ]

}

Người dùng AD FS của chúng ta hiện có thể đảm nhận một vai trò có đủ đặc quyền để truy vấn cơ sở dữ liệu mẫu. Bước tiếp theo là cấu hình trình điều khiển ODBC trên máy khách.

Định cấu hình trình điều khiển Athena ODBC

Athena là một dịch vụ truy vấn tương tác và không máy chủ được quản lý cho phép bạn phân tích dữ liệu của mình trong Amazon S3 bằng cách sử dụng Structured Query Language(SQL). Bạn có thể sử dụng Athena để truy vấn trực tiếp dữ liệu nằm trong Amazon S3 hoặc đăng ký với Lake Formation. Athena cung cấp cho bạn trình điều khiển ODBC and JDBC để tích hợp dễ dàng với các công cụ phân tích dữ liệu của bạn (chẳng hạn như Microsoft Power BI, Tableau hoặc SQL Workbench) để có được thông tin chi tiết liên tục về dữ liệu của bạn trong vài phút.

Để kết nối với môi trường Lake Formation của chúng ta , trước tiên chúng ta cần cài đặt và định cấu hình trình điều khiển Athena ODBC trên môi trường Windows.

  1. Tải xuống trình điều khiển Athena ODBC có liên quan đến môi trường Windows của bạn.
  2. Cài đặt trình điều khiển bằng cách chọn tệp trình điều khiển bạn đã tải xuống (trong trường hợp của chúng ta là Simba+Athena+1.1+64-bit.msi).
  1. Chọn Next trên trang chào mừng.
  1. Đọc Thỏa thuận cấp phép người dùng cuối và nếu bạn đồng ý với nó, hãy chọn  I Accept the terms in the License Agreement và chọn Next.
  1. Để lại vị trí cài đặt mặc định cho trình điều khiển ODBC và chọn Next.
  1. Chọn Cài đặt để bắt đầu cài đặt.
  1. Nếu cửa sổ User Access Control xuất hiện, hãy chọn Yes để cho phép tiếp tục cài đặt trình điều khiển.
  1. Khi quá trình cài đặt trình điều khiển hoàn tất, hãy chọn Finish để đóng trình cài đặt.
  1. Mở ứng dụng cấu hình ODBC của Windows bằng cách chọn thanh Start và tìm kiếm ODBC.
  2. Mở phiên bản tương ứng với phiên bản Athena ODBC mà bạn đã cài đặt, trong trường hợp của chúng ta là 64 bit.
  1. Trên tab User DSN, chọn Add.
  1. Chọn trình điều khiển Simba Athena ODBC và chọn Finish.

Định cấu hình trình điều khiển ODBC để xác thực AD FS

Bây giờ chúng ta cần cấu hình trình điều khiển.

  1. Chọn trình điều khiển trên trang Driver configuration.
  2. Đối với Data Source Name, hãy nhập sampledb.
  3. Đối với Description, hãy nhập  Lake Formation Sample Database.
  4. Đối với AWS Region, hãy nhập eu-west-1hoặc Khu vực bạn đã sử dụng khi định cấu hình Hồ hình thành.
  5. Đối với Metadata Retrieval Method, hãy chọn Auto.
  6. Đối với S3 Output Location, hãy nhập s3://[BUCKET_NAME]/athena_results/.
  7. Đối với Encryption Options, hãy chọn NOT_SET.
  8. Xóa phần còn lại của các tùy chọn.
  9. Chọn Authentication Options.
  1. Đối với Authentication Type, hãy nhập ADFS.
  2. Đối với User, hãy nhập [DOMAIN]\[USERNAME].
  3. Đối với Password, hãy nhập your domain user password.
  4. Đối với Preferred Role, hãy nhập aws:iam::[ACCOUNT NUMBER]:role/ArunADFSTest.
    Vai trò ưu tiên là cùng một vai trò được định cấu hình trong phần trước (ArunADFSTest).
  5. Đối với IdP Host, hãy nhập URL liên kết AD mà bạn đã định cấu hình trong quá trình thiết lập AD FS.
  6. Đối với IdP Port, hãy nhập 443.
  7. Chọn SSL Insecure.
  8. Chọn OK.
  1. Chọn Test trên trang cấu hình ban đầu để kiểm tra kết nối.
  2. Khi bạn thấy thông báo xác nhận thành công, hãy chọn OK.

Bây giờ chúng ta có thể kết nối với cơ sở dữ liệu mẫu Lake Formation từ môi trường máy tính để bàn của chúng ta bằng cách sử dụng trình điều khiển Athena ODBC. Bước tiếp theo là sử dụng Tableau để truy vấn dữ liệu của chúng ta bằng kết nối ODBC.

Kết nối với dữ liệu của bạn bằng Tableau

Để kết nối với dữ liệu của bạn, hãy hoàn thành các bước sau:

  1. Mở phiên bản Tableau trên máy tính của bạn.
  2. Trong To a Server, chọn More.
  3. Trên danh sách các trình kết nối đã cài đặt Tableau có sẵn, hãy chọn Other Databases (ODBC).
  4. Chọn cơ sở dữ liệu ODBC mà bạn đã tạo trước đó.
  5. Chọn Connect.
  6. Chọn Sign In.

Khi sổ làm việc Tableau mở ra, hãy chọn cơ sở dữ liệu, lược đồ và bảng mà bạn muốn truy vấn.

  1. Đối với Database, hãy chọn cơ sở dữ liệu như được liệt kê trong thiết lập ODBC (cho bài đăng này, AwsDataCatalog).
  2. Đối với Schema, hãy chọn lược đồ của bạn (sampledb).
  3. Đối với Table, hãy tìm kiếm và chọn bảng của bạn (elb_logs).
  4. Kéo bảng vào khu vực làm việc để bắt đầu truy vấn của bạn và phát triển thêm báo cáo.

Clean up

AWS Lake Formation cung cấp các kiểm soát truy cập dựa trên cơ sở dữ liệu, bảng, cột và thẻ, và chia sẻ nhiều tài khoản miễn phí. Lake Formation tính phí cho các yêu cầu giao dịch và cho việc lưu trữ siêu dữ liệu. Ngoài việc cung cấp chế độ xem dữ liệu nhất quán và thực thi bảo mật cấp độ hàng và cấp độ ô, API lưu trữ hình thành hồ quét dữ liệu trong Amazon S3 và áp dụng bộ lọc hàng và ô trước khi trả về kết quả cho các ứng dụng. Có một khoản phí cho việc lọc này. Để đảm bảo rằng bạn không bị tính phí cho bất kỳ dịch vụ nào mà bạn không cần nữa, hãy tắt các máy chủ EC2 mà bạn đã tạo. Xoá các objects bên trong Amazon S3 mà bạn không còn yêu cầu nữa, vì bạn phải trả phí cho các objects được lưu trữ trong S3 bucket.

Cuối cùng, xóa các Active Directory mà bạn có thể đã tạo.

Kết luận

Lake Formation giúp đơn giản hóa việc thiết lập một datalake an toàn và sau đó sử dụng datalake với sự lựa chọn của bạn về các dịch vụ phân tích và máy học, bao gồm cả Tableau. Trong bài đăng này, chúng ta đã cùng kết nối với datalake của mình bằng thông tin đăng nhập AD FS một cách đơn giản và an toàn bằng cách sử dụng trình điều khiển Athena ODBC. Người dùng AD FS của bạn được định cấu hình trong trình điều khiển ODBC, trình điều khiển này sau đó đảm nhận vai trò trong AWS. Vai trò này chỉ được cấp quyền truy cập vào dữ liệu bạn yêu cầu thông qua Lake Formation.

Để tìm hiểu thêm về Lake Formation, hãy xem Lake Formation Developer Guide hoặc Lake Formation workshop.


Bài được dịch từ bài viết trên AWS Blogs, bạn có thể xem bài viết gốc tại đây.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: