

# DynamoDB のオンデマンドバックアップおよび復元の使用
<a name="backuprestore_HowItWorks"></a>

Amazon DynamoDB では、スタンドアロンのオンデマンドバックアップと復元機能をサポートしています。これらの機能は、AWS Backup を使用するかどうかに関係なく利用できます。　

DynamoDB オンデマンドバックアップ機能を使用し、テーブルの完全なバックアップを作成して、規制コンプライアンスの要件を満たすために長期間の保存とアーカイブを行うことができます。テーブルのデータは、AWS マネジメントコンソールでワンクリックするか、1 回の API 呼び出しで、バックアップおよび復元することができます。バックアップおよび復元アクションを実行しても、テーブルのパフォーマンスや可用性に影響を及ぼすことはありません。

コンソール、AWS コマンドラインインターフェース (AWS CLI)、または DynamoDB API を使用してテーブルバックアップを作成できます。詳細については、「[DynamoDB テーブルのバックアップ](Backup.Tutorial.md)」を参照してください。

バックアップからテーブル復元する方法については、「[バックアップからの DynamoDB テーブルの復元](Restore.Tutorial.md)」を参照してください。

# DynamoDB を使用した DynamoDB テーブルのバックアップと復元の仕組み
<a name="CreateBackup"></a>

DynamoDB オンデマンドバックアップ機能を使用して、Amazon DynamoDB テーブルの完全バックアップを作成できます。この機能は、AWS Backup とは関係なく利用できます。このセクションでは、DynamoDB のバックアップおよび復元プロセス中に発生するこをの概要について説明します。

## バックアップ
<a name="CreateBackup_HowItWorks"></a>

DynamoDB を使用してオンデマンドバックアップを作成すると、リクエストのタイムマーカーがカタログ化されます。このバックアップは、前回のテーブル全体のスナップショットへのリクエスト時間までにすべての変更を適用して、非同期的に作成されます。DynamoDB のバックアップリクエストは瞬時に処理され、数分以内に復元できる状態になります。

**注記**  
オンデマンドバックアップを作成する度に、テーブルデータ全体がバックアップされます。オンデマンドバックアップの実行可能数に制限はありません。

DynamoDB では、テーブルのプロビジョンされたスループットを消費することなく、バックアップすることができます。

DynamoDB バックアップでは、項目間の因果整合性は保証されません。ただし、バックアップの更新間のスキューは、通常 1 秒未満です。

バックアップ進行中は、以下を行うことができません。
+ バックアップオペレーションの一時停止またはキャンセル。
+ バックアップのソーステーブルの削除。
+ テーブルのバックアップ中におけるテーブルのバックアップの無効化。

スケジューリングスクリプトとクリーンアップジョブを作成したくない場合は、AWS Backup を使用して DynamoDB テーブルのスケジュールと保存ポリシーを含むバックアップ計画を作成できます。AWS Backup はバックアップを実行し、有効期限が切れると削除します。詳細については、「[AWS Backup デベロッパーガイド](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)」を参照してください。

