Logo Zephyrnet

Chia sẻ dữ liệu của bạn một cách an toàn trên các tài khoản AWS bằng AWS Lake Formation

Ngày:

Hồ dữ liệu đã trở nên rất phổ biến với các tổ chức muốn có một kho lưu trữ tập trung cho phép bạn lưu trữ tất cả dữ liệu có cấu trúc và dữ liệu phi cấu trúc của mình ở mọi quy mô. Bởi vì dữ liệu được lưu trữ nguyên bản, không cần phải chuyển đổi nó thành một lược đồ được xác định trước. Khi bạn có các trường hợp sử dụng kinh doanh mới, bạn có thể dễ dàng xây dựng các loại phân tích mới trên hồ dữ liệu, bất kỳ lúc nào.

Trong các trường hợp sử dụng trong thế giới thực, thông thường có các yêu cầu chia sẻ dữ liệu được lưu trữ trong hồ dữ liệu với nhiều công ty, tổ chức hoặc đơn vị kinh doanh. Ví dụ: bạn có thể muốn cung cấp dữ liệu của mình cho các bên liên quan trong một công ty khác cho một chiến dịch đồng tiếp thị giữa hai công ty. Đối với bất kỳ trường hợp sử dụng nào trong số này, bên sản xuất muốn chia sẻ dữ liệu một cách an toàn và hiệu quả mà không cần phải sao chép toàn bộ cơ sở dữ liệu.

Vào tháng 2019 năm XNUMX, chúng tôi đã thông báo về sự sẵn có chung của Sự hình thành hồ AWS, một dịch vụ được quản lý hoàn toàn giúp bạn dễ dàng thiết lập một hồ dữ liệu an toàn trong nhiều ngày. Khả năng quản lý quyền của AWS Lake Formation giúp đơn giản hóa việc bảo mật và quản lý các hồ dữ liệu phân tán trên nhiều tài khoản AWS thông qua cách tiếp cận tập trung, cung cấp khả năng kiểm soát truy cập chi tiết cho Keo AWS Danh mục dữ liệu và Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) vị trí.

Có hai tùy chọn để chia sẻ cơ sở dữ liệu và bảng của bạn với một tài khoản khác bằng cách sử dụng kiểm soát truy cập nhiều tài khoản của Lake Formation:

  • Kiểm soát truy cập dựa trên thẻ Lake Formation (được khuyến nghị)
  • Tài nguyên được đặt tên cho Hệ tầng Hồ

Trong bài đăng này, tôi giải thích sự khác biệt giữa hai tùy chọn này và hướng dẫn bạn qua các bước để định cấu hình chia sẻ nhiều tài khoản.

Tổng quan về kiểm soát truy cập dựa trên thẻ

Kiểm soát truy cập dựa trên thẻ Lake Formation là một chiến lược ủy quyền xác định quyền dựa trên các thuộc tính. Trong Lake Formation, các thuộc tính này được gọi là Thẻ LF. Bạn có thể đính kèm các thẻ LF vào tài nguyên Danh mục dữ liệu và các nguyên tắc của Lake Formation. Người quản trị hồ dữ liệu có thể chỉ định và thu hồi quyền đối với tài nguyên của Hồ hình thành bằng cách sử dụng các thẻ LF này. Để biết thêm chi tiết về kiểm soát truy cập dựa trên thẻ, hãy tham khảo Dễ dàng quản lý hồ dữ liệu của bạn trên quy mô lớn bằng cách sử dụng kiểm soát truy cập dựa trên Thẻ của AWS Lake Formation.

Sơ đồ sau đây minh họa kiến ​​trúc của phương pháp này.

Chúng tôi khuyên bạn nên kiểm soát quyền truy cập dựa trên thẻ cho các trường hợp sử dụng sau:

  • Bạn có một số lượng lớn các bảng và nguyên tắc mà người quản trị hồ dữ liệu phải cấp quyền truy cập
  • Bạn muốn phân loại dữ liệu của mình dựa trên bản thể luận và cấp quyền dựa trên phân loại
  • Quản trị viên hồ dữ liệu muốn chỉ định quyền động, theo cách liên kết lỏng lẻo

Bạn cũng có thể sử dụng kiểm soát truy cập dựa trên thẻ để chia sẻ tài nguyên Danh mục dữ liệu (cơ sở dữ liệu, bảng và cột) với các tài khoản AWS bên ngoài.

Tổng quan về các tài nguyên được đặt tên

Phương thức tài nguyên có tên là Lake Formation là một chiến lược ủy quyền xác định quyền cho tài nguyên. Tài nguyên bao gồm cơ sở dữ liệu, bảng và cột. Người quản trị hồ dữ liệu có thể chỉ định và thu hồi quyền đối với tài nguyên của Hồ hình thành. Xem Truy cập nhiều tài khoản: Cách hoạt động để biết thêm chi tiết.

Sơ đồ sau đây minh họa kiến ​​trúc cho phương pháp này.

Chúng tôi khuyên bạn nên sử dụng các tài nguyên được đặt tên nếu quản trị viên hồ dữ liệu muốn cấp quyền một cách rõ ràng cho các tài nguyên riêng lẻ.

Khi bạn sử dụng phương thức tài nguyên đã đặt tên để cấp quyền cho Lake Formation đối với tài nguyên Data Catalog cho tài khoản bên ngoài, Lake Formation sử dụng Trình quản lý truy cập tài nguyên AWS (AWS RAM) để chia sẻ tài nguyên.

Bây giờ, chúng ta hãy xem xét kỹ hơn cách định cấu hình quyền truy cập nhiều tài khoản với hai tùy chọn này. Chúng tôi đề cập đến tài khoản có bảng nguồn là tài khoản nhà sản xuất và đề cập đến tài khoản cần truy cập vào bảng nguồn là tài khoản người tiêu dùng.

