DynamoDB - Kiểm soát truy cập

DynamoDB sử dụng thông tin đăng nhập bạn cung cấp để xác thực các yêu cầu. Các thông tin xác thực này là bắt buộc và phải bao gồm quyền truy cập tài nguyên AWS. Các quyền này hầu như trải dài mọi khía cạnh của DynamoDB cho đến các tính năng nhỏ của một hoạt động hoặc chức năng.

Các loại quyền

Trong phần này, chúng ta sẽ thảo luận về các quyền khác nhau và quyền truy cập tài nguyên trong DynamoDB.

Xác thực người dùng

Khi đăng ký, bạn đã cung cấp mật khẩu và email, được coi là thông tin đăng nhập gốc. DynamoDB liên kết dữ liệu này với tài khoản AWS của bạn và sử dụng nó để cấp quyền truy cập đầy đủ vào tất cả các tài nguyên.

AWS khuyên bạn chỉ nên sử dụng thông tin đăng nhập gốc của mình để tạo tài khoản quản trị. Điều này cho phép bạn tạo tài khoản IAM / người dùng với ít đặc quyền hơn. Người dùng IAM là các tài khoản khác được sinh ra với dịch vụ IAM. Quyền truy cập / đặc quyền của họ bao gồm quyền truy cập vào các trang an toàn và một số quyền tùy chỉnh nhất định như sửa đổi bảng.

Các khóa truy cập cung cấp một tùy chọn khác cho các tài khoản và quyền truy cập bổ sung. Sử dụng chúng để cấp quyền truy cập và cũng để tránh cấp quyền truy cập thủ công trong một số tình huống nhất định. Người dùng liên kết cung cấp một tùy chọn khác bằng cách cho phép truy cập thông qua nhà cung cấp danh tính.

Hành chính

Các tài nguyên AWS vẫn thuộc quyền sở hữu của một tài khoản. Chính sách quyền chi phối các quyền được cấp để sinh sản hoặc truy cập tài nguyên. Quản trị viên liên kết chính sách quyền với danh tính IAM, nghĩa là vai trò, nhóm, người dùng và dịch vụ. Họ cũng đính kèm quyền đối với tài nguyên.

Quyền chỉ định người dùng, tài nguyên và hành động. Lưu ý rằng quản trị viên chỉ là những tài khoản có đặc quyền của quản trị viên.

Hoạt động và Tài nguyên

Các bảng vẫn là tài nguyên chính trong DynamoDB. Nguồn phụ đóng vai trò là nguồn bổ sung, ví dụ: luồng và chỉ số. Các tài nguyên này sử dụng các tên riêng, một số được đề cập trong bảng sau:

Kiểu ARN (Tên tài nguyên Amazon)
Suối arn: aws: dynamicodb: region: account-id: table / table-name / stream / stream-label
Mục lục arn: aws: dynamicodb: region: account-id: table / table-name / index / index-name
Bàn arn: aws: dynamicodb: region: account-id: table / table-name

Quyền sở hữu

Chủ sở hữu tài nguyên được định nghĩa là tài khoản AWS tạo ra tài nguyên hoặc tài khoản thực thể chính chịu trách nhiệm yêu cầu xác thực trong việc tạo tài nguyên. Xem xét cách chức năng này trong môi trường DynamoDB -

  • Khi sử dụng thông tin đăng nhập gốc để tạo bảng, tài khoản của bạn vẫn là chủ sở hữu tài nguyên.

  • Khi tạo người dùng IAM và cấp cho người dùng quyền tạo bảng, tài khoản của bạn vẫn là chủ sở hữu tài nguyên.

  • Khi tạo người dùng IAM và cấp cho người dùng cũng như bất kỳ ai có khả năng đảm nhận vai trò, quyền tạo bảng, tài khoản của bạn vẫn là chủ sở hữu tài nguyên.

Quản lý quyền truy cập tài nguyên

Việc quản lý quyền truy cập chủ yếu yêu cầu chú ý đến chính sách cấp phép mô tả người dùng và quyền truy cập tài nguyên. Bạn liên kết các chính sách với danh tính hoặc tài nguyên IAM. Tuy nhiên, DynamoDB chỉ hỗ trợ các chính sách IAM / danh tính.

Chính sách dựa trên danh tính (IAM) cho phép bạn cấp đặc quyền theo những cách sau:

  • Đính kèm quyền cho người dùng hoặc nhóm.
  • Đính kèm quyền với vai trò để có quyền trên nhiều tài khoản.

AWS khác cho phép các chính sách dựa trên tài nguyên. Các chính sách này cho phép truy cập vào những thứ như nhóm S3.

Các yếu tố chính sách

