本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB 全域資料表安全性
全域資料表複本是 DynamoDB 資料表,因此您可以使用與單一區域資料表相同的方法來控制對複本的存取,包括 AWS Identity and Access Management (IAM) 身分政策和以資源為基礎的政策。
全域資料表如何使用 AWS IAM
複寫服務連結角色
當您第一次建立全域資料表時,Amazon DynamoDB 會自動建立 AWS Identity and Access Management (IAM) 服務連結角色 (SLR)。SLR 名為 AWSServiceRoleForDynamoDBReplication
將資源型政策套用至複本時,請確定您不會拒絕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 政策授予許可,以建立和刪除三個區域中「使用者」資料表的全域資料表複本和見證:
範例:從萬用字元拒絕政策排除必要的 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
狀態超過七天,則視撤銷的特定許可而定,複本將封存或永久無法存取。