

# Usar backup e restauração sob demanda do DynamoDB
<a name="backuprestore_HowItWorks"></a>

O Amazon DynamoDB oferece suporte aos recursos autônomos de backup e restauração sob demanda. Esses recursos estão disponíveis para você, independentemente de você usar o AWS Backup ou não.

Você pode usar o recurso de backup sob demanda do DynamoDB para criar backups completos de suas tabelas para retenção e arquivamento em longo prazo de modo a atender às necessidades de conformidade regulatória. Você pode fazer backup dos dados de tabelas e restaurá-los a qualquer momento com um único clique no Console de Gerenciamento da AWS ou com uma única chamada de API. As ações de backup e restauração são executadas sem causar impactos na performance nem na disponibilidade da tabela.

Você pode criar backups de tabela usando o console, a AWS Command Line Interface (AWS CLI) ou a API do DynamoDB. Para obter mais informações, consulte [Fazer backup de uma tabela do DynamoDB](Backup.Tutorial.md).

Para obter mais informações sobre a restauração de tabelas a partir de backups, consulte [Restaurar uma tabela do DynamoDB de um backup](Restore.Tutorial.md).

# Fazer backup e restaurar tabelas do DynamoDB com o DynamoDB: como funciona
<a name="CreateBackup"></a>

Você pode usar o recurso de backup sob demanda do DynamoDB para criar backups completos das suas tabelas do Amazon DynamoDB. Esse recurso está disponível independentemente do backup da AWS. Esta seção oferece uma visão geral do que ocorre durante o processo de backup e restauração do DynamoDB.

## Backups
<a name="CreateBackup_HowItWorks"></a>

Ao criar um backup sob demanda com o DynamoDB, um marcador de tempo da solicitação é catalogado. O backup é criado de forma assíncrona aplicando todas as alterações desde o momento da solicitação até o último snapshot da tabela completa. As solicitações de backup do DynamoDB são processadas instantaneamente e a restauração é disponibilizada em minutos.

**nota**  
Toda vez que você criar um backup sob demanda, será feito backup de todos os dados da tabela. Não há limite para o número de backups sob demanda que podem ser realizados.

Todos os backups no DynamoDB funcionam sem consumir o throughput provisionado na tabela.

No DynamoDB, os backups não garantem consistência causal entre os itens; no entanto, a distorção entre as atualizações em um backup geralmente é muito inferior a um segundo.

Enquanto um backup estiver em andamento, você não poderá fazer o seguinte:
+ Pausar ou cancelar a operação de backup.
+ Excluir a tabela de origem do backup.
+ Desativar backups em uma tabela se houver um backup em andamento para essa tabela.

Caso não queira criar scripts de programação e trabalhos de limpeza, você poderá usar o AWS Backup para criar planos de backup com programações e políticas de retenção para suas tabelas do DynamoDB. O AWS Backup executa os backups e os exclui quando eles expiram. Para obter mais informações, consulte o [Guia do desenvolvedor do AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html).