Định cấu hình cài đặt Danh mục dữ liệu hình thành hồ trong tài khoản nhà sản xuất

Lake Formation cung cấp mô hình quản lý quyền của riêng nó. Để duy trì khả năng tương thích ngược với Quản lý truy cập và nhận dạng AWS (IAM) mô hình quyền, Super quyền được cấp cho nhóm IAMAllowedPrincipals trên tất cả các tài nguyên Danh mục dữ liệu keo AWS hiện có theo mặc định. Cũng thế, Chỉ sử dụng kiểm soát truy cập IAM cài đặt được bật cho các tài nguyên danh mục dữ liệu mới.

Trong bài đăng này, chúng tôi thực hiện kiểm soát truy cập chi tiết bằng cách sử dụng các quyền của Lake Formation và sử dụng các chính sách IAM để kiểm soát truy cập chi tiết. Xem Phương pháp cho Kiểm soát truy cập chi tiết để biết chi tiết. Do đó, trước khi bạn sử dụng Hình thành đám mây AWS để thiết lập nhanh, bạn cần thay đổi cài đặt Danh mục dữ liệu hình thành hồ trong tài khoản nhà sản xuất.

Cài đặt này ảnh hưởng đến tất cả cơ sở dữ liệu và bảng mới được tạo, vì vậy chúng tôi thực sự khuyên bạn nên hoàn thành hướng dẫn này trong tài khoản phi sản xuất hoặc tài khoản mới. Ngoài ra, nếu bạn đang sử dụng tài khoản dùng chung (chẳng hạn như tài khoản nhà phát triển của công ty bạn), hãy đảm bảo rằng tài khoản đó không ảnh hưởng đến tài nguyên của người khác. Nếu bạn muốn giữ cài đặt bảo mật mặc định, bạn phải hoàn thành một bước bổ sung khi chia sẻ tài nguyên với các tài khoản khác, trong đó bạn hủy bỏ cài đặt mặc định Super sự cho phép từ IAMAllowedPrincipals trên cơ sở dữ liệu hoặc bảng. Chúng tôi thảo luận về các chi tiết sau trong bài đăng này.

Để định cấu hình cài đặt Danh mục dữ liệu hình thành hồ trong tài khoản nhà sản xuất, hãy hoàn thành các bước sau:

  1. Đăng nhập vào tài khoản nhà sản xuất với tư cách là người dùng quản trị hoặc người dùng với Lake Formation PutDataLakeSettings Quyền API.
  2. Trên bảng điều khiển Lake Formation, trong ngăn điều hướng, bên dưới Danh mục dữ liệu, chọn Cài đặt.
  3. Bỏ chọn Chỉ sử dụng kiểm soát truy cập IAM cho cơ sở dữ liệu mớiChỉ sử dụng kiểm soát truy cập IAM cho các bảng mới trong cơ sở dữ liệu mới
  4. Chọn Lưu.

Ngoài ra, bạn có thể r
vượt qua CREATE_DATABASE quyền cho IAMAllowedPrincipals Dưới Vai trò và nhiệm vụ quản trị > Người tạo cơ sở dữ liệu. Chỉ khi đó, ai có thể tạo cơ sở dữ liệu mới được quản lý thông qua các quyền của Lake Formation.

Thiết lập tài nguyên với AWS CloudFormation

Chúng tôi cung cấp hai mẫu CloudFormation trong bài đăng này: một cho tài khoản nhà sản xuất và một cho tài khoản người tiêu dùng.

Mẫu CloudFormation cho tài khoản nhà sản xuất tạo ra các tài nguyên sau:

  • Một thùng S3 dùng làm hồ dữ liệu của chúng tôi.
  • Một hàm Lambda (dành cho các tài nguyên tùy chỉnh AWS CloudFormation do Lambda hậu thuẫn). Chúng tôi sử dụng chức năng để sao chép các tệp dữ liệu mẫu từ nhóm S3 công khai sang nhóm S3 của bạn.
  • Chính sách và người dùng IAM:
    • DataLakeAdminProducer
  • Cơ sở dữ liệu, bảng và danh mục dữ liệu AWS Glue Data Catalog. Vì chúng tôi giới thiệu hai tùy chọn để chia sẻ tài nguyên trên các tài khoản AWS, mẫu này tạo ra hai bộ cơ sở dữ liệu và bảng riêng biệt.
  • Các thiết lập và quyền của hồ dữ liệu Lake Formation. Điêu nay bao gôm:

Mẫu CloudFormation cho tài khoản người tiêu dùng tạo ra các tài nguyên sau:

  • Chính sách và người dùng IAM:
    • DataLakeAdminConsumer
    • DataAnalyst
  • Cơ sở dữ liệu Danh mục dữ liệu keo AWS. Chúng tôi sử dụng cơ sở dữ liệu này để tạo liên kết tài nguyên đến các tài nguyên được chia sẻ.

Khởi chạy ngăn xếp CloudFormation trong tài khoản nhà sản xuất

Để khởi chạy ngăn xếp CloudFormation trong tài khoản nhà sản xuất, hãy hoàn thành các bước sau:

  1. Đăng nhập vào bảng điều khiển AWS CloudFormation của tài khoản nhà sản xuất trong Vùng mục tiêu.
  2. Chọn Khởi chạy ngăn xếp:
  3. Chọn Sau.
  4. Trong Tên ngăn xếp, nhập tên ngăn xếp, chẳng hạn như stack-producer.
  5. Trong Nhà sản xuấtDatalakeAdminTên người dùngNhà sản xuấtDatalakeAdminMật khẩu người dùng, nhập tên người dùng và mật khẩu bạn muốn cho người dùng IAM quản trị hồ dữ liệu.
  6. Trong Dữ LiệuHồXôTên, hãy nhập tên của nhóm hồ dữ liệu của bạn. Tên này cần phải là duy nhất trên toàn cầu.
  7. Trong Tên cơ sở dữ liệuTên bảng, để lại các giá trị mặc định.
  8. Chọn Sau.
  9. Trên trang tiếp theo, hãy chọn Sau.
  10. Xem lại chi tiết trên trang cuối cùng và chọn Tôi xác nhận rằng AWS CloudFormation có thể tạo tài nguyên IAM.
  11. Chọn Tạo ngăn xếp.

