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.
Consideraciones sobre la implementación
En las siguientes secciones, se describen las limitaciones y consideraciones a la hora de implementar esta solución.
Reglas de AWS WAF
La ACL web que genera esta solución está diseñada para ofrecer una protección integral para las aplicaciones web. La solución proporciona un conjunto de reglas administradas por AWS y reglas personalizadas que puede añadir a la ACL web. Para incluir una regla, elija yes
los parámetros pertinentes al lanzar la CloudFormation pila. Consulte el paso 1. Inicie la pila de la lista de parámetros.
nota
La out-of-box solución no es compatible con AWS Firewall Manager
Registro de tráfico de ACL web
Si crea la pila en una región de AWS que no sea EE. UU. Este (Virginia del Norte) y establece el punto de enlace comoCloudFront
, debe establecer Activate HTTP Flood Protection en no
oyes - AWS WAF rate based rule
.
Las otras dos opciones (yes - AWS Lambda log parser
yyes - Amazon Athena log parser
) requieren la activación de los registros de AWS WAF en una ACL web que se ejecute en todas las ubicaciones perimetrales de AWS, y esto no es compatible fuera de EE. UU. Este (norte de Virginia). Para obtener más información sobre cómo registrar el tráfico de ACL web, consulte la guía para desarrolladores de AWS WAF.
Gestión de sobredimensionamiento de los componentes de las solicitudes
AWS WAF no admite la inspección de contenido sobredimensionado para el cuerpo, los encabezados o las cookies del componente de solicitud web. Al escribir una declaración de reglas que inspeccione uno de estos tipos de componentes de solicitud, puede elegir una de estas opciones para indicar a AWS WAF qué hacer con estas solicitudes:
-
yes
(continuar) - Inspeccione el componente de la solicitud normalmente de acuerdo con los criterios de inspección de la regla. AWS WAF inspecciona el contenido de los componentes de la solicitud que se encuentra dentro de los límites de tamaño. Esta es la opción predeterminada que se utiliza en la solución. -
yes - MATCH
: trate la solicitud web como coincidente con la instrucción de regla. AWS WAF aplica la acción de la regla a la solicitud sin evaluarla en función de los criterios de inspección de la regla. En el caso de una regla conBlock
acción, esto bloquea la solicitud con el componente de sobretamaño. -
yes - NO_MATCH
- Considera que la solicitud web no coincide con el enunciado de la regla, sin evaluarla en función de los criterios de inspección de la regla. AWS WAF continúa inspeccionando la solicitud web mediante el resto de las reglas de la ACL web, como haría con cualquier regla que no coincida.
Para obtener más información, consulte Gestión de componentes de solicitudes web de gran tamaño en AWS WAF.
Implementaciones de múltiples soluciones
Puede implementar la solución varias veces en la misma cuenta y región. Debe usar un nombre de CloudFormation pila único y un nombre de bucket de Amazon S3 para cada implementación. Cada implementación única conlleva cargos adicionales y está sujeta a las cuotas de AWS WAF por cuenta y región.
Permisos mínimos de rol para la implementación (opcional)
Los clientes pueden crear manualmente un rol de IAM con los permisos mínimos necesarios para la implementación:
-
Permisos WAF
{ "Effect": "Allow", "Action": [ "wafv2:CreateWebACL", "wafv2:UpdateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListWebACLs", "wafv2:CreateIPSet", "wafv2:UpdateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "wafv2:PutLoggingConfiguration", "wafv2:DeleteLoggingConfiguration", "wafv2:ListWebACLs", "wafv2:ListIPSets", "wafv2:ListTagsForResource" ], "Resource": [ "arn:aws:wafv2:*:*:regional/webacl/*", "arn:aws:wafv2:*:*:regional/ipset/*", "arn:aws:wafv2:*:*:global/webacl/*", "arn:aws:wafv2:*:*:global/ipset/*" ] }
-
Permisos Lambda
{ "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:InvokeFunction", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:*:*:function:*" }
-
Permisos Firehose
{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "firehose:UpdateDestination" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" }
-
Permisos de S3
{ "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucketPolicy", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:GetObject", "s3:PutBucketAcl", "s3:PutBucketPolicy", "s3:PutBucketPublicAccessBlock", "s3:PutBucketVersioning", "s3:PutEncryptionConfiguration", "s3:PutObject", "s3:PutBucketTagging", "s3:PutLifecycleConfiguration", "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:PutBucketLogging", "s3:GetBucketLogging" ], "Resource": "arn:aws:s3:::*" }
-
Permisos de Athena
{ "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:*:*:workgroup/WAF*" }
-
Permisos de Glue
{ "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*", "arn:aws:glue:*:*:table/*/*", "arn:aws:glue:*:*:userDefinedFunction/*" ] }
-
CloudWatch Registra los permisos
{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:PutRetentionPolicy", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/lambda/*", "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:*:log-group:/aws/kinesisfirehose/*" ] }
-
CloudWatch Permisos
{ "Effect": "Allow", "Action": [ "cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard", "cloudwatch:PutMetricData" ], "Resource": "*" }
-
Permisos de SNS
{ "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:*" }
-
Permisos de DynamoDB
{ "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem" ], "Resource": "arn:aws:dynamodb:*:*:table/*" }
-
CloudFormation Permisos
{ "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:ListStacks" ], "Resource": "arn:aws:cloudformation:*:*:stack/*/*" }
-
Permisos de registro de aplicaciones de Service Catalog
{ "Effect": "Allow", "Action": [ "servicecatalog:CreateApplication", "servicecatalog:DeleteApplication", "servicecatalog:GetApplication", "servicecatalog:TagResource", "servicecatalog:CreateAttributeGroup", "servicecatalog:DeleteAttributeGroup", "servicecatalog:GetAttributeGroup", "servicecatalog:AssociateAttributeGroup", "servicecatalog:DisassociateAttributeGroup", "servicecatalog:AssociateResource", "servicecatalog:DisassociateResource" ], "Resource": "arn:aws:servicecatalog:*:*:*" }
-
Permisos de X-Ray
{ "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords" ], "Resource": "*" }
-
Permisos de IAM
{ "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRoles", "iam:PassRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/*" }
-
EventBridge Permisos
{ "Effect": "Allow", "Action": [ "events:PutTargets", "events:RemoveTargets", "events:DescribeRule", "events:EnableRule", "events:ListRules", "events:PutRule", "events:DeleteRule", "events:ListEventSources", "events:DescribeEventSource", "events:ActivateEventSource", "events:DeactivateEventSource" ], "Resource": "arn:aws:events:*:*:rule/*" }