DynamoDB - 訪問控制



DynamoDB 使用您提供的憑證來驗證請求。這些憑證是必需的,並且必須包含 AWS 資源訪問許可權。這些許可權涵蓋了 DynamoDB 的幾乎所有方面,直至操作或功能的細微功能。

許可權型別

在本節中,我們將討論 DynamoDB 中的各種許可權和資源訪問。

使用者身份驗證

註冊時,您提供了密碼和電子郵件,它們用作根憑證。DynamoDB 將此資料與您的 AWS 賬戶關聯,並使用它來授予對所有資源的完全訪問許可權。

AWS 建議您僅將根憑證用於建立管理賬戶。這使您可以建立具有較少許可權的 IAM 賬戶/使用者。IAM 使用者是由 IAM 服務生成的其它賬戶。它們的訪問許可權/特權包括訪問安全頁面以及某些自定義許可權,例如表修改。

訪問金鑰為額外賬戶和訪問提供了另一種選擇。使用它們來授予訪問許可權,並在某些情況下避免手動授予訪問許可權。聯合使用者透過允許透過身份提供者訪問提供了另一種選擇。

管理

AWS 資源仍然歸賬戶所有。許可權策略控制授予生成或訪問資源的許可權。管理員將許可權策略與 IAM 身份關聯,即角色、組、使用者和服務。他們還將許可權附加到資源。

許可權指定使用者、資源和操作。請注意,管理員僅僅是擁有管理員許可權的賬戶。

操作和資源

表仍然是 DynamoDB 中的主要資源。子資源用作附加資源,例如流和索引。這些資源使用唯一名稱,其中一些在以下表格中提到 -

型別 ARN(Amazon 資源名稱)
arn:aws:dynamodb:region:account-id:table/table-name/stream/stream-label
索引 arn:aws:dynamodb:region:account-id:table/table-name/index/index-name
arn:aws:dynamodb:region:account-id:table/table-name

所有權

資源所有者定義為生成資源的 AWS 賬戶,或負責在資源建立中進行請求身份驗證的主體實體賬戶。考慮一下這在 DynamoDB 環境中的作用 -

  • 在使用根憑證建立表時,您的賬戶保持為資源所有者。

  • 在建立 IAM 使用者並授予使用者建立表的許可權時,您的賬戶仍然是資源所有者。

  • 在建立 IAM 使用者並授予使用者以及任何能夠承擔該角色的人建立表的許可權時,您的賬戶仍然是資源所有者。

管理資源訪問

訪問管理主要需要關注描述使用者和資源訪問的許可權策略。您將策略與 IAM 身份或資源關聯。但是,DynamoDB 僅支援 IAM/身份策略。

基於身份的 (IAM) 策略允許您以以下方式授予許可權 -

  • 將許可權附加到使用者或組。
  • 將許可權附加到角色以進行跨賬戶許可權。

其他 AWS 允許基於資源的策略。這些策略允許訪問諸如 S3 儲存桶之類的東西。

策略元素

策略定義操作、效果、資源和主體;並授予執行這些操作的許可權。

注意 - API 操作可能需要多個操作的許可權。

仔細檢視以下策略元素 -

  • 資源 - ARN 標識此項。

  • 操作 - 關鍵字標識這些資源操作,以及是否允許或拒絕。

  • 效果 - 它指定使用者對操作請求的效果,即允許或拒絕,拒絕為預設值。

  • 主體 - 這標識附加到策略的使用者。

條件

在授予許可權時,您可以指定策略何時生效的條件,例如在特定日期。使用條件鍵表達條件,其中包括 AWS 系統範圍鍵和 DynamoDB 鍵。這些鍵將在本教程後面詳細討論。

控制檯許可權

使用者需要某些基本許可權才能使用控制檯。他們還需要其他標準服務中的控制檯許可權 -

  • CloudWatch
  • 資料管道
  • 身份和訪問管理
  • 通知服務
  • Lambda

如果 IAM 策略過於有限,則使用者無法有效使用控制檯。此外,您無需擔心僅呼叫 CLI 或 API 的使用者的使用者許可權。

常用 IAM 策略

AWS 使用獨立的 IAM 託管策略涵蓋許可權中的常見操作。它們提供關鍵許可權,使您可以避免深入研究必須授予的內容。

其中一些如下 -

  • AmazonDynamoDBReadOnlyAccess - 它透過控制檯提供只讀訪問許可權。

  • AmazonDynamoDBFullAccess - 它透過控制檯提供完全訪問許可權。

  • AmazonDynamoDBFullAccesswithDataPipeline - 它透過控制檯提供完全訪問許可權,並允許使用資料管道進行匯出/匯入。

您當然也可以建立自定義策略。

授予許可權:使用 Shell

您可以使用 Javascript Shell 授予許可權。以下程式顯示了一個典型的許可權策略 -

{ 
   "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" 
      } 
   ] 
}

您可以檢視以下三個示例 -

阻止使用者執行任何表操作。

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

阻止訪問表及其索引。

{ 
   "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/*" 
         ] 
      } 
   ] 
}

阻止使用者進行預留容量供應購買。

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

授予許可權:使用 GUI 控制檯

您還可以使用 GUI 控制檯建立 IAM 策略。首先,從導航窗格中選擇。在表列表中,選擇目標表並按照以下步驟操作。

步驟 1 - 選擇訪問控制選項卡。

步驟 2 - 選擇身份提供者、操作和策略屬性。輸入所有設定後,選擇建立策略

步驟 3 - 選擇附加策略說明,並完成每個必需步驟以將策略與相應的 IAM 角色關聯。

廣告

© . All rights reserved.