AWS Backup に加えて、AWS Lambda 関数を使用して、定期的または以降のバックアップをスケジュールできます。詳細については、ブログ記事「[Amazon DynamoDB のオンデマンドバックアップをスケジュールするサーバーレスソリューション](https://aws.amazon.com/blogs/database/a-serverless-solution-to-schedule-your-amazon-dynamodb-on-demand-backup/)」を参照してください。

コンソールを使用している場合、AWS Backup を使用して作成されたバックアップは、[**Backup type (バックアップタイプ)**] が `AWS` に設定された状態で [**Backups (バックアップ)**] タブに一覧表示されます。

**注記**  
DynamoDB コンソールを使用して、[**Backup type (バックアップタイプ)**] が AWS でマークされたバックアップを削除することはできません。これらのバックアップを管理するには、AWS Backup コンソールを使用します。

バックアップを実行する方法については、「[DynamoDB テーブルのバックアップ](Backup.Tutorial.md)」を参照してください。

## 復元
<a name="CreateBackup_HowItWorks-restore"></a>

テーブルは、テーブルのプロビジョニングされたスループットを消費することなく復元します。DynamoDB バックアップからテーブル全体を復元することも、送信先テーブルの設定を構成することもできます。復元を実行するときに、次のテーブル設定を変更できます。
+ グローバルセカンダリインデックス (GSI)
+ ローカルセカンダリインデックス (LSI)
+ 請求モード
+ プロビジョニングされた読み込みおよび書き込みキャパシティ
+ 暗号化設定

**重要**  
テーブル全体を復元する場合、送信先テーブルはバックアップがリクエストされた時間に記録されたように、送信元テーブルと同じプロビジョニングされた読み込みキャパシティユニットおよびプロビジョニングされた書き込みキャパシティユニットを使用して設定されます。復元プロセスでは、ローカルセカンダリインデックスおよびグローバルセカンダリインデックスも復元されます。

また、バックアップが存在する別のリージョンに復元済みテーブルが作成されるように、AWS リージョン全体で DynamoDB テーブルデータを復元することもできます。AWS 商用リージョン、AWS 中国リージョン、および AWS GovCloud (米国) リージョン間でクロスリージョン復元を実行できます。送信元リージョンから転送したデータと、送信先リージョンの新しいテーブルの復元に対してのみ料金が発生します。

新しく復元されるテーブルで、一部またはすべてのセカンダリインデックスの作成を除外すると、復元はより高速でコスト効率が高くなります。

以下は、復元されたテーブルで手動で設定する必要があります。
+ Auto Scaling ポリシー
+ AWS Identity and Access Management (IAM) ポリシー
+ Amazon CloudWatch メトリクスおよびアラーム
+ タグ
+ ストリーム設定
+ 有効期限 (TTL) 設定
+ 削除保護設定
+ ポイントインタイムリカバリ (PITR) 設定

テーブルデータ全体は、バックアップから新しいテーブルにのみ復元することができます。復元されたテーブルに書き込むことができるのは、アクティブになってからです。

**注記**  
 復元オペレーション中は既存のテーブルを上書きすることはできません。

復元時間は、テーブルの構成 (テーブルのサイズ、基礎となるパーティションの数など) およびその他の関連する変数に直接関係しています。災害対策を計画する際のベストプラクティスは、平均復元完了時間を定期的に記録し、これらの時間が目標復旧時間全体にどのように影響するかを確認することです。

復元を実行する方法については、「[バックアップからの DynamoDB テーブルの復元](Restore.Tutorial.md)」を参照してください。

IAM ポリシーを使用してアクセスコントロールできます。詳細については、「[DynamoDB バックアップおよび復元での IAM の使用](backuprestore_IAM.md)」を参照してください。

バックアップおよび復元を行うコンソールと API のアクションはすべて、AWS CloudTrail にキャプチャおよび記録され、ログ記録、継続的モニタリング、監査に使用されます。

# DynamoDB テーブルのバックアップ
<a name="Backup.Tutorial"></a>

このセクションでは、Amazon DynamoDB コンソールまたは AWS Command Line Interface を使用してテーブルをバックアップする方法について説明します。

**Topics**

## テーブルバックアップの作成 (コンソール)
<a name="backup_console"></a>

`MusicBackup` を使用して既存のテーブル `Music` のバックアップ AWS マネジメントコンソール を作成するには、以下のステップに従います。

**テーブルのバックアップを作成するには**

1. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. バックアップを作成するには、次のいずれかを行います。
   + `Music` テーブルの **[Backups]** (バックアップ) タブで、**[Create backup]** (バックアップの作成) を選択します。
   + コンソールの左側のナビゲーションペインで、[**Backups (バックアップ)**] を選択します。続いて、[**Create backup (バックアップを作成)**] を選択します。

1. `Music` がテーブル名であることを確認し、バックアップ名として **MusicBackup** を入力します。次に、**[バックアップを作成]** を選択してバックアップを作成します。  
![\[テーブル名とバックアップ名を入力した [バックアップを作成] コンソール画面。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/confirm_createbackup.png)
**注記**  
ナビゲーションペインの [**Backups (バックアップ)**] セクションでバックアップを作成した場合、テーブルは事前に選択されていません。バックアップ用のソーステーブルは、手動で選択する必要があります。

   バックアップ作成中、バックアップステータスは [**作成中**] に設定されます。バックアップが完了すると、バックアップステータスは [**利用可能**] に変わります。  
![\[オンデマンドバックアップコンソールページ。MusicBackup のステータスは [利用可能] と表示されています。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/confirm_backup.png)

## テーブルバックアップの作成 (AWS CLI)
<a name="backup_cli"></a>

`Music` を使用して既存のテーブル AWS CLI のバックアップを作成するには、以下のステップに従います。

**テーブルのバックアップを作成するには**
+ `MusicBackup` テーブルのバックアップ (`Music`) を作成します。

  ```
  aws dynamodb create-backup --table-name Music \
   --backup-name MusicBackup
  ```

   バックアップ作成中、バックアップステータスは `CREATING` に設定されます。

  ```
  {
      "BackupDetails": {
          "BackupName": "MusicBackup", 
          "BackupArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489602797149-73d8d5bc", 
          "BackupStatus": "CREATING", 
          "BackupCreationDateTime": 1489602797.149
      }
  }
  ```

バックアップが完了すると、その `BackupStatus` が `AVAILABLE` に変更されます。これを確認するには、`describe-backup` コマンドを使用します。入力値 (`backup-arn`) は、前のステップの出力から、または `list-backups` コマンドを使用して取得できます。

```
aws dynamodb describe-backup \
--backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
```

 バックアップを追跡するには、`list-backups` コマンドを使用できます。これにより、`CREATING` ステータスまたは `AVAILABLE` ステータスのバックアップがすべて表示されます。

```
aws dynamodb list-backups
```

 バックアップのソーステーブルに関する情報を確認するには、`list-backups` コマンドおよび `describe-backup` コマンドが便利です。

# バックアップからの DynamoDB テーブルの復元
<a name="Restore.Tutorial"></a>

このセクションでは、 Amazon DynamoDB コンソールまたは AWS Command Line Interface (AWS CLI) を使用してバックアップからテーブルを復元する方法について説明します。

**注記**  
AWS CLI を使用する場合は、最初に設定する必要があります。詳細については、「[DynamoDB にアクセスする](AccessingDynamoDB.md)」を参照してください。

**Topics**

## バックアップからのテーブルの復元 (コンソール)
<a name="restoretable_console"></a>

以下の手順では、`Music` チュートリアルで作成された `MusicBackup` ファイルを使用して [DynamoDB テーブルのバックアップ](Backup.Tutorial.md) を復元する方法について説明します。

**注記**  
この手順では、`Music` が既に存在していないことを前提として、これを `MusicBackup` ファイルを使用してリストアする方法を示します。

**バックアップからテーブルを復元するには**

1. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. コンソールの左側のナビゲーションペインで、[**Backups (バックアップ)**] を選択します。

1. バックアップのリストで、[`MusicBackup`] を選択します。  
![\[バックアップリストおよびバックアップの作成ボタンのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. **[復元]** を選択します。

1. 新しいテーブルの名前を **Music** と入力します。バックアップ名およびその他のバックアップの詳細を確認します。続いて、[**Restore table (テーブルの復元)**] を選択して復元プロセスを開始します。
**注記**  
テーブルは、同じ AWS リージョンまたはバックアップが存在する別のリージョンに復元できます。新しく復元されるテーブルで、セカンダリインデックスの作成を除外することもできます。また、別の暗号化モードを指定することもできます。  
バックアップから復元されたテーブルは、常に DynamoDB 標準テーブルクラスを使用して作成されます。  
![\[バックアップテーブルの詳細が表示されたバックアップ画面の復元テーブルのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/restore_table.png)

   復元中のテーブルのステータスは、[**Creating (作成中)**] と表示されます。復元プロセスが終了すると、`Music` テーブルのステータスは [**アクティブ**] に変わります。

## バックアップからのテーブルの復元 (AWS CLI)
<a name="restoretable_cli"></a>

AWS CLI チュートリアルで作成されている `Music` を使用して、`MusicBackup` で [DynamoDB テーブルのバックアップ](Backup.Tutorial.md) テーブルを復元するには、以下の手順を実行します。

**バックアップからテーブルを復元するには**

1. `list-backups` コマンドを使用して復元するバックアップを確認します。この例では `MusicBackup` を使用します。

   ```
   aws dynamodb list-backups
   ```

   バックアップの詳細をさらに取得するには、`describe-backup` コマンドを使用します。前のステップから入力の `backup-arn` を取得できます。

   ```
   aws dynamodb describe-backup \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. バックアップからテーブルを復元します。この場合、`MusicBackup` は `Music` テーブルを同じ AWS リージョンに復元します。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. カスタムテーブル設定で、バックアップからテーブルを復元します。この場合、`MusicBackup` は `Music` テーブルを復元し、復元したテーブルの暗号化モードを指定します。
**注記**  
`sse-specification-override` パラメータは、`sse-specification-override` コマンドで使用される `CreateTable` パラメータと同じ値を使用します。詳細については、「[DynamoDB での暗号化テーブルの管理](encryption.tutorial.md)」を参照してください。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   テーブルは、バックアップが存在する別の AWS リージョンに復元できます。
**注記**  
`sse-specification-override` パラメータは、クロスリージョン復元には必須ですが、送信元テーブルと同じリージョンに復元する場合はオプションです。
コマンドラインからクロスリージョン復元を実行する場合は、デフォルトの AWS リージョンを希望のリージョンに設定する必要があります。詳細については、「AWS Command Line Interface のユーザーガイド」の「[コマンドラインオプション](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html)」を参照してください。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

   復元済みテーブルの請求モードとプロビジョニングされたスループットをオーバーライドできます。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d \
   --billing-mode-override PAY_PER_REQUEST
   ```

   復元済みテーブルで、一部またはすべてのセカンダリインデックスの作成を除外できます。
**注記**  
復元済みテーブルで、一部またはすべてのセカンダリインデックスの作成を除外すると、復元はより高速でコスト効率が高くなります。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581081403719-db9c1f91 \
   --global-secondary-index-override '[]' \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```
**注記**  
提供されたセカンダリインデックスは、既存のインデックスに一致します。復元時に新しいインデックスを作成することはできません。

   さまざまなオーバーライドの組み合わせを使用できます。たとえば、次のように単一のグローバルセカンダリインデックスを使用すると同時に、プロビジョニングされたスループットを変更できます。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:eu-west-1:123456789012:table/Music/backup/01581082594992-303b6239 \
   --billing-mode-override PROVISIONED \
   --provisioned-throughput-override ReadCapacityUnits=100,WriteCapacityUnits=100 \
   --global-secondary-index-override IndexName=singers-index,KeySchema=["{AttributeName=SingerName,KeyType=HASH}"],Projection="{ProjectionType=KEYS_ONLY}",ProvisionedThroughput="{ReadCapacityUnits=5,WriteCapacityUnits=5}" \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

 復元を確認するには、`describe-table` コマンドで `Music` テーブルを指定します。

```
aws dynamodb describe-table --table-name Music 
```

バックアップから復元中のテーブルのステータスは、[**Creating (作成中)**] と表示されます。復元プロセスが終了すると、`Music` テーブルのステータスは [**アクティブ**] に変わります。

**重要**  
復元中は、IAM ロールのポリシーを変更または削除しないでください。行った場合、予期しない動作が発生する場合があります。たとえば、テーブルの復元中にテーブルの書き込み権限を削除したとします。この場合、基本となる `RestoreTableFromBackup` オペレーションを使用しても、復元されたデータをテーブルに書き込むことはできません。  
復元オペレーションが完了したら、IAM ロールポリシーを変更または削除できます。  
復元先のターゲットテーブルにアクセスするための[送信元 IP の制限](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip)を含む IAM ポリシーでは、プリンシパルによって直接行われたリクエストにのみその制限が適用されるように、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) キーを `false` に設定する必要があります。そうしないと、復元はキャンセルされます。  
バックアップが AWS マネージドキー またはカスタマーマネージドキーで暗号化されている場合、復元中にキーを無効にしたり削除したりすると復元が失敗します。  
復元操作が完了したら、復元されたテーブルの暗号化キーを変更し、古いキーを無効化または削除できます。

# DynamoDB テーブルのバックアップの削除
<a name="Delete.Tutorial"></a>

このセクションでは、AWS マネジメントコンソール または AWS Command Line Interface (AWS CLI) を使用して Amazon DynamoDB テーブルバックアップを削除する方法について説明します。

**注記**  
AWS CLI を使用する場合は、最初に設定する必要があります。詳細については、「[の使用AWS CLI](AccessingDynamoDB.md#Tools.CLI)」を参照してください。

**Topics**

## テーブルバックアップの削除 (コンソール)
<a name="deletebackup_console"></a>

次の手順では、コンソールを使用し、`MusicBackup` チュートリアルで作成した [DynamoDB テーブルのバックアップ](Backup.Tutorial.md) を削除する方法を示します。

**バックアップを削除するには**

1. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. コンソールの左側のナビゲーションペインで、[**Backups (バックアップ)**] を選択します。

1. バックアップのリストで、[`MusicBackup`] を選択します。  
![\[利用可能なステータスである MusicBackup を示すスクリーンショット\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. **[削除]** を選択します。「**delete**」と入力してから、[**削除**] をクリックして、バックアップの削除を確認します。

## テーブルバックアップの削除 (AWS CLI)
<a name="deletebackup_cli"></a>

次の例では、`Music` を使用して、既存のテーブルである AWS CLI テーブルのバックアップを削除します。

```
aws dynamodb delete-backup \
--backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489602797149-73d8d5bc
```

# DynamoDB バックアップおよび復元での IAM の使用
<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)」を参照してください。

次に、DynamoDB で特定のバックアップ機能と復元機能を設定するために使用できる IAM ポリシーの例を示します。

## 例 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 の読み取りおよび書き込みアクセス許可が必要です。  
 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 の読み取りおよび書き込みアクセス許可が必要です。  
 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` アクションと、そのバックアップを正常に復元するための `dynamodb:RestoreTableFromAwsBackup` アクションに対する API アクセス許可が必要になります。

次の 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/*"
        }
    ]
}
```

------