Khởi chạy ngăn xếp CloudFormation trong tài khoản người tiêu dùng

Để khởi chạy ngăn xếp CloudFormation trong tài khoản người tiêu dùng, hãy hoàn thành các bước sau:

  1. Đăng nhập vào bảng điều khiển AWS CloudFormation của tài khoản người tiêu dùng ở Khu vực mục tiêu.
  2. Chọn Khởi chạy Stack:
  3. Chọn Sau.
  4. Trong Tên ngăn xếp, nhập tên ngăn xếp, chẳng hạn như stack-consumer.
  5. Trong Người tiêu dùngDatalakeAdminTên người dùngNgười tiêu dùngDatalakeAdminMật khẩu người dùng, nhập tên người dùng và mật khẩu bạn muốn cho người dùng IAM quản trị hồ dữ liệu.
  6. Trong Tên người dùng phân tích dữ liệuDataAnalystUserMật khẩu, nhập tên người dùng và mật khẩu bạn muốn cho người dùng IAM của nhà phân tích dữ liệu.
  7. Trong Tên cơ sở dữ liệu, để lại các giá trị mặc định.
  8. Trong AthenaQueryResultS3BuckName, nhập tên của nhóm S3 lưu trữ amazon Athena kết quả truy vấn. Nếu bạn không có, tạo một nhóm S3.
  9. Chọn Sau.
  10. Trên trang tiếp theo, hãy chọn Sau.
  11. Xem lại chi tiết trên trang cuối cùng và chọn Tôi xác nhận rằng AWS CloudFormation có thể tạo tài nguyên IAM.
  12. Chọn Tạo ngăn xếp.

Quá trình tạo ngăn xếp có thể mất khoảng 1 phút.

(Tùy chọn) Mã hóa phía máy chủ AWS KMS

Nếu nhóm nguồn S3 được mã hóa bằng cách sử dụng mã hóa phía máy chủ với Dịch vụ quản lý khóa AWS (AWS KMS) khóa chính của khách hàng (CMK), đảm bảo vai trò IAM mà Lake Formation sử dụng để truy cập dữ liệu S3 được đăng ký làm người dùng chính cho KMS CMK. Theo mặc định, vai trò IAM AWSServiceRoleForLakeFormationDataAccess được sử dụng, nhưng bạn có thể chọn các vai trò IAM khác khi đăng ký vị trí hồ dữ liệu S3. Để đăng ký vai trò của Lake Formation với tư cách là người dùng khóa KMS, bạn có thể sử dụng bảng điều khiển AWS KMS hoặc trực tiếp thêm quyền vào chính sách khóa bằng KMS Chính sách PutKey API và Giao diện dòng lệnh AWS (AWS CLI).

Bạn không phải thêm tài khoản người tiêu dùng cá nhân vào chính sách chính. Chỉ vai trò mà Lake Formation sử dụng là bắt buộc. Ngoài ra, bước này không cần thiết nếu nhóm S3 nguồn được mã hóa bằng mã hóa phía máy chủ với Amazon S3 hoặc khóa được quản lý bằng AWS.

Để thêm vai trò của Lake Formation làm người dùng khóa KMS thông qua bảng điều khiển, hãy hoàn thành các bước sau:

  1. Đăng nhập vào bảng điều khiển AWS KMS với tư cách là quản trị viên chính.
  2. Trong ngăn dẫn hướng, dưới Các khóa do khách hàng quản lý, chọn khóa được sử dụng để mã hóa nhóm S3 nguồn.
  3. Theo Người dùng chính, chọn Thêm.
  4. Chọn AWSServiceRoleForLakeFormationDataAccess Và chọn Thêm.

Để sử dụng AWS CLI, hãy nhập lệnh sau (thay thế , với các giá trị hợp lệ):

aws kms put-key-policy --key-id <key-id> --policy-name <name-of-key-policy> --policy <key-policy>

Để biết thêm thông tin, xem chính sách đặt-chìa khoá.

Điều kiện tiên quyết về chia sẻ nhiều tài khoản của Lake Formation

Trước khi chia sẻ tài nguyên với Lake Formation, có các điều kiện tiên quyết cho cả phương pháp kiểm soát truy cập dựa trên thẻ và phương thức tài nguyên được đặt tên.

Điều kiện tiên quyết của việc chia sẻ nhiều tài khoản kiểm soát truy cập dựa trên thẻ

Như mô tả trong Điều kiện tiên quyết về Kiểm soát truy cập dựa trên thẻ dựa trên thẻ của Lake Formation, trước khi có thể sử dụng phương pháp kiểm soát truy cập dựa trên thẻ để cấp quyền truy cập tài nguyên cho nhiều tài khoản, bạn phải thêm đối tượng quyền JSON sau đây vào bảng tài nguyên AWS Glue Data Catalog
đóng băng trong tài khoản nhà sản xuất. Điều này cho phép tài khoản người tiêu dùng truy cập Danh mục dữ liệu khi glue:EvaluatedByLakeFormationTags là đúng. Ngoài ra, điều kiện này trở thành đúng đối với các tài nguyên mà bạn đã cấp quyền sử dụng Thẻ cấp phép Lake Formation cho tài khoản của người tiêu dùng. Chính sách này là bắt buộc đối với mọi tài khoản AWS mà bạn đang cấp quyền.

