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.
Cross-Region: Connectivity
Puede utilizar el escenario Cross-Region: Connectivity para bloquear el tráfico de red de las aplicaciones desde la región del experimento a la región de destino y pausar la replicación entre regiones para Amazon S3 y Amazon DynamoDB. Entre regiones: la conectividad afecta al tráfico saliente de las aplicaciones desde la región en la que se ejecuta el experimento (región del experimento). No se puede bloquear el tráfico entrante sin estado procedente de la región que desea aislar de la región del experimento (región de destino). No se puede bloquear el tráfico de los servicios administrados de AWS.
Este escenario se puede utilizar para demostrar que las aplicaciones con varias regiones funcionan según lo esperado cuando no se puede acceder a los recursos de la región de destino desde la región del experimento. Esto incluye bloquear tráfico de red desde la región del experimento hasta la región de destino centrándose en las puertas de enlace y las tablas de enrutamiento. También pausa la replicación entre regiones para S3 y DynamoDB. De forma predeterminada, se omiten las acciones para las que no se encuentre ningún objetivo.
Acciones
En conjunto, las siguientes acciones bloquean la conectividad entre regiones para los servicios de AWS incluidos. Las acciones se ejecutan en paralelo. De forma predeterminada, el escenario bloquea el tráfico durante 3 horas, aunque puede ampliarlo hasta un máximo de 12 horas.
Interrupción de la conectividad de puerta de enlace de tránsito
Cross Region: Connectivity incluye aws:network:transit-gateway-disrupt-cross-region-connectivity para bloquear el tráfico de red entre regiones desde las VPC de la región del experimento hasta las VPC de la región de destino conectadas por una puerta de enlace de tránsito. Esto no afecta al acceso a los puntos de conexión de VPC en la región del experimento, pero bloqueará el tráfico de la región del experimento destinado a un punto de conexión de VPC en la región de destino.
El objetivo de esta acción son las puertas de enlace de tránsito que conectan la región del experimento y la región de destino. De forma predeterminada, su objetivo son las puertas de enlace con una etiqueta DisruptTransitGateway
que tiene un valor de Allowed
. Puede agregar esta etiqueta a sus puertas de enlace de tránsito o reemplazar la etiqueta predeterminada por la suya propia en la plantilla de experimento. De forma predeterminada, si no se encuentran puertas de enlace de tránsito válidas, se omitirá esta acción.
Interrupcion de la conectividad de subred
Cross Region: Connectivity incluye aws:network:route-table-disrupt-cross-region-connectivity para bloquear el tráfico de red entre regiones desde las VPC de la región del experimento hasta los bloques de IP públicos de AWS de la región de destino. Estos bloques de IP públicos incluyen puntos de conexión de servicios de AWS en la región de destino, por ejemplo, el punto de conexión regional S3, y los bloques de IP de AWS para servicios gestionados, por ejemplo, las direcciones IP utilizadas para equilibradores de carga y Amazon API Gateway. Esta acción también bloquea la conectividad de red a través de conexiones de emparejamiento de VPC entre regiones desde la región del experimento hasta la región de destino. Esto no afecta al acceso a los puntos de conexión de VPC en la región del experimento, pero bloqueará el tráfico de la región del experimento destinado a un punto de conexión de VPC en la región de destino.
El objetivo de esta acción son las subredes de la región del experimento. De forma predeterminada, su objetivo son las subredes con una etiqueta DisruptSubnet
que tiene un valor de Allowed
. Puede agregar esta etiqueta a sus subredes o reemplazar la etiqueta predeterminada por la suya propia en la plantilla de experimento. De forma predeterminada, si no se encuentran subredes válidas, se omitirá esta acción.
Pausa de la replicación de S3
Cross Region: Connectivity incluye aws:s3:bucket-pause-replication para pausar la replicación de S3 desde la región del experimento hasta la región de destino de los buckets objetivo. La replicación desde la región de destino hasta la región del experimento no se verá afectada. Cuando finalice el escenario, la replicación del bucket se reanudará desde el punto en que se quedó en pausa. Tenga en cuenta que el tiempo que tarda la replicación en mantener todos los objetos sincronizados variará en función de la duración del experimento y de la velocidad a la que se carguen los objetos al bucket.
El objetivo de esta acción son los buckets de S3 de la región del experimento con la Replicación entre regiones (CRR) habilitada en un bucket de S3 de la región de destino. De forma predeterminada, su objetivo son los buckets con una etiqueta DisruptS3
que tiene un valor de Allowed
. Puede agregar esta etiqueta a sus buckets o reemplazar la etiqueta predeterminada por la suya propia en la plantilla de experimento. De forma predeterminada, si no se encuentran buckets válidos, se omitirá esta acción.
Pausa de la replicación de DynamoDB
Cross-Region: Connectivityincluye aws:dynamodb:global-table-pause-replication para detener la replicación entre la región del experimento y todas las demás regiones, incluida la región de destino. Esto impide la replicación con origen y destino en la región del experimento, pero no afecta a la replicación entre otras regiones. Cuando finalice el escenario, la replicación de la tabla se reanudará desde el punto en que se quedó en pausa. Tenga en cuenta que el tiempo que tarda la replicación en mantener todos los datos sincronizados variará en función de la duración del experimento y de la velocidad de los cambios en la tabla.
Esta acción se dirige a las tablas globales de DynamoDB de la región del experimento. De forma predeterminada, su objetivo son las tablas con una etiqueta DisruptDynamoDb
que tiene un valor de Allowed
. Puede agregar esta etiqueta a sus tablas o reemplazar la etiqueta predeterminada por la suya propia en la plantilla de experimento. De forma predeterminada, si no se encuentran tablas globales válidas, se omitirá esta acción.
Limitaciones
-
Este escenario no incluye condiciones de parada. Deben agregarse a la plantilla de experimento las condiciones de parada correctas para su aplicación.
Requisitos
-
Agregue el permiso necesario al rol de experimento de AWS FIS.
-
Se deben aplicar etiquetas de recursos a recursos que no son el objetivo del experimento. Pueden ser etiquetas que usen su propia convención de etiquetado o etiquetas predeterminadas definidas en el escenario.
Permisos
La siguiente política otorga a AWS FIS los permisos necesarios para ejecutar un experimento con el escenario Cross-Region: Connectivity. Esta política debe estar asociada al rol de experimento.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RouteTableDisruptConnectivity1", "Effect": "Allow", "Action": "ec2:CreateRouteTable", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity2", "Effect": "Allow", "Action": "ec2:CreateRouteTable", "Resource": "arn:aws:ec2:*:*:vpc/*" }, { "Sid": "RouteTableDisruptConnectivity21", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateRouteTable", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity3", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity4", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateManagedPrefixList", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity5", "Effect": "Allow", "Action": "ec2:DeleteRouteTable", "Resource": [ "arn:aws:ec2:*:*:route-table/*", "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity6", "Effect": "Allow", "Action": "ec2:CreateRoute", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity7", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity8", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "RouteTableDisruptConnectivity9", "Effect": "Allow", "Action": "ec2:DeleteNetworkInterface", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity10", "Effect": "Allow", "Action": "ec2:CreateManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity11", "Effect": "Allow", "Action": "ec2:DeleteManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity12", "Effect": "Allow", "Action": "ec2:ModifyManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity13", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeManagedPrefixLists", "ec2:DescribeSubnets", "ec2:DescribeRouteTables", "ec2:DescribeVpcEndpoints" ], "Resource": "*" }, { "Sid": "RouteTableDisruptConnectivity14", "Effect": "Allow", "Action": "ec2:ReplaceRouteTableAssociation", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:route-table/*" ] }, { "Sid": "RouteTableDisruptConnectivity15", "Effect": "Allow", "Action": "ec2:GetManagedPrefixListEntries", "Resource": "arn:aws:ec2:*:*:prefix-list/*" }, { "Sid": "RouteTableDisruptConnectivity16", "Effect": "Allow", "Action": "ec2:AssociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:route-table/*" ] }, { "Sid": "RouteTableDisruptConnectivity17", "Effect": "Allow", "Action": "ec2:DisassociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:route-table/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity18", "Effect": "Allow", "Action": "ec2:DisassociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:subnet/*" ] }, { "Sid": "RouteTableDisruptConnectivity19", "Effect": "Allow", "Action": "ec2:ModifyVpcEndpoint", "Resource": [ "arn:aws:ec2:*:*:route-table/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity20", "Effect": "Allow", "Action": "ec2:ModifyVpcEndpoint", "Resource": [ "arn:aws:ec2:*:*:vpc-endpoint/*" ] }, { "Sid": "TransitGatewayDisruptConnectivity1", "Effect": "Allow", "Action": [ "ec2:DisassociateTransitGatewayRouteTable", "ec2:AssociateTransitGatewayRouteTable" ], "Resource": [ "arn:aws:ec2:*:*:transit-gateway-route-table/*", "arn:aws:ec2:*:*:transit-gateway-attachment/*" ] }, { "Sid": "TransitGatewayDisruptConnectivity2", "Effect": "Allow", "Action": [ "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGateways" ], "Resource": "*" }, { "Sid": "S3CrossRegion1", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "S3CrossRegion2", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" }, { "Sid": "S3CrossRegion3", "Effect": "Allow", "Action": [ "s3:PauseReplication" ], "Resource": "arn:aws:s3:::*", "Condition": { "StringLike": { "s3:DestinationRegion": "*" } } }, { "Sid": "S3CrossRegion4", "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:PutReplicationConfiguration" ], "Resource": "arn:aws:s3:::*", "Condition": { "BoolIfExists": { "s3:isReplicationPauseRequest": "true" } } }, { "Sid": "DdbCrossRegion1", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" }, { "Sid": "DdbCrossRegion2", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:DescribeGlobalTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*", "arn:aws:dynamodb:*:*:global-table/*" ] }, { "Sid": "DdbCrossRegion3", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy" ], "Resource": "arn:aws:kms:*:*:key/*" } ] }
Contenido del escenario
El siguiente contenido define el escenario. Este JSON se puede guardar y usar para crear una plantilla de experimento mediante el comando create-experiment-template
{ "targets": { "Transit-Gateway": { "resourceType": "aws:ec2:transit-gateway", "resourceTags": { "TgwTag": "TgwValue" }, "selectionMode": "ALL" }, "Subnet": { "resourceType": "aws:ec2:subnet", "resourceTags": { "SubnetKey": "SubnetValue" }, "selectionMode": "ALL", "parameters": {} }, "S3-Bucket": { "resourceType": "aws:s3:bucket", "resourceTags": { "S3Impact": "Allowed" }, "selectionMode": "ALL" }, "DynamoDB-Global-Table": { "resourceType": "aws:dynamodb:encrypted-global-table", "resourceTags": { "DisruptDynamoDb": "Allowed" }, "selectionMode": "ALL" } }, "actions": { "Disrupt-Transit-Gateway-Connectivity": { "actionId": "aws:network:transit-gateway-disrupt-cross-region-connectivity", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "TransitGateways": "Transit-Gateway" } }, "Disrupt-Subnet-Connectivity": { "actionId": "aws:network:route-table-disrupt-cross-region-connectivity", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "Subnets": "Subnet" } }, "Pause-S3-Replication": { "actionId": "aws:s3:bucket-pause-replication", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "Buckets": "S3-Bucket" } }, "Pause-DynamoDB-Replication": { "actionId": "aws:dynamodb:encrypted-global-table-pause-replication", "parameters": { "duration": "PT3H" }, "targets": { "Tables": "DynamoDB-Global-Table" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "", "logConfiguration": { "logSchemaVersion": 2 }, "tags": { "Name": "Cross-Region: Connectivity" }, "experimentOptions": { "accountTargeting": "single-account", "emptyTargetResolutionMode": "skip" }, "description": "Block application network traffic from experiment Region to target Region and pause cross-Region replication" }