本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 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:account-id: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/*"
}
]
}