Chính sách sau đây phải nằm trong một Statement thành phần. Chúng ta sẽ thảo luận về chính sách IAM đầy đủ ở phần sau của bài đăng này.

{ "Effect": "Allow", "Action": [ "glue:*" ], "Principal": { "AWS": [ "<consumer-account-id>" ] }, "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ], "Condition": { "Bool": { "glue:EvaluatedByLakeFormationTags": true } }
}

Điều kiện tiên quyết của phương pháp tài nguyên được đặt tên là chia sẻ nhiều tài khoản

Như mô tả trong Quản lý quyền nhiều tài khoản bằng cách sử dụng cả AWS Glue và Lake Formation, nếu không có chính sách tài nguyên Danh mục dữ liệu trong tài khoản của bạn, thì các khoản cấp cho nhiều tài khoản của Lake Formation mà bạn vẫn tiến hành như bình thường. Tuy nhiên, nếu chính sách tài nguyên Danh mục dữ liệu tồn tại, bạn phải thêm câu lệnh sau vào chính sách đó để cho phép các khoản tài trợ nhiều tài khoản của bạn thành công nếu chúng được thực hiện bằng phương thức tài nguyên đã đặt tên. Nếu bạn định chỉ sử dụng phương thức tài nguyên đã đặt tên hoặc chỉ phương pháp kiểm soát truy cập dựa trên thẻ, bạn có thể bỏ qua bước này. Trong bài đăng này, chúng tôi đánh giá cả hai phương pháp, vì vậy chúng tôi cần thêm chính sách sau.

Chính sách sau đây phải nằm trong một Statement thành phần. Chúng ta sẽ thảo luận về chính sách IAM đầy đủ trong phần tiếp theo.

{ "Effect": "Allow", "Action": [ "glue:ShareResource" ], "Principal": { "Service": [ "ram.amazonaws.com" ] }, "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ]
}

Thêm chính sách tài nguyên Danh mục dữ liệu keo AWS bằng AWS CLI

Nếu chúng tôi cấp quyền cho nhiều tài khoản bằng cách sử dụng cả phương pháp kiểm soát quyền truy cập dựa trên thẻ và phương thức tài nguyên được đặt tên, chúng tôi phải đặt EnableHybrid đối số thành 'true' khi thêm các chính sách trước đó. Vì tùy chọn này hiện không được hỗ trợ trên bảng điều khiển, chúng tôi phải sử dụng glue:PutResourcePolicy API và AWS CLI.

Đầu tiên, hãy tạo một tài liệu chính sách (chẳng hạn như policy.json) và thêm hai chính sách trước đó. Thay thế với ID tài khoản của tài khoản AWS nhận tài trợ, với Vùng của Danh mục dữ liệu chứa cơ sở dữ liệu và bảng mà bạn đang cấp quyền, và với ID tài khoản AWS của nhà sản xuất.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "<consumer-account-id>" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ], "Condition": { "Bool": { "glue:EvaluatedByLakeFormationTags": "true" } } } ]
}

