

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Utilice point-in-time la recuperación en Amazon Keyspaces
<a name="PointInTimeRecovery_Tutorial"></a>

Con Amazon Keyspaces (para Apache Cassandra), puede restaurar tablas a un punto específico en el tiempo mediante Point-in-Time Restore (PITR). La PITR le permite restaurar una tabla a un estado anterior de los últimos 35 días, lo que proporciona capacidades de protección y recuperación de datos. Esta característica resulta útil en casos como la eliminación accidental de datos, los errores de aplicación o la realización de pruebas. Puede recuperar los datos de forma rápida y eficiente, lo que minimiza el tiempo de inactividad y la pérdida de datos. En las siguientes secciones le guiamos a lo largo del proceso de restauración de tablas con la PITR en Amazon Keyspaces para garantizar la integridad de los datos y la continuidad empresarial. 

**Topics**
+ [Configuración de los permisos de IAM para la restauración de tablas con la PITR de Amazon Keyspaces](howitworks_restore_permissions.md)
+ [Configuración de la PITR para una tabla en Amazon Keyspaces](configure_PITR.md)
+ [Desactivación de la PITR para una tabla de Amazon Keyspaces](disable_PITR.md)
+ [Restauración de una tabla desde una copia de seguridad en un momento dado en Amazon Keyspaces](restoretabletopointintime.md)
+ [Restauración de una tabla eliminada con la PITR de Amazon Keyspaces](restoredeleted.md)

# Configuración de los permisos de IAM para la restauración de tablas con la PITR de Amazon Keyspaces
<a name="howitworks_restore_permissions"></a>

En esta sección se resume cómo configurar los permisos para que una entidad principal AWS Identity and Access Management (IAM) restaure las tablas de Amazon Keyspaces. En IAM, la política administrada `AmazonKeyspacesFullAccess` de AWS incluye los permisos para restaurar tablas de Amazon Keyspaces. Para implementar una política personalizada con los permisos mínimos requeridos, tenga en cuenta los requisitos que se describen en la siguiente sección.

Para restaurar correctamente una tabla, la entidad principal de IAM necesita los siguientes permisos mínimos:
+ `cassandra:Restore`: la acción restaurar es necesaria para restaurar la tabla de destino.
+ `cassandra:Select`: la acción seleccionar es necesaria para leer desde la tabla de origen.
+ `cassandra:TagResource`: la acción etiquetar es opcional y solo se requiere si la operación de restauración añade etiquetas.

