Configuración de la replicación de tablas de S3
Puede configurar la replicación para crear automáticamente réplicas de tablas desde una tabla de origen hasta cinco buckets de tablas de destino. La replicación se puede configurar por grupo (se aplica a todas las tablas del bucket) o por tabla (para tablas específicas). En este tema, se explica cómo configurar la replicación mediante la consola de Amazon S3 o la interfaz de la línea de comandos de AWS (AWS CLI).
Para obtener más información sobre la configuración de la replicación, consulte los siguientes temas.
Temas
Requisitos previos para configurar la replicación
Antes de configurar la replicación, asegúrese de tener lo siguiente:
Recursos necesarios de
-
Bucket de tablas de origen: el bucket de tablas que contiene las tablas que desea replicar
-
Buckets de tabla de destino: uno o más buckets de tabla en los que desea replicar las tablas (hasta 5 buckets de tablas de destino)
-
Tablas de origen: tablas existentes en el bucket de tablas de origen para replicarlas
-
Roles de IAM: un rol de IAM que otorga permisos de Amazon S3 para replicar tablas en su nombre
Permisos necesarios
La identidad de IAM que utilice para configurar la replicación debe tener los siguientes permisos:
Para la replicación por bucket:
-
s3tables:PutTableBucketReplicationen el bucket de la tabla de origen -
s3tables:GetTableBucketReplicationen el bucket de la tabla de origen -
iam:PassRolepara el rol de IAM de replicación
Para la replicación por tabla:
-
s3tables:PutTableReplicationen la tabla de origen -
s3tables:GetTableReplicationen la tabla de origen -
iam:PassRolepara el rol de IAM de replicación
Para la replicación entre cuentas:
-
Permisos de la política de bucket de la cuenta de destino
Requisitos adicionales para la replicación entre cuentas
Si los buckets de las tablas de origen y destino están en cuentas de AWS diferentes, también necesitará:
-
Una política de bucket en el bucket de la tabla de destino que conceda a la cuenta de origen permisos para replicar las tablas
-
El ID de cuenta de destino y el nombre de recurso de Amazon (ARN) del bucket de tabla
Requisitos adicionales para las tablas cifradas
Si desea cifrar las réplicas de tablas con AWS KMS:
-
Una clave de KMS en la región de destino
-
Permisos para utilizar la clave de KMS en el rol de replicación de IAM
-
Una política de claves de KMS que permite al rol de replicación cifrar datos
Descripción de configuraciones de replicación
Una configuración de replicación define la forma en que Amazon S3 replica las tablas del bucket de tablas de origen. La replicación se puede configurar de dos formas:
Replicación por bucket
Una configuración de replicación por bucket se aplica a todas las tablas del bucket de la tabla de origen. Al configurar la replicación por bucket, Amazon S3 replica automáticamente todas las tablas existentes y las tablas nuevas que se creen en el bucket.
Use la replicación por bucket si:
-
Desea replicar todas las tablas de un bucket
-
Desea un comportamiento de replicación coherente en todas las tablas
-
Desea simplificar la administración mediante una configuración única
Replicación por tabla
Una configuración de replicación por tabla se aplica a una tabla específica. Las configuraciones por tabla invalidan las configuraciones por bucket para esa tabla específica.
Utilice la replicación por tabla si:
-
Desea replicar solo tablas específicas
-
Necesita diferentes destinos de replicación para diferentes tablas
-
Desea invalidar una configuración por bucket para determinadas tablas
Elementos de configuración de la replicación
Cada configuración de replicación contiene:
-
Rol de IAM: el rol que asume Amazon S3 para realizar las operaciones de replicación
-
Reglas: una o más reglas de replicación (limitadas a una regla en el momento del lanzamiento). Cada regla contiene:
-
Destinos: lista de los ARN del bucket de la tabla de destinos (hasta 5 destinos)
-
Estado: si la regla está habilitada o desactivada
-
-
Token de versión: un token que se utiliza para evitar conflictos de escritura al actualizar las configuraciones
Elección entre replicación por bucket y por tabla
Prioridad de configuración
Cuando existen configuraciones por bucket y por tabla:
-
La configuración por tabla tiene prioridad para esa tabla específica.
-
Otras tablas siguen la configuración por bucket.
Configuración de la replicación mediante la consola de Amazon S3
Este procedimiento muestra cómo configurar la replicación mediante la consola de Amazon S3.
Este procedimiento muestra cómo crear una configuración de replicación de bucket de tabla mediante la consola de Amazon S3. Una configuración de replicación de bucket de tabla se aplica a todas las tablas del bucket de la tabla de origen.
-
Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación, elija Buckets de tablas.
-
En la lista Buckets de tablas, elija el nombre del bucket de tabla para el que desea configurar la replicación.
-
Seleccione la pestaña Administración.
-
En la sección Configuración de replicación del bucket de tablas, elija Crear configuración de replicación del bucket de tablas.
-
En la sección Destino, configure los destinos de replicación:
-
En el campo ARN del bucket de tabla, ingrese el ARN del bucket de tabla de destino. El formato de es:
arn:aws:s3tables:region:account-id:bucket/table-bucket-nameComo opción alternativa, elija Examinar S3 para seleccionar un bucket de tablas de la cuenta.
-
(Opcional) Para agregar destinos adicionales, elija Agregar destino. Puede agregar hasta 4 buckets de tablas más para un total de 5 destinos.
-
-
En la sección Rol de IAM, configure el rol de replicación:
-
Para Método de selección de rol de IAM, elija una de las opciones siguientes:
-
Crear un nuevo rol de IAM: Amazon S3 crea un nuevo rol con los permisos necesarios para la replicación.
-
Elegir entre los roles de IAM existentes: seleccione un rol existente que tenga los permisos de replicación necesarios.
-
Ingresar el ARN del rol de IAM: ingrese manualmente el ARN de un rol de IAM existente.
-
-
Si eligió Elegir de los roles de IAM existentes, seleccione un rol de la lista desplegable de Rol de IAM.
-
(Opcional) Elija Ver para revisar los permisos del rol seleccionado en la consola de IAM.
-
-
Elija Crear configuración de replicación.
Tras crear la configuración de replicación, Amazon S3 comienza el proceso de relleno inicial. Puede supervisar el estado de la replicación en la sección Estado de replicación de la tabla, que muestra información sobre cada destino, incluido el estado de la replicación, el ARN de la tabla de destino y los últimos metadatos replicados.
Este procedimiento muestra cómo crear una configuración de replicación por tabla mediante la consola de Amazon S3. Una configuración de replicación de tablas se aplica a una tabla específica e invalida cualquier configuración de replicación por bucket de esa tabla.
-
Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación, elija Buckets de tablas.
-
En la lista Buckets de tablas, elija el nombre del bucket de tablas que contiene la tabla que desea replicar.
-
Seleccione la pestaña Tablas.
-
En la lista Tablas, elija el nombre de la tabla que desea replicar.
-
Seleccione la pestaña Administración.
-
En la sección Configuración de replicación de tablas, elija Crear configuración de replicación de tablas.
-
En la sección Destino, configure los destinos de replicación:
-
En el campo ARN del bucket de tabla, ingrese el ARN del bucket de tabla de destino. El formato de es:
arn:aws:s3tables:region:account-id:bucket/table-bucket-nameComo opción alternativa, elija Examinar S3 para seleccionar un bucket de tablas de la cuenta.
-
(Opcional) Para agregar destinos adicionales, elija Agregar destino. Puede agregar hasta 4 buckets de tablas más para un total de 5 destinos.
-
-
En la sección Rol de IAM, configure el rol de replicación:
-
Para Método de selección de rol de IAM, elija una de las opciones siguientes:
-
Crear un nuevo rol de IAM: Amazon S3 crea un nuevo rol con los permisos necesarios para la replicación.
-
Elegir entre los roles de IAM existentes: seleccione un rol existente que tenga los permisos de replicación necesarios.
-
Ingresar el ARN del rol de IAM: ingrese manualmente el ARN de un rol de IAM existente.
-
-
Si eligió Elegir de los roles de IAM existentes, seleccione un rol de la lista de Rol de IAM.
-
(Opcional) Elija Ver para revisar los permisos del rol seleccionado en la consola de IAM.
-
-
Elija Crear configuración de replicación.
¿Qué ocurre a continuación?
Después de crear la configuración de replicación:
-
Amazon S3 comienza el proceso de relleno inicial y crea réplicas de tablas en cada bucket de destino
-
El estado de la replicación cambia a Replicación una vez que se inicia el relleno
-
Puede supervisar el progreso de la replicación en la pestaña Administración
-
El tiempo de replicación inicial depende del tamaño de la tabla de origen
Configuración de la replicación mediante la AWS CLI
Este procedimiento muestra cómo configurar la replicación mediante la AWS CLI. Sustituya los ID de cuenta, las regiones y los nombres de los buckets por los valores reales. Agregue todos los buckets de destino a los permisos.
Paso 1: creación de un rol de IAM para replicación
En primer lugar, cree una rol de IAM que Amazon S3 pueda asumir para replicar las tablas.
-
Cree un documento de política de confianza que permita a tablas de S3 asumir el rol. Guarde esto como
trust-policy.json:{ "Version": "2012-10-17" "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.s3tables.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Cree el rol de IAM:
aws iam create-role \ --role-nameS3TablesReplicationRole\ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication" -
Cree una política de permisos que conceda permisos de replicación. Guarde esto como
replication-permissions.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableData" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source/table/*" }, { "Effect": "Allow", "Action": [ "s3tables:ListTables" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source" }, { "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination" }, { "Effect": "Allow", "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination/table/*" } ] } -
Asocie la política de permisos al rol:
aws iam put-role-policy \ --role-nameS3TablesReplicationRole\ --policy-nameS3TablesReplicationPermissions\ --policy-document file://replication-permissions.json -
(Opcional) Si usa el cifrado de KMS, agregue permisos de KMS a la política:
{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" ] }
(Solo entre cuentas) Paso 2: configuración de la política de bucket de destino
Si está replicando en una cuenta de AWS diferente, la cuenta de destino debe conceder permisos a la cuenta de origen.
-
En la cuenta de destino, cree una política de bucket para el bucket de tabla de destino. Guarde esto como
destination-bucket-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination" } ] } -
Aplique la política mediante la API de tablas de S3:
aws s3tables put-table-bucket-policy \ --table-bucket-arn arn:aws:s3tables:us-west-2:444455556666:bucket/\ --policy file://amzn-s3-demo-table-bucket-cross-account-destinationdestination-bucket-policy.json\ --profiledestination-account -
Modifique la clave de KMS de origen para permitir la replicación y el mantenimiento de tablas de S3:
{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "allow replication to decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" } ] } -
Del mismo modo, agregue permisos en la política de claves de KMS de destino
{ "Version": "2012-10-17", "Id": "key-policy-3", "Statement": [ { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" }, { "Sid": "allow replication to encrypt/decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" } ]
Paso 3: creación de una configuración de replicación
Puede usar la AWS CLI para crear una configuración de replicación por bucket de tabla o por tabla. Para obtener más información, consulte los siguientes procedimientos.
Utilice este enfoque para replicar todas las tablas de un bucket.
-
Cree un archivo de configuración de replicación. Guarde esto como
bucket-replication-config.json:ejemplo : Destino único en la misma cuenta
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" } ] } ] }ejemplo : Múltiples destinos en todas las regiones
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-euap-south-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-apacejemplo : Replicación entre cuentas
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-east-1:444455556666:bucket/" } ] } ] }amzn-s3-demo-table-bucket-partner -
Aplique la configuración de replicación por bucket:
aws s3tables put-table-bucket-replication \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket\ --configuration file://bucket-replication-config.jsonResultado previsto:
{ "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }
Utilice este enfoque para replicar tablas específicas o para invalidar la replicación por bucket.
-
Cree un archivo de configuración de replicación. Guarde esto como
table-replication-config.json:ejemplo : Replicación de tabla única
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-analytics-bucketejemplo : Tabla con varios destinos
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-eu -
Aplique la configuración de replicación por tabla:
aws s3tables put-table-replication \ --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/\ --configuration file://amzn-s3-demo-table-bucket-sales-datatable-replication-config.jsonResultado previsto:
{ "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }