DynamoDB 全域資料表安全性 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 全域資料表安全性

全域資料表複本是 DynamoDB 資料表,因此您可以使用與單一區域資料表相同的方法來控制對複本的存取,包括 AWS Identity and Access Management (IAM) 身分政策和以資源為基礎的政策。

全域資料表如何使用 AWS IAM

複寫服務連結角色

當您第一次建立全域資料表時,Amazon DynamoDB 會自動建立 AWS Identity and Access Management (IAM) 服務連結角色 (SLR)。SLR 名為 AWSServiceRoleForDynamoDBReplication,並允許 DynamoDB 代表您管理全域資料表的跨區域複寫。

將資源型政策套用至複本時,請確定您不會拒絕AWSServiceRoleForDynamoDBReplication政策中定義的任何許可給 SLR 委託人,因為這會中斷複寫。如果您拒絕必要的 SLR 許可,對受影響複本的複寫和複寫將停止,而複本資料表狀態將變更為 REPLICATION_NOT_AUTHORIZED

  • 如果全域資料表中針對多區域最終一致性 (MREC) 設定的複本保持 REPLICATION_NOT_AUTHORIZED 狀態超過 20 小時,則複本會不可逆地轉換為單一區域 DynamoDB 資料表。

  • 針對多區域強式一致性 (MRSC) 設定的全域資料表複本會傳回 ,AccessDeniedException以進行寫入和強式一致讀取操作。如果 MRSC 全域資料表中的複本停留在 REPLICATION_NOT_AUTHORIZED 狀態超過七天,則複本會永久無法存取,而且寫入和強式一致性讀取操作會繼續失敗並發生錯誤。複本刪除等某些管理操作將會成功。

自動擴展服務連結角色

當您設定佈建容量模式的全域資料表時,也必須設定全域資料表的自動擴展。DynamoDB Auto Scaling Service 會使用 AWS Application Auto Scaling Service 動態調整全域資料表複本上的佈建輸送量容量。Application Auto Scaling 服務會建立名為 的服務連結角色 (SLR),AWSServiceRoleForApplicationAutoScaling_DynamoDBTable以管理佈建的資料表容量並建立 CloudWatch 警示。將資源型政策套用至複本時,請確定您不會拒絕AWSServiceRoleForApplicationAutoScaling_DynamoDBTable政策中定義的任何許可給 Application Auto Scaling Service SLR 主體,因為這會中斷自動擴展功能。

如需服務連結角色的詳細資訊,請參閱 IAM 使用者指南中的使用服務連結角色

全域資料表的必要許可

若要建立複本,您必須在要新增複本的資料表或複本上擁有下列許可:

  • dynamodb:UpdateTable

若要建立複本,您必須在要建立新複本的每個區域中擁有下列許可:

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

若要建立見證,您必須在建立新的見證的區域中擁有下列許可:

  • dynamodb:CreateGlobalTableWitness

若要刪除複本,您必須在複本上擁有下列許可:

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

若要刪除見證,您必須在見證上擁有下列許可:

  • dynamodb:DeleteGlobalTableWitness

若要使用 UpdateTableReplicaAutoScaling API 更新複本自動擴展政策,您必須在包含複本的所有區域中擁有下列許可:

  • application-autoscaling:DeleteScalingPolicy

  • application-autoscaling:DeleteScheduledAction

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DescribeScalingActivities

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DescribeScheduledActions

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:PutScheduledAction

  • application-autoscaling:RegisterScalableTarget

若要使用 UpdateTimeToLive API 更新存留時間設定,您必須在所有複本上擁有下列許可:

  • dynamodb:UpdateTimeToLive

範例 IAM 政策

範例:管理全域資料表

下列 IAM 政策授予許可,以建立和刪除三個區域中「使用者」資料表的全域資料表複本和見證:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManagingUsersGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:CreateGlobalTableWitness", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:DeleteGlobalTableWitness", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/users", "arn:aws:dynamodb:us-east-2:123456789012:table/users", "arn:aws:dynamodb:us-west-2:123456789012:table/users" ] } ] }

範例:從萬用字元拒絕政策排除必要的 SLR 許可

具有下列條件的 IAM 政策不會影響 DynamoDB 複寫 SLR 和 AWS Auto Scaling SLR 的必要許可。此條件可新增至其他廣泛限制的政策,以避免意外中斷複寫或自動擴展:

"Condition": { "StringNotEquals": { "aws:PrincipalArn": [ "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication", "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" ] } }

全域資料表的使用方式 AWS KMS

與所有 DynamoDB 資料表一樣,全域資料表複本一律使用存放在 AWS Key Management Service () 中的加密金鑰來加密靜態資料AWS KMS。

全域資料表中的所有複本都必須設定相同類型的 KMS 金鑰 (AWS 擁有的金鑰、 AWS 受管金鑰或客戶受管金鑰)。

重要

DynamoDB 需要存取複本的加密金鑰,才能刪除複本。如果您想要停用或刪除用於加密複本的客戶受管金鑰,因為您要刪除複本,您應該先刪除複本,等待其中一個剩餘複本上的資料表狀態變更為 ACTIVE,然後停用或刪除金鑰。

對於針對多區域最終一致性 (MREC) 設定的全域資料表,如果您停用或撤銷 DynamoDB 對用於加密複本之客戶受管金鑰的存取權,則複本的複寫將停止,且複本狀態將變更為 INACCESSIBLE_ENCRYPTION_CREDENTIALS。如果 MREC 全域資料表中的複本保持 INACCESSIBLE_ENCRYPTION_CREDENTIALS 狀態超過 20 小時,則複本會不可復原地轉換為單一區域 DynamoDB 資料表。

對於針對多區域強式一致性 (MRSC) 設定的全域資料表,如果您停用或撤銷 DynamoDB 對用於加密複本之客戶受管金鑰的存取權,則複本的複寫將停止,嘗試對複本執行寫入或強式一致性讀取將傳回錯誤,且複本狀態將變更為 INACCESSIBLE_ENCRYPTION_CREDENTIALS。如果 MRSC 全域資料表中的複本保持 INACCESSIBLE_ENCRYPTION_CREDENTIALS 狀態超過七天,則視撤銷的特定許可而定,複本將封存或永久無法存取。