Bật tính năng giám sát nâng cao cho Amazon RDS

theanh

Administrator
Nhân viên
Amazon RDS cung cấp tính năng giám sát nâng cao cho cơ sở dữ liệu. Khi sử dụng tính năng này, Amazon RDS có thể giám sát và ghi lại số liệu cơ sở dữ liệu vào Amazon CloudWatch Logs. Tuy nhiên, để bật tính năng này, cần phải đính kèm một vai trò vào Amazon RDS và bản thân vai trò này yêu cầu người dùng phải có quyền PassRole.

Chúng ta sẽ thấy gì ở đây?​

Trong hướng dẫn này, bạn sẽ học cách sử dụng quyền 'IAM Passrole' để bật tính năng giám sát nâng cao cho Amazon RDS. Chúng ta sẽ xem xét điều này bằng cách trình bày một ví dụ đơn giản.

Quyền Passrole là gì?​

Khi định cấu hình nhiều dịch vụ AWS, người dùng/quản trị viên được yêu cầu chuyển một vai trò cho dịch vụ đó. Sau đó, dịch vụ sẽ đảm nhận vai trò đó để thực hiện các hành động được phép trong vai trò đó. Trong hầu hết các trường hợp, vai trò chỉ được chuyển cho dịch vụ tại một thời điểm trong khi thiết lập dịch vụ, chứ không phải mọi lúc vai trò đều được dịch vụ đảm nhận.

Người dùng phải có quyền chuyển vai trò cho dịch vụ. Đây là khía cạnh bảo mật mạnh mẽ vì chỉ những người dùng được ủy quyền mới được phép chuyển vai trò cho dịch vụ. Hơn nữa, người quản trị có thể kiểm soát loại vai trò mà người dùng có thể chuyển cho dịch vụ.

Điều kiện tiên quyết để chuyển vai trò cho dịch vụ​

Người dùng IAM có thể chuyển vai trò cho dịch vụ AWS nếu có ba điều kiện tiên quyết sau:
  1. Đầu tiên, chính sách cho vai trò mà chúng ta sẽ tạo sẽ quyết định ranh giới quyền hoặc phạm vi của vai trò IAM.
  2. Tiếp theo, chính sách tin cậy liên quan đến vai trò này về cơ bản sẽ cho phép dịch vụ AWS (RDS trong trường hợp của chúng ta) đảm nhận/tiếp nhận vai trò và sử dụng các quyền được liệt kê với vai trò.
  3. Cuối cùng, chính sách cấp quyền IAM được đính kèm vào người dùng IAM cho phép người dùng chuyển các vai trò mà người dùng được phép chuyển.

Tạo Vai trò​

Trong phần này, chúng ta sẽ tạo một vai trò có tên là ‘RDS-Monitoring-Role’ và đính kèm chính sách ‘AmazonRDSEnhancedMonitoringRole’ do AWS quản lý vào đó.

Bước 1. Đi đến bảng điều khiển IAM từ tài khoản quản trị viên hoặc tài khoản gốc và chọn ‘Vai trò’ trong tùy chọn Quản lý quyền truy cập. Nhấp vào nút ‘Tạo vai trò’.





Bước 2. Trong phần ‘Chọn thực thể đáng tin cậy’, bạn sẽ thấy ‘Loại thực thể đáng tin cậy’, hãy chọn tùy chọn ‘Dịch vụ AWS’ tại đây. Bây giờ hãy tìm kiếm ‘RDS’ trong ‘các trường hợp sử dụng cho các dịch vụ AWS khác’ và chọn tùy chọn ‘RDS - Enhanced Monitoring’.

Bước 3. Trong phần tiếp theo ‘Thêm quyền’, hãy đính kèm chính sách ‘AmazonRDSEnhancedMonitoringRole’ rồi nhấp vào ‘Tiếp theo’:



Bước 4. Tại đây, hãy nhập tên cho vai trò: ‘RDS-Monitoring-Role’ và mô tả tùy chọn cho vai trò đó. Lưu ý rằng chính sách tin cậy sẽ tự động được đính kèm với vai trò này:
Mã:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "monitoring.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}
Bước 5. Cuối cùng, nhấp vào nút ‘Create role’ để tạo vai trò ở trên:


Thêm chính sách IAM cho người dùng IAM​