Nhập lệnh AWS CLI sau. Thay thế với các giá trị chính xác (chẳng hạn như file://policy.json).

aws glue put-resource-policy --policy-in-json <glue-resource-policy> --enable-hybrid TRUE

Để biết thêm thông tin, xem chính sách về nguồn lực.

Triển khai phương pháp kiểm soát truy cập dựa trên thẻ Lake Formation

Trong phần này, chúng ta sẽ đi qua các bước cấp cao sau:

  1. Xác định thẻ LF.
  2. Gán thẻ LF cho tài nguyên đích.
  3. Cấp quyền đối với thẻ LF cho tài khoản người tiêu dùng.
  4. Cấp quyền dữ liệu cho tài khoản người tiêu dùng.
  5. Theo tùy chọn, thu hồi quyền đối với IAMAllowedPrincipals trên cơ sở dữ liệu, bảng và cột.
  6. Tạo liên kết tài nguyên đến bảng được chia sẻ.
  7. Tạo một thẻ LF và gán nó vào cơ sở dữ liệu đích.
  8. Cấp quyền dữ liệu thẻ LF cho tài khoản người tiêu dùng.

Xác định thẻ LF

Nếu bạn đã đăng nhập vào tài khoản nhà sản xuất của mình, hãy đăng xuất trước khi hoàn tất các bước sau.

  1. Đăng nhập với tư cách là quản trị viên hồ dữ liệu tài khoản nhà sản xuất. Sử dụng ID tài khoản nhà sản xuất, tên người dùng IAM (mặc định là DatalakeAdminProducer) và mật khẩu mà bạn đã chỉ định trong quá trình tạo ngăn xếp CloudFormation.
  2. Trên bảng điều khiển Lake Formation, trong ngăn điều hướng, bên dưới Quyền, và dưới Vai trò và nhiệm vụ quản trị, chọn Thẻ LF.
  3. Chọn Thêm thẻ LF.
  4. Chỉ định khóa và giá trị. Trong bài đăng này, chúng tôi tạo một thẻ LF trong đó khóa là Confidentiality và các giá trị là private, sensitivepublic.
  5. Chọn Thêm thẻ LF.

Gán thẻ LF cho tài nguyên đích

Với tư cách là quản trị viên hồ dữ liệu, bạn có thể đính kèm thẻ vào tài nguyên. Nếu bạn định sử dụng một vai trò riêng biệt, bạn có thể phải cấp mô tả và đính kèm quyền cho vai trò riêng biệt.

  1. Trong ngăn dẫn hướng, dưới Danh mục dữ liệu, lựa chọn Cơ sở dữ liệu.
  2. Chọn cơ sở dữ liệu đích (lakeformation_tutorial_cross_account_database_tbac) và trên Hoạt động menu, chọn Chỉnh sửa thẻ LF.

Đối với bài đăng này, chúng tôi gán thẻ LF cho cơ sở dữ liệu, nhưng bạn cũng có thể gán thẻ LF cho các bảng và cột.

  1. Chọn Chỉ định thẻ LF mới.
  2. Thêm chìa khóa Confidentiality và giá trị public.
  3. Chọn Lưu.

Cấp quyền gắn thẻ LF cho tài khoản người tiêu dùng

Vẫn trong tài khoản nhà sản xuất, chúng tôi cấp quyền cho tài khoản người tiêu dùng để truy cập thẻ LF.

  1. Trong ngăn dẫn hướng, dưới Quyền, Vai trò và nhiệm vụ quản trị, Quyền đối với thẻ LF, chọn Cấp.
  2. Trong Hiệu trưởng, chọn Tài khoản bên ngoài.
  3. Nhập ID tài khoản AWS mục tiêu.

Các tài khoản AWS trong cùng một tổ chức sẽ tự động xuất hiện. Nếu không, bạn phải nhập ID tài khoản AWS theo cách thủ công. Theo văn bản này, kiểm soát truy cập dựa trên thẻ Lake Formation không hỗ trợ cấp quyền cho các tổ chức hoặc đơn vị tổ chức.

  1. Trong Thẻ LF, chọn khóa và giá trị của thẻ LF đang được chia sẻ với tài khoản người tiêu dùng (khóa Confidentiality và giá trị public).
  2. Trong Quyền, lựa chọn Mô tả cho Quyền đối với thẻ LF.

Quyền thẻ LF là quyền được cấp cho tài khoản người tiêu dùng. Các quyền được cấp là các quyền mà tài khoản người tiêu dùng có thể cấp cho các bên giao dịch chính khác.

  1. Chọn Cấp.

Tại thời điểm này, quản trị viên hồ dữ liệu người tiêu dùng có thể tìm thấy thẻ chính sách đang được chia sẻ qua bảng điều khiển Lake Formation của tài khoản người tiêu dùng, trong Quyền, Vai trò và nhiệm vụ quản trị, Thẻ LF.

Cấp quyền dữ liệu cho tài khoản người tiêu dùng

Bây giờ chúng tôi sẽ cung cấp quyền truy cập dữ liệu vào tài khoản người tiêu dùng bằng cách chỉ định biểu thức LF-Tag và cấp quyền truy cập tài khoản người tiêu dùng vào bất kỳ bảng hoặc cơ sở dữ liệu nào phù hợp với biểu thức.

  1. Trong ngăn dẫn hướng, dưới Quyền, Quyền của hồ dữ liệu, chọn Cấp.
  2. Trong Hiệu trưởng, chọn Tài khoản bên ngoàivà nhập ID tài khoản AWS của người tiêu dùng.
  3. Trong Thẻ LF hoặc tài nguyên danh mục, Dưới Các tài nguyên được đối sánh bởi Thẻ LF (được khuyến nghị), chọn Thêm thẻ LF.
  4. Chọn khóa và giá trị của thẻ đang được chia sẻ với tài khoản người tiêu dùng (khóa Confidentiality và giá trị public).
  5. Trong Quyền cơ sở dữ liệu, lựa chọn Mô tả Dưới Quyền cơ sở dữ liệu để cấp quyền truy cập ở cấp cơ sở dữ liệu.
  6. Chọn Mô tả Dưới Quyền được cấp để tài khoản người tiêu dùng có thể cấp quyền cấp cơ sở dữ liệu cho người dùng của nó.
  7. Trong Quyền đối với bảng và cột, lựa chọn ChọnMô tả Dưới Quyền bảng.
  8. Chọn ChọnMô tả Dưới Quyền được cấp.
  9. Chọn Cấp.

Thu hồi quyền đối với IAMAllowedPrincipals trên cơ sở dữ liệu, bảng và cột (Tùy chọn)

Ở phần đầu của hướng dẫn này, chúng tôi đã thay đổi cài đặt Danh mục dữ liệu hình thành hồ. Nếu bạn bỏ qua phần đó, bước này là bắt buộc. Nếu bạn đã thay đổi cài đặt Danh mục dữ liệu sự hình thành hồ của mình, bạn có thể bỏ qua bước này.

Trong bước này, chúng ta phải hủy bỏ giá trị mặc định Super sự cho phép từ IAMAllowedPrincipals trên dữ liệu
đế hoặc bàn. Nhìn thấy Bảo mật tài nguyên danh mục dữ liệu hiện có để biết thêm chi tiết.

Trước khi thu hồi quyền đối với IAMAllowedPrincipals, hãy đảm bảo rằng bạn đã cấp cho các hiệu trưởng IAM hiện có quyền cần thiết thông qua Lake Formation. Điều này bao gồm hai bước:

  1. Thêm quyền IAM cho người dùng hoặc vai trò IAM mục tiêu với Lake Formation GetDataAccess hành động (với chính sách IAM).
  2. Cấp quyền cho người dùng hoặc vai trò IAM mục tiêu với dữ liệu Lake Formation (thay đổi, chọn, v.v.)

Sau đó, thu hồi quyền đối với IAMAllowedPrincipals. Nếu không, sau khi thu hồi quyền đối với IAMAllowedPrincipals, các hiệu trưởng IAM hiện tại có thể không còn truy cập được vào cơ sở dữ liệu hoặc danh mục mục tiêu.

Thu hồi Super cho phép IAMAllowedPrincipals là bắt buộc khi bạn muốn áp dụng mô hình quyền của Lake Formation (thay vì mô hình chính sách IAM) để quản lý quyền truy cập của người dùng trong một tài khoản hoặc giữa nhiều tài khoản bằng cách sử dụng mô hình quyền của Lake Formation. Bạn không phải thu hồi quyền của IAMAllowedPrincipals cho các bảng khác mà bạn muốn giữ mô hình chính sách IAM truyền thống.

Tại thời điểm này, quản trị viên hồ dữ liệu tài khoản người tiêu dùng có thể tìm thấy cơ sở dữ liệu và bảng đang được chia sẻ thông qua bảng điều khiển Lake Formation của tài khoản người tiêu dùng, trong Danh mục dữ liệu, Cơ sở dữ liệu. Nếu không, hãy xác nhận xem các phần sau có được định cấu hình đúng hay không:

  • Đảm bảo rằng thẻ chính sách và giá trị chính xác được chỉ định cho cơ sở dữ liệu và bảng mục tiêu
  • Đảm bảo quyền thẻ chính xác và quyền dữ liệu được chỉ định cho tài khoản người tiêu dùng
  • Thu hồi giá trị mặc định super sự cho phép từ IAMAllowedPrincipals trên cơ sở dữ liệu hoặc bảng

Tạo liên kết tài nguyên đến bảng được chia sẻ

Khi tài nguyên được chia sẻ giữa các tài khoản, các tài nguyên được chia sẻ không được đưa vào danh mục tài khoản người tiêu dùng. Để cung cấp chúng và truy vấn dữ liệu cơ bản của bảng được chia sẻ bằng cách sử dụng các dịch vụ như Athena, chúng tôi cần tạo liên kết tài nguyên vào bảng được chia sẻ. Liên kết tài nguyên là một đối tượng Danh mục dữ liệu là một liên kết đến cơ sở dữ liệu hoặc bảng được chia sẻ hoặc cục bộ. Bằng cách tạo liên kết tài nguyên, bạn có thể:

  • Gán tên khác cho cơ sở dữ liệu hoặc bảng phù hợp với chính sách đặt tên tài nguyên Danh mục dữ liệu của bạn
  • Sử dụng các dịch vụ như Athena và Quang phổ dịch chuyển đỏ Amazon để truy vấn cơ sở dữ liệu hoặc bảng được chia sẻ

Để tạo liên kết tài nguyên, hãy hoàn thành các bước sau:

  1. Nếu bạn đã đăng nhập vào tài khoản người tiêu dùng của mình, hãy đăng xuất.
  2. Đăng nhập với tư cách là quản trị viên hồ dữ liệu tài khoản người tiêu dùng. Sử dụng ID tài khoản người tiêu dùng, tên người dùng IAM (mặc định DatalakeAdminConsumer) và mật khẩu mà bạn đã chỉ định trong quá trình tạo ngăn xếp CloudFormation.
  3. Trên bảng điều khiển Lake Formation, trong ngăn điều hướng, bên dưới Danh mục dữ liệu, Cơ sở dữ liệu, chọn cơ sở dữ liệu được chia sẻ lakeformation_tutorial_cross_account_database_tbac.

Nếu bạn không thấy cơ sở dữ liệu, hãy truy cập lại các bước trước đó để xem mọi thứ đã được định cấu hình đúng chưa.

  1. Chọn Xem bảng.
  2. Chọn bảng được chia sẻ amazon_reviews_table_tbac.
  3. trên Hoạt động menu, chọn Tạo liên kết tài nguyên.
  4. Trong Tên liên kết tài nguyên, nhập tên (cho bài đăng này, amazon_reviews_table_tbac_resource_link).
  5. Theo Cơ sở dữ liệu, chọn cơ sở dữ liệu mà liên kết tài nguyên được tạo (đối với bài đăng này, ngăn xếp CloudFormation đã tạo cơ sở dữ liệu lakeformation_tutorial_cross_account_database_consumer).
  6. Chọn Tạo.

Liên kết tài nguyên xuất hiện bên dưới Danh mục dữ liệu, Bàn.

Tạo một thẻ LF và gán nó vào cơ sở dữ liệu đích

Các thẻ Lake Formation nằm trong cùng một danh mục với các tài nguyên. Điều này có nghĩa là các thẻ được tạo trong tài khoản nhà sản xuất không có sẵn để sử dụng khi cấp quyền truy cập vào các liên kết tài nguyên trong tài khoản người tiêu dùng. Bạn cần tạo một tập hợp thẻ LF riêng biệt trong tài khoản người tiêu dùng để sử dụng kiểm soát truy cập dựa trên thẻ LF khi chia sẻ các liên kết tài nguyên trong tài khoản người tiêu dùng. Đầu tiên hãy tạo thẻ LF. Tham khảo các phần trước để được hướng dẫn đầy đủ.

  1. Xác định thẻ LF trong tài khoản người tiêu dùng. Đối với bài đăng này, chúng tôi sử dụng khóa Division và giá trị sales, marketinganalyst.
  2. Gán khóa thẻ LF Division và giá trị analyst đến cơ sở dữ liệu lakeformation_tutorial_cross_account_database_consumer, liên kết tài nguyên được tạo ở đâu.

Cấp quyền dữ liệu thẻ LF cho người tiêu dùng

Bước cuối cùng, chúng tôi cấp quyền dữ liệu thẻ LF cho người tiêu dùng.

  1. Trong ngăn dẫn hướng, dưới Quyền, Quyền của hồ dữ liệu, chọn Cấp.
  2. Trong Hiệu trưởng, chọn Người dùng IAM và vai tròvà chọn người dùng DataAnalyst.
  3. Trong Thẻ LF hoặc tài nguyên danh mục, chọn Các tài nguyên khớp với thẻ LF (được khuyến nghị).
  4. Chọn khóa Division và giá trị analyst.
  5. Trong Quyền cơ sở dữ liệu, lựa chọn Mô tả Dưới Quyền cơ sở dữ liệu.
  6. Trong Quyền đối với bảng và cột, lựa chọn ChọnMô tả Dưới Quyền bảng.
  7. Chọn Cấp.
  8. Lặp lại các bước này cho người dùng DataAnalyst, khóa thẻ LF ở đâu Confidentiality và giá trị là public.

Tại thời điểm này, người dùng phân tích dữ liệu trong tài khoản người tiêu dùng sẽ có thể tìm thấy cơ sở dữ liệu và liên kết tài nguyên, đồng thời truy vấn bảng chia sẻ thông qua bảng điều khiển Athena.

Nếu không, hãy xác nhận xem các phần sau có được định cấu hình đúng hay không:

  • Đảm bảo rằng liên kết tài nguyên được tạo cho bảng được chia sẻ
  • Đảm bảo rằng bạn đã cấp cho người dùng quyền truy cập vào thẻ LF do tài khoản nhà sản xuất chia sẻ
  • Đảm bảo rằng bạn đã cấp cho người dùng quyền truy cập vào thẻ LF được liên kết với liên kết tài nguyên và cơ sở dữ liệu mà liên kết tài nguyên được tạo trong đó
  • Kiểm tra xem bạn đã chỉ định đúng thẻ LF cho liên kết tài nguyên và cho cơ sở dữ liệu mà liên kết tài nguyên được tạo trong đó chưa

Triển khai phương thức tài nguyên có tên là Lake Formation

Để sử dụng phương thức tài nguyên đã đặt tên, chúng tôi thực hiện các bước cấp cao sau:

  1. Theo tùy chọn, thu hồi quyền đối với IAMAllowedPrincipals trên cơ sở dữ liệu, bảng và cột.
  2. Cấp quyền dữ liệu cho tài khoản người tiêu dùng.
  3. Chấp nhận chia sẻ tài nguyên từ AWS RAM.
  4. Tạo liên kết tài nguyên cho bảng được chia sẻ.
  5. Cấp quyền dữ liệu cho bảng được chia sẻ cho người tiêu dùng.
  6. Cấp quyền dữ liệu cho liên kết tài nguyên cho người tiêu dùng.

Thu hồi quyền đối với IAMAllowedPrincipals trên cơ sở dữ liệu, bảng và cột (Tùy chọn)

Ở phần đầu của hướng dẫn này, chúng tôi đã thay đổi cài đặt Danh mục dữ liệu hình thành hồ. Nếu bạn bỏ qua phần đó, bước này là bắt buộc. Để biết hướng dẫn, hãy xem bước tùy chọn trong phần trước.

Cấp quyền dữ liệu cho tài khoản người tiêu dùng

Nếu bạn đã đăng nhập vào tài khoản nhà sản xuất với tư cách người dùng khác, trước tiên hãy đăng xuất.

  1. Đăng nhập với tư cách là quản trị viên hồ dữ liệu tài khoản nhà sản xuất bằng ID tài khoản AWS, tên người dùng IAM (mặc định là DatalakeAdminProducer) và mật khẩu được chỉ định trong quá trình tạo ngăn xếp CloudFormation.
  2. Trong ngăn dẫn hướng, dưới Quyền, Quyền của hồ dữ liệu, chọn Cấp.
  3. Trong Hiệu trưởng, chọn Tài khoản bên ngoàivà nhập một hoặc nhiều ID tài khoản AWS hoặc Tổ chức AWS ID.

Các tổ chức sở hữu tài khoản nhà sản xuất và các tài khoản AWS trong cùng một tổ chức sẽ tự động xuất hiện. Nếu không, hãy nhập thủ công ID tài khoản hoặc ID tổ chức.

  1. Trong Thẻ LF hoặc tài nguyên danh mục, chọn Tài nguyên danh mục dữ liệu được đặt tên.
  2. Theo Cơ sở dữ liệu, chọn cơ sở dữ liệu lakeformation_tutorial_cross_account_database_named_resource.
  3. Theo Bàn, chọn Tất cả các bảng.
  4. Trong Quyền đối với bảng và cột, lựa chọn ChọnMô tả Dưới Quyền bảng.
  5. Chọn ChọnMô tả Dưới Quyền được cấp.
  6. Tùy chọn, cho Quyền dữ liệu, lựa chọn Quyền truy cập dựa trên cột đơn giản nếu yêu cầu quản lý quyền cấp cột.
  7. Chọn Cấp.

Nếu bạn chưa thu hồi quyền đối với IAMAllowedPrincipals, Bạn nhận được một Cấp quyền không thành công lỗi.

Tại thời điểm này, bạn sẽ thấy bảng mục tiêu được chia sẻ qua AWS RAM với tài khoản người tiêu dùng trong Quyền, Quyền dữ liệu.

Chấp nhận chia sẻ tài nguyên từ AWS RAM

Bước này chỉ bắt buộc đối với chia sẻ dựa trên ID tài khoản, không bắt buộc đối với chia sẻ dựa trên tổ chức.

  1. Đăng nhập với tư cách là quản trị viên hồ dữ liệu tài khoản người tiêu dùng bằng tên người dùng IAM (mặc định là DatalakeAdminConsumer) và mật khẩu được chỉ định trong quá trình tạo ngăn xếp CloudFormation.
  2. Trên bảng điều khiển AWS RAM, trong ngăn điều hướng, bên dưới Chia sẻ với tôi, Chia sẻ tài nguyên, chọn tài nguyên Hồ hình thành được chia sẻ.

Sản phẩm Trạng thái nên là Pending.

  1. Xác nhận chi tiết tài nguyên và chọn Chấp nhận chia sẻ tài nguyên.

Tại thời điểm này, quản trị viên hồ dữ liệu tài khoản người tiêu dùng có thể tìm thấy tài nguyên được chia sẻ trên bảng điều khiển Lake Formation trong Danh mục dữ liệu, Cơ sở dữ liệu.

Tạo liên kết tài nguyên cho bảng được chia sẻ

Làm theo hướng dẫn chi tiết trước đó để tạo liên kết tài nguyên cho bảng được chia sẻ. Đặt tên cho liên kết tài nguyên amazon_reviews_table_named_resource_resource_link. Tạo liên kết tài nguyên trong cơ sở dữ liệu lakeformation_tutorial_cross_account_database_consumer.

Cấp quyền dữ liệu cho bảng được chia sẻ cho người tiêu dùng

Để cấp quyền dữ liệu cho bảng được chia sẻ cho người tiêu dùng, hãy hoàn thành các bước sau:

  1. Trong ngăn dẫn hướng, dưới Quyền, Quyền của hồ dữ liệu, chọn Cấp.
  2. Trong Hiệu trưởng, chọn Người dùng IAM và vai tròvà chọn người dùng DataAnalyst.
  3. Trong Thẻ LF hoặc tài nguyên danh mục, chọn Tài nguyên danh mục dữ liệu được đặt tên.
  4. Theo Cơ sở dữ liệu, chọn cơ sở dữ liệu lakeformation_tutorial_cross_account_database_named_resource.

Nếu bạn không thấy cơ sở dữ liệu trên danh sách thả xuống, hãy chọn tải thêm.

  1. Theo Bàn, chọn bàn amazon_reviews_table_named_resource.
  2. Trong Quyền đối với bảng và cột, lựa chọn ChọnMô tả Dưới Quyền bảng.
  3. Chọn Cấp.

Cấp quyền dữ liệu cho liên kết tài nguyên cho người tiêu dùng

Ngoài việc cấp quyền cho người dùng data lake để truy cập bảng được chia sẻ, bạn cũng cần cấp quyền cho người dùng data lake để truy cập liên kết tài nguyên.

  1. Trong ngăn dẫn hướng, dưới Quyền, Quyền của hồ dữ liệu, chọn Cấp.
  2. Trong Hiệu trưởng, chọn Người dùng IAM và vai tròvà chọn người dùng DataAnalyst.
  3. Trong Thẻ LF hoặc tài nguyên danh mục, chọn Tài nguyên danh mục dữ liệu được đặt tên.
  4. Theo Cơ sở dữ liệu, chọn cơ sở dữ liệu lakeformation_tutorial_cross_account_database_consumer.
  5. Theo Bàn, chọn bàn amazon_reviews_table_named_resource_resource_link.
  6. Trong Quyền liên kết tài nguyên, lựa chọn Mô tả Dưới Quyền liên kết tài nguyên.
  7. Chọn Cấp.

Tại thời điểm này, người dùng phân tích dữ liệu trong tài khoản người tiêu dùng sẽ có thể tìm thấy cơ sở dữ liệu và liên kết tài nguyên, đồng thời truy vấn bảng chia sẻ thông qua bảng điều khiển Athena.

Nếu không, hãy xác nhận xem các phần sau có được định cấu hình đúng hay không:

  • Đảm bảo rằng liên kết tài nguyên được tạo cho bảng được chia sẻ
  • Đảm bảo rằng bạn đã cấp cho người dùng quyền truy cập vào bảng do tài khoản nhà sản xuất chia sẻ
  • Đảm bảo rằng bạn đã cấp cho người dùng quyền truy cập vào liên kết tài nguyên và cơ sở dữ liệu mà liên kết tài nguyên được tạo trong đó

Làm sạch

Để xóa các tài nguyên được tạo trong hướng dẫn này, hãy xóa hoặc thay đổi các tài nguyên sau:

  • Tài khoản nhà sản xuất:
    • Chia sẻ tài nguyên RAM AWS
    • Thẻ hình thành hồ
    • Ngăn xếp CloudFormation
    • Cài đặt hình thành hồ
    • Cài đặt Danh mục dữ liệu keo AWS
  • Tài khoản người tiêu dùng:
    • Thẻ hình thành hồ
    • Ngăn xếp CloudFormation

Tổng kết

Chia sẻ nhiều tài khoản của Lake Formation cho phép bạn chia sẻ dữ liệu giữa các tài khoản AWS mà không cần sao chép dữ liệu thực tế. Ngoài ra, nó cung cấp cho cả người sản xuất và người tiêu dùng quyền kiểm soát quyền dữ liệu một cách linh hoạt. Trong bài đăng này, chúng tôi đã giới thiệu hai tùy chọn khác nhau để tham chiếu dữ liệu danh mục từ một tài khoản khác bằng cách sử dụng các tính năng truy cập nhiều tài khoản do Lake Formation cung cấp:

  • Kiểm soát truy cập dựa trên thẻ
  • Tài nguyên được đặt tên

Phương pháp kiểm soát truy cập dựa trên thẻ được khuyến nghị khi nhiều tài nguyên và thực thể có liên quan. Mặc dù có vẻ như tùy chọn này yêu cầu nhiều bước hơn, nhưng kiểm soát truy cập dựa trên thẻ giúp quản trị viên hồ dữ liệu kiểm soát các mối quan hệ giữa mỗi người dùng và bảng thông qua các thẻ một cách động. Phương thức tài nguyên được đặt tên cung cấp cho người quản trị hồ dữ liệu một cách dễ dàng hơn để quản lý quyền đối với danh mục. Bạn có thể chọn phương pháp phù hợp nhất với yêu cầu của bạn.


Giới thiệu về tác giả

Kanasugi Yumiko là Kiến trúc sư giải pháp của Amazon Web Services Japan, hỗ trợ khách hàng doanh nghiệp bản địa kỹ thuật số sử dụng AWS.

Nguồn: https://aws.amazon.com/blogs/big-data/secosystem-share-your-data-across-aws-accounts-using-aws-lake-formation/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?