Além do AWS Backup, você pode programar backups periódicos ou futuros usando funções de AWS Lambda. Para obter mais informações, veja a postagem do blog [A serverless solution to schedule your Amazon DynamoDB On-Demand Backup](https://aws.amazon.com/blogs/database/a-serverless-solution-to-schedule-your-amazon-dynamodb-on-demand-backup/) (Uma solução com tecnologia sem servidor para agendar o backup sob demanda do Amazon DynamoDB).

Se estiver usando o console, todo backup criado usando o AWS Backup será listado na guia **Backups** com o **Backup type (Tipo de backup)** definido como `AWS`.

**nota**  
Você não pode excluir backups marcados com um **Backup type** (Tipo de backup) AWS usando o console do DynamoDB. Para gerenciar esses backups, use o console do AWS Backup.

Para saber como realizar um backup, consulte [Fazer backup de uma tabela do DynamoDB](Backup.Tutorial.md).

## Restaurações
<a name="CreateBackup_HowItWorks-restore"></a>

Você restaura uma tabela sem consumir o throughput provisionado na tabela. Você pode fazer uma restauração completa da tabela usando o backup do DynamoDB ou pode definir as configurações da tabela de destino. Ao fazer uma restauração, você pode alterar as seguintes configurações de tabela:
+ Índices secundários globais (GSIs)
+ Índices secundários locais (LSIs)
+ Modo de faturamento
+ Capacidade de leitura e gravação provisionada
+ Configurações de criptografia

**Importante**  
Quando você faz uma restauração completa da tabela, a tabela de destino é definida com as mesmas unidades de capacidade de leitura e unidades de capacidade de gravação provisionadas da tabela de origem, conforme gravado no momento em que o backup foi solicitado. O processo de restauração também restaura os índices secundários locais e os índices secundários globais.

Você também pode restaurar os dados da tabela do DynamoDB em regiões da AWS de modo que a tabela restaurada seja criada em uma região diferente daquela na qual o backup reside. Você pode fazer restaurações entre regiões comerciais da AWS, regiões da AWS China e regiões da AWS GovCloud (EUA). Você paga somente pelos dados transferidos para fora da região de origem e pela restauração para uma nova tabela na região de destino.

As restaurações poderão ser mais rápidas e econômicas se você optar por excluir a criação de alguns ou todos os índices secundários na nova tabela restaurada.

Você deve configurar manualmente os itens a seguir na tabela restaurada:
+ Políticas de Auto Scaling
+ AWS Identity and Access ManagementPolíticas do (IAM)
+ Métricas e alarmes do Amazon CloudWatch
+ Tags
+ Configurações de fluxo
+ Configurações de vida útil (TTL)
+ Configurações de proteção contra exclusão
+ Configurações de recuperação para um ponto no tempo (PITR)

Só é possível restaurar os dados completos da tabela para uma nova tabela por meio de backup. Você pode gravar na tabela restaurada somente depois que ela fica ativa.

**nota**  
 Você não pode substituir uma tabela existente durante uma operação de restauração.

Os tempos de restauração estão diretamente relacionados à configuração das tabelas (como o tamanho das tabelas e o número de partições subjacentes) e outras variáveis correspondentes. Uma prática recomendada ao planejar a recuperação de desastres é documentar regularmente os tempos médios de conclusão da restauração e estabelecer como esses tempos afetam seu objetivo geral de tempo de recuperação.

Para saber como realizar uma restauração, consulte [Restaurar uma tabela do DynamoDB de um backup](Restore.Tutorial.md).

Você pode usar políticas do IAM para controle de acesso. Para obter mais informações, consulte [Usar o IAM com backup e restauração do DynamoDB](backuprestore_IAM.md).

Todas as ações de backup e restauração de console e API são capturadas e registradas no AWS CloudTrail para registro, monitoramento contínuo e auditoria.

# Fazer backup de uma tabela do DynamoDB
<a name="Backup.Tutorial"></a>

Esta seção descreve como usar o console do Amazon DynamoDB ou a AWS Command Line Interface para fazer backup de uma tabela.

**Topics**

## Criar backup de uma tabela (console)
<a name="backup_console"></a>

Siga estas etapas para criar um backup chamado `MusicBackup` de uma tabela `Music` existente usando o Console de gerenciamento da AWS.

**Para criar um backup de tabela**

1. Faça login no Console de gerenciamento da AWS e abra o console do DynamoDB em [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. Para criar um backup, realize um dos seguintes procedimentos:
   + Na guia **Backups** da tabela `Music`, selecione **Create backup (Criar backup)**.
   + No painel de navegação, no lado esquerdo do console, selecione **Backups**. Em seguida, escolha **Create backup**.

1. Verifique se `Music` é o nome da tabela e insira **MusicBackup** como o nome do backup. Em seguida, escolha **Criar backup** para criar o backup.  
![\[Tela do console de criação de backup com o nome da tabela e o nome do backup preenchidos.\]](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/confirm_createbackup.png)
**nota**  
Se você criar backups usando a seção **Backups** no painel de navegação, a tabela não ficará pré-selecionada para você. Você precisará escolher manualmente o nome da tabela de origem para o backup.

   Enquanto o backup estiver sendo criado, o status do backup será **Creating**. Depois que o backup for finalizado, o status dele mudará para **Available (Disponível)**.  
![\[Página do console de backups sob demanda. O status do MusicBackup é exibido como disponível.\]](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/confirm_backup.png)

## Criar backup de uma tabela (AWS CLI)
<a name="backup_cli"></a>

Siga estas etapas para criar um backup de uma tabela `Music` existente usando a AWS CLI.

**Para criar um backup de tabela**
+ Crie um backup com o nome `MusicBackup` para a tabela `Music`.

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

   Durante a criação do backup, o status dele será `CREATING`.

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

Quando o processo de backup for concluído, o `BackupStatus` deverá mudar para `AVAILABLE`. Para confirmar, use o comando `describe-backup`. Você pode obter o valor de entrada de `backup-arn` com a saída da etapa anterior ou usando o comando `list-backups`.

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

 Para acompanhar os backups, você pode usar o comando `list-backups`. Ele lista todos os backups em status `CREATING` ou `AVAILABLE`.

```
aws dynamodb list-backups
```

 Os comandos `list-backups` e `describe-backup` são úteis para verificar informações sobre a tabela de origem do backup.

# Restaurar uma tabela do DynamoDB de um backup
<a name="Restore.Tutorial"></a>

Esta seção descreve como restaurar uma tabela de um backup usando o console do Amazon DynamoDB ou a AWS Command Line Interface (AWS CLI). 

**nota**  
Se desejar usar a AWS CLI, você precisará configurá-la primeiro. Para obter mais informações, consulte [Acessar o DynamoDB](AccessingDynamoDB.md).

**Topics**

## Restaurar uma tabela de um backup (console)
<a name="restoretable_console"></a>

O procedimento a seguir mostra como restaurar a tabela `Music` usando o arquivo `MusicBackup` que é criado no tutorial[Fazer backup de uma tabela do DynamoDB](Backup.Tutorial.md). 

**nota**  
Este procedimento supõe que a tabela `Music` não existe mais antes de restaurá-la usando o arquivo `MusicBackup`.

**Para restaurar uma tabela de um backup**

1. Faça login no Console de gerenciamento da AWS e abra o console do DynamoDB em [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. No painel de navegação, no lado esquerdo do console, selecione **Backups**.

1. Na lista de backups, escolha `MusicBackup`.  
![\[Captura de tela da lista de backups e o botão para criar backup.\]](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. Escolha **Restore**.

1. Insira **Music** como o novo nome da tabela. Confirme o nome do backup e outros detalhes. Em seguida, escolha **Restore table (Restaurar tabela)** para iniciar o processo de restauração.
**nota**  
Você pode restaurar a tabela para a mesma região da AWS ou para uma região diferente daquela na qual o backup reside. Você também pode excluir a criação de índices secundários na nova tabela restaurada. Além disso, você pode especificar um modo de criptografia diferente.  
As tabelas restauradas a partir de backups são sempre criadas usando a classe de tabela do DynamoDB Standard.  
![\[Captura de tela da tabela de restauração na tela de backup com detalhes da tabela de backup.\]](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/restore_table.png)

   A tabela que está sendo restaurada é mostrada com o status **Creating (Em criação)**. Quando o processo de restauração for concluído, o status da tabela `Music` mudará para **Active (Ativo)**.

## Restaurar uma tabela de um backup (AWS CLI)
<a name="restoretable_cli"></a>

Siga estas etapas para usar a AWS CLI para restaurar a tabela `Music` usando o `MusicBackup` que é criado no tutorial [Fazer backup de uma tabela do DynamoDB](Backup.Tutorial.md).

**Para restaurar uma tabela de um backup**

1. Confirme o backup que você deseja restaurar usando o comando `list-backups`. Este exemplo usa `MusicBackup`.

   ```
   aws dynamodb list-backups
   ```

   Para obter outros detalhes sobre o backup, use o comando `describe-backup`. É possível obter a entrada `backup-arn` da etapa anterior:

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

1. Restaure a tabela por meio do backup. Nesse caso, o `MusicBackup` restaura a tabela `Music` para a mesma região da 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. Restaure a tabela do backup com configurações de tabela personalizadas. Nesse caso, o `MusicBackup` restaura a tabela `Music` e especifica um modo de criptografia para a tabela restaurada.
**nota**  
O parâmetro `sse-specification-override` assume os mesmos valores do parâmetro `sse-specification-override` usado no comando `CreateTable`. Para saber mais, consulte [Gerenciar tabelas criptografadas no 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
   ```

   Você pode restaurar a tabela para outra região da AWS diferente daquela na qual o backup reside.
**nota**  
O parâmetro `sse-specification-override` é obrigatório para restaurações entre regiões, mas opcional para restaurações na mesma região da tabela de origem.
Ao realizar uma restauração entre regiões na linha de comando, você deve definir a região padrão da AWS como a região de destino desejada. Para saber mais, consulte [Opções de linha de comando](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html) no *Guia do usuário do AWS Command Line Interface*.

   ```
   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
   ```

   Você pode substituir o modo de faturamento e o throughput provisionado para a tabela restaurada.

   ```
   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
   ```

   Você pode excluir a criação de alguns ou todos os índices secundários na tabela restaurada.
**nota**  
As restaurações poderão ser mais rápidas e econômicas se você excluir a criação de alguns ou todos os índices secundários na tabela restaurada.

   ```
   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
   ```
**nota**  
Os índices secundários fornecidos devem corresponder a índices existentes correspondentes. Você não pode criar novos índices no momento da restauração.

   Você pode usar uma combinação de diferentes substituições. Por exemplo, você pode usar um único índice secundário global e alterar o throughput provisionado ao mesmo tempo, da seguinte forma.

   ```
   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
   ```

 Para verificar a restauração, use o comando `describe-table` para descrever a tabela `Music`.

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

A tabela que está sendo restaurada do backup é mostrada com o status **Creating (Em criação)**. Quando o processo de restauração for concluído, o status da tabela `Music` mudará para **Active (Ativo)**.

**Importante**  
Enquanto a restauração estiver em andamento, não modifique nem exclua a política de função do IAM. Caso contrário, poderá haver um comportamento inesperado. Por exemplo, suponha que você tenha removido as permissões de gravação para uma tabela enquanto essa tabela estava sendo restaurada. Nesse caso, a operação `RestoreTableFromBackup` subjacente não conseguiria gravar na tabela nenhum dos dados restaurados.  
Assim que a operação de restauração estiver concluída, você poderá modificar ou excluir a política de função do IAM.  
Políticas do IAM envolvendo [restrições de IP de origem](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip) para acessar a tabela de restauração de destino devem ter a chave [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) definida como `false` para garantir que as restrições se apliquem apenas a solicitações feitas diretamente por um responsável principal. Caso contrário, a restauração será cancelada.  
Se o backup for criptografado com uma Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente, não desabilite nem exclua a chave enquanto a restauração estiver em andamento. Caso contrário, ocorrerá falha.  
Depois que a operação de restauração for concluída, você poderá alterar a chave de criptografia da tabela restaurada e desabilitar ou excluir a chave antiga.

# Excluir um backup de tabela do DynamoDB
<a name="Delete.Tutorial"></a>

Esta seção descreve como usar o Console de gerenciamento da AWS ou a AWS Command Line Interface (AWS CLI) para excluir um backup de tabela do Amazon DynamoDB. 

**nota**  
Se desejar usar a AWS CLI, você precisará configurá-la primeiro. Para obter mais informações, consulte [Como usar o AWS CLI](AccessingDynamoDB.md#Tools.CLI).

**Topics**

## Excluir o backup de uma tabela (console)
<a name="deletebackup_console"></a>

O procedimento a seguir mostra como usar o console para excluir o `MusicBackup` que é criado no tutorial [Fazer backup de uma tabela do DynamoDB](Backup.Tutorial.md).

**Para excluir um backup**

1. Faça login no Console de gerenciamento da AWS e abra o console do DynamoDB em [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. No painel de navegação, no lado esquerdo do console, selecione **Backups**.

1. Na lista de backups, escolha `MusicBackup`.  
![\[Captura de tela mostrando o MusicBackup com status disponível.\]](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. Escolha **Excluir**. Confirme que você deseja excluir o backup digitando **delete** e clicando em **Delete (Excluir)**.

## Excluir um backup da tabela (AWS CLI)
<a name="deletebackup_cli"></a>

O exemplo a seguir exclui o backup de uma tabela existente `Music` usando a AWS CLI.

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

# Usar o IAM com backup e restauração do DynamoDB
<a name="backuprestore_IAM"></a>

Você pode usar o AWS Identity and Access Management (IAM) para restringir as ações de backup e restauração do Amazon DynamoDB a alguns recursos. As APIs `CreateBackup` e `RestoreTableFromBackup` operam por tabela.

 Para obter mais informações sobre como usar as políticas do IAM no DynamoDB, consulte [Políticas baseadas em identidade para o DynamoDB](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies). 

Veja a seguir exemplos de políticas do IAM que você pode usar para configurar funcionalidades específicas de backup e restauração no DynamoDB.

## Exemplo 1: permitir ações CreateBackup e RestoreTableFromBackup
<a name="access-policy-example1"></a>

Esta política do IAM concede permissões para execução das ações `CreateBackup` e `RestoreTableFromBackup` do DynamoDB em todas as tabelas:

------
#### [ 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": "*"
        }
    ]
}
```

------

**Importante**  
 As permissões RestoreTableFromBackup do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.  
 As permissões RestoreTableToPointInTime do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração. 

## Exemplo 2: permitir CreateBackup e negar RestoreTableFromBackup
<a name="access-policy-example2"></a>

Esta política do IAM concede permissões para a ação `CreateBackup` e nega a ação `RestoreTableFromBackup`:

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

****  

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

------

## Exemplo 3: permitir ListBackups e negar CreateBackup e RestoreTableFromBackup
<a name="access-policy-example3"></a>

Esta política do IAM concede permissões para a ação `ListBackups` e recusa as ações `CreateBackup` e `RestoreTableFromBackup`:

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

****  

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

------

## Exemplo 4: permitir ListBackups e negar DeleteBackup
<a name="access-policy-example4"></a>

Esta política do IAM concede permissões para a ação `ListBackups` e nega a ação `DeleteBackup`:

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

****  

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

------

## Exemplo 5: permitir RestoreTableFromBackup e DescribeBackup para todos os recursos e recusar DeleteBackup para um backup específico
<a name="access-policy-example5"></a>

Esta política do IAM concede permissões para as ações `RestoreTableFromBackup` e `DescribeBackup` e nega a ação `DeleteBackup` para um recurso de backup específico:

------
#### [ 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"
        }
    ]
}
```

------

**Importante**  
 As permissões RestoreTableFromBackup do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.  
 As permissões RestoreTableToPointInTime do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração. 

## Exemplo 6: permitir CreateBackup para uma tabela específica
<a name="access-policy-example6"></a>

Esta política do IAM concede permissões para a ação `CreateBackup` somente na tabela `Movies`:

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

****  

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

------

## Exemplo 7: permitir ListBackups
<a name="access-policy-example7"></a>

Esta política do IAM concede permissões para a ação `ListBackups`:

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

****  

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

------

**Importante**  
 Não é possível conceder permissões para a ação `ListBackups` em uma tabela específica. 

## Exemplo 8: permitir acesso a características do AWS Backup
<a name="access-policy-example8"></a>

Você precisará de permissões de API para a ação `StartAwsBackupJob` para obter um backup bem-sucedido com recursos avançados, e a ação `dynamodb:RestoreTableFromAwsBackup` para restaurar esse backup com êxito.

A seguinte política do IAM concede ao AWS Backup as permissões para acionar backups com recursos avançados e restaurações. Observe também que, se as tabelas forem criptografadas, a política precisará de acesso à [chave do KMS da AWS](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": "*"
        }
    ]
}
```

------

## Exemplo 9: negar RestoreTableToPointInTime para uma tabela de origem específica
<a name="access-policy-example9"></a>

A seguinte política do IAM nega permissões para a ação `RestoreTableToPointInTime` a uma tabela de origem específica: 

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

****  

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

------

## Exemplo 10: negar RestoreTableFromBackup para uma tabela de origem específica
<a name="access-policy-example10"></a>

A seguinte política do IAM nega permissões para a ação `RestoreTableToPointInTime` a todos os backups de uma tabela de origem específica: 

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

****  

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

------