View a markdown version of this page

搭配 IAM 使用 DynamoDB 備份與還原 - Amazon DynamoDB

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

搭配 IAM 使用 DynamoDB 備份與還原

您可以使用 AWS Identity and Access Management (IAM) 來限制某些資源的 Amazon DynamoDB 備份和還原動作。在每份資料表中操作 CreateBackup 和 RestoreTableFromBackup API。

如需在 DynamoDB 中使用 IAM 政策的詳細資訊,請參閱 適用於 DynamoDB 的以身分為基礎的政策。

您可使用以下 IAM 政策範例,在 DynamoDB 中設定特定的備份與還原功能。

範例 1:允許 CreateBackup 和 RestoreTableFromBackup 動作

下列 IAM 政策會授予許可,允許在所有資料表上執行 CreateBackup 與 RestoreTableFromBackup DynamoDB 動作:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:CreateBackup", "dynamodb:RestoreTableFromBackup", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem" ], "Resource": "*" } ] }
重要

DynamoDB RestoreTableFromBackup 權限對來源備份而言為必要,而目標資料表的 DynamoDB 讀取和寫入權限對於還原功能而言則為必要。

DynamoDB RestoreTableToPointInTime 權限對來源資料表而言為必要,而目標資料表的 DynamoDB 讀取和寫入權限對於還原功能而言則為必要。

範例 2:允許 CreateBackup 並拒絕 RestoreTableFromBackup

下列 IAM 政策授予 CreateBackup 動作的許可,並拒絕 RestoreTableFromBackup 動作:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateBackup"], "Resource": "*" }, { "Effect": "Deny", "Action": ["dynamodb:RestoreTableFromBackup"], "Resource": "*" } ] }

範例 3:允許 ListBackups 並拒絕 CreateBackup 及 RestoreTableFromBackup

下列 IAM 政策授予 ListBackups 動作的許可,並拒絕 CreateBackup 和 RestoreTableFromBackup 動作:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dynamodb:CreateBackup", "dynamodb:RestoreTableFromBackup" ], "Resource": "*" } ] }

範例 4:允許 ListBackups 並拒絕 DeleteBackup

下列 IAM 政策授予 ListBackups 動作的許可,並拒絕 DeleteBackup 動作:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" }, { "Effect": "Deny", "Action": ["dynamodb:DeleteBackup"], "Resource": "*" } ] }

範例 5:允許所有資源的 RestoreTableFromBackup 和 DescribeBackup,並拒絕特定備份的 DeleteBackup

下列 IAM 政策會授予 RestoreTableFromBackup 和 DescribeBackup 動作的許可,並拒絕特定備份資源的 DeleteBackup 動作:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeBackup", "dynamodb:RestoreTableFromBackup" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d" }, { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dynamodb:DeleteBackup" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d" } ] }
重要

DynamoDB RestoreTableFromBackup 權限對來源備份而言為必要,而目標資料表的 DynamoDB 讀取和寫入權限對於還原功能而言則為必要。

DynamoDB RestoreTableToPointInTime 權限對來源資料表而言為必要,而目標資料表的 DynamoDB 讀取和寫入權限對於還原功能而言則為必要。

範例 6:允許特定資料表的 CreateBackup

下列 IAM 政策只授予在 Movies 資料表上執行 CreateBackup 動作的許可:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateBackup"], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/Movies" ] } ] }

範例 7:允許 ListBackups

下列 IAM 政策會授予 ListBackups 動作的許可:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" } ] }
重要

您無法授予對特定資料表執行 ListBackups 動作的許可。

範例 8:允許存取 AWS Backup 功能

您將需要 StartAwsBackupJob 動作的 API 許可,以便成功進行進階功能備份,以及 dynamodb:RestoreTableFromAwsBackup 動作,以成功還原該備份。

下列 IAM 政策授予 AWS Backup 許可,以觸發具有進階功能和還原的備份。另請注意,如果資料表已加密,則政策將需要存取AWS KMS 金鑰。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DescribeQueryScanBooksTable", "Effect": "Allow", "Action": [ "dynamodb:StartAwsBackupJob", "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Books" }, { "Sid": "AllowRestoreFromAwsBackup", "Effect": "Allow", "Action": [ "dynamodb:RestoreTableFromAwsBackup" ], "Resource": "*" } ] }

範例 9:拒絕特定來源資料表的 RestoreTableToPointInTime

以下 IAM 政策拒絕特定來源資料表 RestoreTableToPointInTime 動作的權限:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:RestoreTableToPointInTime" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music" } ] }

範例 10:拒絕為特定來源資料表的所有備份執行 RestoreTableFromBackup

以下 IAM 政策拒絕特定來源資料表中所有備份的 RestoreTableToPointInTime 動作權限:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:RestoreTableFromBackup" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/*" } ] }