

# Uso de IAM con las funcionalidades de copia de seguridad y restauración de DynamoDB
<a name="backuprestore_IAM"></a>

Puede utilizar AWS Identity and Access Management (IAM) para restringir las acciones de backup y restauración de Amazon DynamoDB para algunos recursos. Las API `CreateBackup` y `RestoreTableFromBackup` operan para cada tabla.

 Para obtener más información sobre el uso de políticas de IAM en DynamoDB, consulte [Políticas basadas en identidad de DynamoDB](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies). 

A continuación, se proporcionan ejemplos de políticas de IAM que puede utilizar para configurar funcionalidades de backup y restauración específicas en DynamoDB.

## Ejemplo 1: permitir las acciones CreateBackup y RestoreTableFromBackup
<a name="access-policy-example1"></a>

La política de IAM siguiente concede permisos para permitir las acciones `CreateBackup` y `RestoreTableFromBackup` de DynamoDB en todas las tablas:

------
#### [ 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**  
 Los permisos RestoreTableFromBackup de DynamoDB son necesarios en la copia de seguridad de origen, y los permisos de lectura y escritura de DynamoDB en la tabla de destino son necesarios para la funcionalidad de restauración.  
 Los permisos RestoreTableToPointInTime de DynamoDB son necesarios en la tabla de origen, y los permisos de lectura y escritura de DynamoDB en la tabla de destino son necesarios para la funcionalidad de restauración. 

## Ejemplo 2: permitir la acción CreateBackup y denegar la acción RestoreTableFromBackup
<a name="access-policy-example2"></a>

La política de IAM siguiente concede permisos para la acción `CreateBackup` y deniega la acción `RestoreTableFromBackup`:

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

****  

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

------

## Ejemplo 3: permitir la acción ListBackups y denegar las acciones CreateBackup y RestoreTableFromBackup
<a name="access-policy-example3"></a>

La política de IAM siguiente concede permisos para la acción `ListBackups` y deniega las acciones `CreateBackup` y `RestoreTableFromBackup`:

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

****  

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

------

## Ejemplo 4: permitir la acción ListBackups y denegar la acción DeleteBackup
<a name="access-policy-example4"></a>

La política de IAM siguiente concede permisos para la acción `ListBackups` y deniega la acción `DeleteBackup`:

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

****  

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

------

## Ejemplo 5: permitir las acciones RestoreTableFromBackup y DescribeBackup para todos los recursos y denegar la acción DeleteBackup para una copia de seguridad concreta
<a name="access-policy-example5"></a>

La siguiente política de IAM concede permisos para las acciones `RestoreTableFromBackup` y `DescribeBackup` y deniega la acción `DeleteBackup` para un recurso de backup concreto:

------
#### [ 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**  
 Los permisos RestoreTableFromBackup de DynamoDB son necesarios en la copia de seguridad de origen, y los permisos de lectura y escritura de DynamoDB en la tabla de destino son necesarios para la funcionalidad de restauración.  
 Los permisos RestoreTableToPointInTime de DynamoDB son necesarios en la tabla de origen, y los permisos de lectura y escritura de DynamoDB en la tabla de destino son necesarios para la funcionalidad de restauración. 

## Ejemplo 6: permitir la acción CreateBackup para una tabla concreta
<a name="access-policy-example6"></a>

La siguiente política de IAM concede permisos para la acción `CreateBackup` únicamente en la tabla `Movies`:

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

****  

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

------

## Ejemplo 7: Permitir la acción ListBackups
<a name="access-policy-example7"></a>

La siguiente política de IAM concede permisos para la acción `ListBackups`:

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

****  

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

------

**importante**  
 No puede conceder permisos para la acción `ListBackups` en una tabla concreta. 

## Ejemplo 8: permitir el acceso a las características de AWS Backup
<a name="access-policy-example8"></a>

Necesitará permisos de API para la acción `StartAwsBackupJob` para realizar correctamente una copia de seguridad con características avanzadas y la acción `dynamodb:RestoreTableFromAwsBackup` para restaurar correctamente esa copia de seguridad.

Las siguiente política de IAM concede a AWS Backup los permisos para activar copias de seguridad con características avanzadas y restauraciones. Tenga en cuenta también que si las tablas están cifradas, la política necesitará acceso a la [clave de 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": "*"
        }
    ]
}
```

------

## Ejemplo 9: Denegar RestoreTableToPointInTime para una tabla de origen específica
<a name="access-policy-example9"></a>

La siguiente política de IAM deniega los permisos para la acción `RestoreTableToPointInTime` para una tabla de origen específica: 

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

****  

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

------

## Ejemplo 10: Denegar RestoreTableFromBackup para una tabla de origen específica
<a name="access-policy-example10"></a>

La siguiente política de IAM deniega permisos para la acción `RestoreTableToPointInTime` de todas las copias de seguridad correspondiente a una tabla de origen específica: 

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

****  

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

------