Este es un ejemplo de una política que concede los permisos mínimos necesarios a un usuario para restaurar tablas en el espacio de claves `mykeyspace`.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "cassandra:Restore",
            "cassandra:Select"
         ],
         "Resource":[
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/*",
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
         ]
      }
   ]
}
```

Es posible que se requieran permisos adicionales para restaurar una tabla en función de otras características seleccionadas. Por ejemplo, si la tabla de origen está cifrada en reposo con una clave administrada por el cliente, Amazon Keyspaces debe tener permisos para acceder a la clave administrada por el cliente de la tabla de origen a fin de restaurar correctamente la tabla. Para obtener más información, consulte [Restauración de tablas cifradas con PITR](PointInTimeRecovery_HowItWorks.md#howitworks_backup_encryption). 

Si utiliza políticas de IAM con [claves de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) para restringir el tráfico entrante a orígenes específicos, debe asegurarse de que Amazon Keyspaces tenga permiso para realizar una operación de restauración en nombre de su entidad principal. Debe añadir una clave de condición `aws:ViaAWSService` a su política de IAM si su política restringe el tráfico entrante a cualquiera de los siguientes:
+ Puntos de conexión de VPC con `aws:SourceVpce`
+ Rangos IP con `aws:SourceIp`
+ VPCs con `aws:SourceVpc`

La clave de condición `aws:ViaAWSService` permite el acceso cuando cualquier servicio de AWS realiza una solicitud empleando las credenciales de la entidad principal. Para obtener más información, consulte [Elementos JSON de la política de IAM: Clave de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*. 

A continuación se muestra un ejemplo de política que restringe el tráfico de origen a una dirección IP específica y permite a Amazon Keyspaces restaurar una tabla en nombre de la entidad principal.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CassandraAccessForCustomIp",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"false"
            },
            "ForAnyValue:IpAddress":{
               "aws:SourceIp":[
                  "123.45.167.89"
               ]
            }
         }
      },
      {
         "Sid":"CassandraAccessForAwsService",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"true"
            }
         }
      }
   ]
}
```

 Para ver un ejemplo de política que utilice la clave de condición global de `aws:ViaAWSService`, consulte [Políticas de puntos de conexión de VPC y recuperación de Amazon Keyspaces point-in-time (PITR)](vpc-endpoints.md#VPC_PITR_restore).

# Configuración de la PITR para una tabla en Amazon Keyspaces
<a name="configure_PITR"></a>

Puede configurar una tabla en Amazon Keyspaces para las operaciones de copia de seguridad y restauración mediante la PITR con la consola, CQL y la AWS CLI.

Al crear una tabla nueva con CQL o el AWS CLI, debe habilitar explícitamente el PITR en la instrucción de creación de tabla. Al crear una tabla nueva con la consola, la PITR estará habilitada de forma predeterminada.

Para obtener información sobre cómo restaurar una tabla, consulte [Restauración de una tabla desde una copia de seguridad en un momento dado en Amazon Keyspaces](restoretabletopointintime.md).

------
#### [ Console ]

**Configuración de la PITR para una tabla con la consola**

1. [Inicia sesión en la Consola de administración de AWS consola de Amazon Keyspaces y ábrela desde casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. En el panel de navegación, elija **Tablas** y seleccione la tabla que desee editar.

1. En la pestaña **Copias de seguridad**, elija **Editar**.

1. En la sección **Editar la configuración de point-in-time recuperación**, selecciona **Habilitar la Point-in-time recuperación**.

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ Cassandra Query Language (CQL) ]

**Configuración de la PITR para una tabla con CQL**

1. Puede administrar la configuración de PITR para las tablas mediante la propiedad personalizada `point_in_time_recovery`.

   Para habilitar la PITR en el momento de crear una nueva tabla, debe configurar el estado de `point_in_time_recovery` como `enabled`. Puede usar el siguiente comando CQL como ejemplo.

   ```
   CREATE TABLE "my_keyspace1"."my_table1"(
   	"id" int,
   	"name" ascii,
   	"date" timestamp,
   	PRIMARY KEY("id"))
   WITH CUSTOM_PROPERTIES = {
   	'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 
   	'point_in_time_recovery':{'status':'enabled'}
   }
   ```
**nota**  
Si no se especifica ninguna point-in-time propiedad personalizada de point-in-time recuperación, la recuperación está deshabilitada de forma predeterminada.

1. Para habilitar PITR en una tabla existente mediante CQL, ejecute el siguiente comando CQL.

   ```
   ALTER TABLE mykeyspace.mytable
   WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}
   ```

------
#### [ CLI ]

**Configure el PITR para una tabla mediante el AWS CLI**

1. Puede administrar la configuración de PITR para las tablas con la API `UpdateTable`.

   Para habilitar la PITR en el momento de crear una nueva tabla, debe incluir `point-in-time-recovery 'status=ENABLED'` en el comando de creación de la tabla. Puede usar el siguiente comando de la AWS CLI como ejemplo. El comando se ha dividido en líneas separadas para mejorar la legibilidad.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```
**nota**  
Si no se especifica ningún valor de point-in-time recuperación, la point-in-time recuperación está deshabilitada de forma predeterminada.

1. Para confirmar la configuración de point-in-time recuperación de una tabla, puede usar el siguiente AWS CLI comando.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. Para habilitar el PITR en una tabla existente mediante el AWS CLI, ejecute el siguiente comando.

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=ENABLED'
   ```

------

# Desactivación de la PITR para una tabla de Amazon Keyspaces
<a name="disable_PITR"></a>

Puede desactivar la PITR para una tabla de Amazon Keyspaces en cualquier momento mediante la consola, CQL o la AWS CLI. 

**importante**  
Al deshabilitar la PITR se elimina de inmediato el historial de copias de seguridad, sin importar si vuelve a habilitar la PITR en la tabla en un plazo de 35 días.

Para obtener información sobre cómo restaurar una tabla, consulte [Restauración de una tabla desde una copia de seguridad en un momento dado en Amazon Keyspaces](restoretabletopointintime.md).

------
#### [ Console ]

**Desactivación de la PITR para una tabla con la consola**

1. [Inicia sesión en la Consola de administración de AWS consola de Amazon Keyspaces y ábrela desde casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. En el panel de navegación, elija **Tablas** y seleccione la tabla que desee editar.

1. En la pestaña **Copias de seguridad**, elija **Editar**.

1. En la sección **Editar la configuración de point-in-time recuperación**, desactive la casilla **Habilitar la Point-in-time recuperación**.

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ Cassandra Query Language (CQL) ]

**Desactivación de la PITR para una tabla con CQL**
+ Para deshabilitar la PITR para una tabla existente, ejecute el siguiente comando CQL.

  ```
  ALTER TABLE mykeyspace.mytable
  WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
  ```

------
#### [ CLI ]

**Deshabilite el PITR para una tabla mediante el AWS CLI**
+ Para deshabilitar la PITR en una tabla existente, ejecute el siguiente AWS CLI comando.

  ```
  aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=DISABLED'
  ```

------

# Restauración de una tabla desde una copia de seguridad en un momento dado en Amazon Keyspaces
<a name="restoretabletopointintime"></a>

En la siguiente sección se muestra cómo restaurar una tabla existente de Amazon Keyspaces en un momento dado especificado. 

**nota**  
En este procedimiento se presupone que la tabla que está utilizando se ha configurado con recuperación. point-in-time Para habilitar la PITR en una tabla, consulte [Configuración de la PITR para una tabla en Amazon Keyspaces](configure_PITR.md). 

**importante**  
 Mientras se esté realizando una restauración, no modifique ni elimine las políticas AWS Identity and Access Management (de IAM) que otorgan permiso al principal de IAM (por ejemplo, al usuario, grupo o rol) para realizar la restauración. De lo contrario, puede ocurrir un comportamiento inesperado. Por ejemplo, si se quitan los permisos de escritura de una tabla mientras se restaura, la operación `RestoreTableToPointInTime` subyacente no puede escribir ninguno de los datos restaurados en la tabla.   
Puede modificar o eliminar los permisos solo después de que finalice la operación de restauración.

------
#### [ Console ]

**Restauración de una tabla en un momento dado mediante la consola**

1. [Inicia sesión en la Consola de administración de AWS consola de Amazon Keyspaces y ábrela desde casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. En el panel de navegación del lado izquierdo de la consola, elija **Tablas**.

1. En la lista de tablas, elija la tabla que quiera restaurar. 

1. En la pestaña **Copias** de seguridad de la tabla, en la sección **Point-in-time de recuperación**, selecciona **Restaurar**.

1. Para el nombre de la nueva tabla, escriba un nombre para la tabla restaurada, por ejemplo, **mytable\$1restored**. 

1. Para definir el momento dado para la operación de restauración, puede elegir entre dos opciones:
   + Seleccione la hora **Más antigua** preconfigurada.
   + Seleccione **Especificar fecha y hora** e introduzca la fecha y hora a la que desea restaurar la nueva tabla.
**nota**  
Puede restaurar a cualquier momento dado entre la hora **Más antigua** y la hora actual. Amazon Keyspaces restaura los datos de su tabla al estado basado en la fecha y hora seleccionadas (day:hour:minute:second). 

1. Elija **Restaurar** para iniciar el proceso de restauración. 

   La tabla que se va a restaurar se muestra con el estado **Restaurando**. Una vez finalizado el proceso de restauración, el estado de la tabla restaurada cambia a **Activa**.

------
#### [ Cassandra Query Language (CQL) ]

**Restauración de una tabla en un momento dado con CQL**

1. Puede restaurar una tabla activa a una hora point-in-time intermedia `earliest_restorable_timestamp` y la hora actual. El valor predeterminado es la hora actual.

   Para confirmar que point-in-time la recuperación de la tabla está habilitada, consulte la tabla tal y `system_schema_mcs.tables` como se muestra en este ejemplo.

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
   ```

   Point-in-time la recuperación está habilitada, como se muestra en el siguiente ejemplo de salida. 

   ```
   custom_properties
   -----------------
   {
     ...,
       "point_in_time_recovery": {
       "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z"
       "status":"enabled"
     }
   }
   ```

1. 
   + Restaure la tabla a la hora actual. Si se omite la cláusula `WITH restore_timestamp = ...`, se utiliza la marca de tiempo actual. 

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable;
     ```
   + También puede restaurar a un punto específico en el tiempo, definido por una `restore_timestamp` en formato ISO 8601. Puede especificar cualquier momento de los últimos 35 días. Por ejemplo, el siguiente comando restaura la tabla al a fecha y hora del valor `EarliestRestorableDateTime`. 

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable
     WITH restore_timestamp = '2020-06-30T19:19:21.175Z';
     ```

     Para obtener una descripción completa de la sintaxis, consulte [RESTORE TABLE](cql.ddl.table.md#cql.ddl.table.restore) en la referencia del lenguaje.

1. Para comprobar que la restauración de la tabla se haya realizado correctamente, consulte `system_schema_mcs.tables` para confirmar el estado de la tabla.

   ```
   SELECT status
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'
   ```

   La consulta muestra la siguiente salida.

   ```
   status
   ------
   RESTORING
   ```

   La tabla que se va a restaurar se muestra con el estado **Restaurando**. Una vez finalizado el proceso de restauración, el estado de la tabla cambia a **Activa**.

------
#### [ CLI ]

**Restaure una tabla a un punto en el tiempo mediante el AWS CLI**

1. Cree una tabla sencilla llamada `myTable` con la PITR habilitada. El comando se ha dividido en líneas separadas para mejorar la legibilidad.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```

1. Confirme las propiedades de la nueva tabla y revise la `earliestRestorableTimestamp` de la PITR.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   Este comando devuelve la siguiente salida.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2022-06-20T14:34:57.049000-07:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "ENABLED",
           "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       }
   }
   ```

1. 
   + Para restaurar una tabla en un momento dado, especifique una `restore_timestamp` en formato ISO 8601. Puede elegir cualquier momento dado durante los últimos 35 días en intervalos de un segundo. Por ejemplo, el siguiente comando restaura la tabla al a fecha y hora del valor `EarliestRestorableDateTime`. 

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"
     ```

     La salida de este comando devuelve el ARN de la tabla restaurada.

     ```
     {
         "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored"
     }
     ```
   + Para restaurar la tabla a la hora actual, puede omitir el parámetro `restore-timestamp`.

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
     ```

------

# Restauración de una tabla eliminada con la PITR de Amazon Keyspaces
<a name="restoredeleted"></a>

En el siguiente procedimiento se muestra cómo restaurar una tabla eliminada desde una copia de seguridad al momento de su eliminación. Puede hacerlo mediante CQL o el. AWS CLI

**nota**  
En este procedimiento se asume que la PITR estaba habilitado en la tabla eliminada.



------
#### [ Cassandra Query Language (CQL) ]

**Restauración de una tabla eliminada con CQL**

1. Para confirmar que point-in-time la recuperación está habilitada para una tabla eliminada, consulte la tabla del sistema. Solo se muestran las tablas con point-in-time la recuperación habilitada.

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables_history 
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table';
   ```

   La consulta muestra la siguiente salida.

   ```
   custom_properties
   ------------------
   {
       ...,
      "point_in_time_recovery":{
         "restorable_until_time":"2020-08-04T00:48:58.381Z",
         "status":"enabled"
      }
   }
   ```

1. Restaure la tabla al momento de su eliminación con el siguiente ejemplo de comando.

   ```
   RESTORE TABLE mykeyspace.mytable_restored
   FROM TABLE mykeyspace.mytable;
   ```

------
#### [ CLI ]

**Restaure una tabla eliminada mediante AWS CLI**

1. Elimine una tabla que haya creado anteriormente y que tenga la PITR habilitada. El siguiente comando es un ejemplo.

   ```
   aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. Restaure la tabla eliminada al momento de su eliminación con el siguiente comando.

   ```
   aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'
   ```

   La salida de este comando devuelve el ARN de la tabla restaurada.

   ```
   {
       "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored2"
   }
   ```

------