Các chính sách xác định các hành động, hiệu ứng, nguồn lực và nguyên tắc; và cấp quyền để thực hiện các hoạt động này.

Note - Các hoạt động API có thể yêu cầu quyền cho nhiều hành động.

Hãy xem xét kỹ hơn các yếu tố chính sách sau:

  • Resource - ARN xác định điều này.

  • Action - Từ khóa xác định các hoạt động tài nguyên này và cho phép hay từ chối.

  • Effect - Nó chỉ định hiệu ứng cho một yêu cầu của người dùng đối với một hành động, nghĩa là cho phép hoặc từ chối với từ chối làm mặc định.

  • Principal - Điều này xác định người dùng gắn liền với chính sách.

Điều kiện

Khi cấp quyền, bạn có thể chỉ định các điều kiện khi các chính sách bắt đầu hoạt động, chẳng hạn như vào một ngày cụ thể. Thể hiện điều kiện bằng các khóa điều kiện, bao gồm khóa toàn hệ thống AWS và khóa DynamoDB. Các phím này sẽ được thảo luận chi tiết ở phần sau của hướng dẫn.

Quyền điều khiển

Người dùng yêu cầu một số quyền cơ bản nhất định để sử dụng bảng điều khiển. Họ cũng yêu cầu quyền cho bảng điều khiển trong các dịch vụ tiêu chuẩn khác -

  • CloudWatch
  • Đường ống dữ liệu
  • Quản lý Danh tính và Truy cập
  • Dịch vụ thông báo
  • Lambda

Nếu chính sách IAM quá giới hạn, người dùng không thể sử dụng bảng điều khiển một cách hiệu quả. Ngoài ra, bạn không cần phải lo lắng về quyền của người dùng đối với những người chỉ gọi CLI hoặc API.

Chính sách Iam Sử dụng Phổ biến

AWS bao gồm các hoạt động phổ biến trong quyền với các chính sách IAM được quản lý độc lập. Họ cung cấp các quyền chính cho phép bạn tránh các cuộc điều tra sâu về những gì bạn phải cấp.

Một số trong số chúng như sau:

  • AmazonDynamoDBReadOnlyAccess - Nó cung cấp quyền truy cập chỉ đọc thông qua bảng điều khiển.

  • AmazonDynamoDBFullAccess - Nó cho phép truy cập đầy đủ thông qua bảng điều khiển.

  • AmazonDynamoDBFullAccesswithDataPipeline - Nó cho phép truy cập đầy đủ thông qua bảng điều khiển và cho phép xuất / nhập với Data Pipeline.

Tất nhiên bạn cũng có thể đưa ra các chính sách tùy chỉnh.

Cấp các đặc quyền: Sử dụng The Shell

Bạn có thể cấp quyền với trình bao Javascript. Chương trình sau đây cho thấy một chính sách cấp phép điển hình:

{ 
   "Version": "2016-05-22", 
   "Statement": [ 
      { 
         "Sid": "DescribeQueryScanToolsTable", 
         "Effect": "Deny", 
         
         "Action": [ 
            "dynamodb:DescribeTable", 
            "dynamodb:Query", 
            "dynamodb:Scan" 
         ], 
         "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools" 
      } 
   ] 
}

Bạn có thể xem lại ba ví dụ như sau:

Block the user from executing any table action.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AllAPIActionsOnTools", 
         "Effect": "Deny", 
         "Action": "dynamodb:*", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools" 
      } 
   ] 
}

Block access to a table and its indices.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AccessAllIndexesOnTools", 
         "Effect": "Deny", 
         "Action": [
            "dynamodb:*" 
         ], 
         "Resource": [ 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools", 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*" 
         ] 
      } 
   ] 
}

Block a user from making a reserved capacity offering purchase.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "BlockReservedCapacityPurchases", 
         "Effect": "Deny", 
         "Action": "dynamodb:PurchaseReservedCapacityOfferings", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:*" 
      } 
   ] 
}

Cấp các đặc quyền: Sử dụng GUI Console

Bạn cũng có thể sử dụng bảng điều khiển GUI để tạo các chính sách IAM. Để bắt đầu, hãy chọnTablestừ ngăn điều hướng. Trong danh sách bảng, hãy chọn bảng mục tiêu và làm theo các bước sau.

Step 1 - Chọn Access control chuyển hướng.

Step 2- Chọn nhà cung cấp danh tính, hành động và thuộc tính chính sách. Lựa chọnCreate policy sau khi nhập tất cả các cài đặt.

Step 3 - Chọn Attach policy instructionsvà hoàn thành từng bước bắt buộc để liên kết chính sách với vai trò IAM thích hợp.