

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

# 搭配 IAM 使用 DynamoDB 備份與還原
<a name="backuprestore_IAM"></a>

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

 如需在 DynamoDB 中使用 IAM 政策的詳細資訊，請參閱 [適用於 DynamoDB 的以身分為基礎的政策](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)。

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

## 範例 1：允許 CreateBackup 和 RestoreTableFromBackup 動作
<a name="access-policy-example1"></a>

下列 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
<a name="access-policy-example2"></a>

下列 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
<a name="access-policy-example3"></a>

下列 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
<a name="access-policy-example4"></a>

下列 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
<a name="access-policy-example5"></a>

下列 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
<a name="access-policy-example6"></a>

下列 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
<a name="access-policy-example7"></a>

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

------
#### [ JSON ]

****  

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

------

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

## 範例 8：允許存取 AWS Backup 功能
<a name="access-policy-example8"></a>

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

下列 IAM 政策授予 AWS Backup 許可，以觸發具有進階功能和還原的備份。另請注意，如果資料表已加密，則政策將需要存取[AWS KMS 金鑰](encryption.usagenotes.html#dynamodb-kms-authz)。

------
#### [ 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
<a name="access-policy-example9"></a>

以下 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
<a name="access-policy-example10"></a>

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

------
#### [ JSON ]

****  

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

------