Cho đến nay, chúng ta đã tạo một vai trò và đính kèm một chính sách vào đó, sau đó chúng ta cũng có một chính sách tin cậy. Điều này đã đáp ứng được hai điều kiện tiên quyết của chúng ta. Bây giờ chuyển sang điều kiện tiên quyết thứ ba, chúng ta sẽ tạo một chính sách cho chính người dùng IAM. Trong chính sách này, chúng tôi đã cấp cho người dùng quyền truy cập EC2 và RDS đầy đủ và cũng cấp quyền liên kết vai trò ‘RDS-Monitoring-Role’ ở trên với phiên bản RDS của chúng tôi. Bạn có thể tự mình kiểm soát mức quyền IAM cho EC2 và RDS, chúng tôi chỉ quan tâm đến việc chứng minh quyền PassRole:

Bước 1. Một lần nữa, hãy đến bảng điều khiển IAM từ tài khoản quản trị viên hoặc root và chọn ‘Policies’ và nhấp vào nút ‘Create policy’.

Bước 2. Trên trình hướng dẫn Create Policy, hãy nhấp vào tab JSON và chỉ cần dán mã JSON sau cho chính sách này:
Mã:
{ "Phiên bản": "2012-10-17", "Câu lệnh": [ { "Sid": "VisualEditor0", "Hiệu ứng": "Cho phép", "Hành động": "iam:PassRole", "Tài nguyên": "arn:aws:iam::account_number:role/RDS-Monitoring-Role" }, { "Sid": "VisualEditor1", "Hiệu ứng": "Cho phép", "Hành động": [ "rds:*", "logs:Describe*", "logs:List*", "logs:StartQuery", "ec2:*", "iam:ListRoles", "logs:StopQuery", "logs:TestMetricFilter", "logs:FilterLogEvents", "logs:Get*", "cloudwatch:GetMetricData" ], "Tài nguyên": "*" } ]}
Trong đoạn mã trên, hãy thay thế ‘IAM_User_ID’ bằng số tài khoản hoặc ID của người dùng IAM và ‘RDS-Monitoring-Role’ bằng tên vai trò trong trường hợp của bạn. Nhấp vào ‘Next:Tags’.

Bước 3. Chỉ định bất kỳ ‘Tags’ tùy chọn nào bạn muốn sử dụng và nhấp vào ‘Next:Review’:

Bước 4. Tại đây, hãy đặt tên cho chính sách này (‘RDS-Monitoring-User-Policy’ trong trường hợp của chúng tôi) và cuối cùng, nhấp vào nút ‘Create policy’ để tạo chính sách này:





Bước 5. Đính kèm chính sách đã tạo ở trên vào người dùng IAM:




Cơ sở dữ liệu không có vai trò​

Dưới đây, chúng ta có thể thấy kịch bản cấu hình cơ sở dữ liệu mà không đính kèm vai trò đã tạo ở trên (RDS-Monitoring-Role). Ở đây chúng ta có thể thấy rằng chúng ta đang nhận được lỗi cloudwatch:GetMetricData.






Gắn vai trò vào Cơ sở dữ liệu​

Bây giờ chúng ta sẽ gắn ‘RDS-Monitoring-Role’ vào cơ sở dữ liệu và kiểm tra xem lỗi CloudWatch ở trên có xảy ra hay không. Một vai trò có thể được liên kết với một phiên bản RDS tại thời điểm tạo hoặc sau khi tạo. Trong trường hợp bạn đã tạo cơ sở dữ liệu, bạn cần sửa đổi phiên bản db. Dù trường hợp nào xảy ra, hãy đến bảng điều khiển RDS và mở khối ‘Cấu hình bổ sung’ trong cài đặt cơ sở dữ liệu mục tiêu. Tìm phần ‘Giám sát’ và tại đây, hãy đánh dấu vào ô tương ứng với ‘Bật giám sát nâng cao’. Trong ‘Vai trò giám sát’, hãy chọn vai trò của bạn từ menu thả xuống và nhấp vào ‘tiếp tục’:




Trên cửa sổ tiếp theo, hãy chọn hành động về thời điểm áp dụng các thay đổi và nhấp vào ‘Sửa đổi phiên bản DB’:



Lần này khi bạn thấy thông tin chi tiết về cấu hình cơ sở dữ liệu, lỗi CloudWatch sẽ biến mất:


Kết luận​

Trong hướng dẫn này, chúng ta đã tìm hiểu cách sử dụng quyền PassRole để bật tính năng Giám sát nâng cao cho RDS. PassRole là một tính năng tuyệt vời để cấp ít đặc quyền nhất cho người dùng IAM để truy cập các dịch vụ AWS khác mà người dùng đó không được phép truy cập.
 
Back
Bên trên