Registros de acceso del Equilibrador de carga de aplicación - Elastic Load Balancing

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.

Registros de acceso del Equilibrador de carga de aplicación

Al habilitar los registros de acceso del equilibrador de carga, debe especificar el nombre del bucket de S3 donde el equilibrador de carga almacenará los registros. El bucket debe tener una política de bucket que conceda permiso a Elastic Load Balancing para escribir en el bucket.

Paso 1: Crear un bucket de S3

Al habilitar los registros de acceso, es preciso especificar un bucket de S3 para estos. Puede utilizar un bucket existente o crear uno específico para los registros de acceso. El bucket debe cumplir los siguientes requisitos.

Requisitos
  • El bucket debe estar ubicado en la misma región que el equilibrador de carga. El bucket y el equilibrador de carga pueden ser propiedad de diferentes cuentas.

  • La única opción de cifrado del lado del servidor que se admite son claves administradas por Amazon S3 (SSE-S3). Para obtener más información, consulte Claves de cifrado administradas por Amazon S3 (SSE-S3).

Para crear un bucket de S3 con la consola de Amazon S3
  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Elija Crear bucket.

  3. En la página Crear un bucket, realice las siguientes acciones:

    1. En Nombre del bucket, escriba un nombre para el bucket. Este nombre debe ser único entre todos los nombres de buckets de Amazon S3. En algunas regiones, es posible que haya restricciones adicionales para los nombres de los buckets. Para obtener más información, consulte Restricciones y limitaciones de los buckets en la Guía del usuario de Amazon S3.

    2. En Región AWS , seleccione la región donde ha creado el equilibrador de carga.

    3. Para el cifrado predeterminado, elija las claves administradas por Amazon S3 (SSE-S3).

    4. Elija Crear bucket.

Paso 2: Adjuntar una política al bucket de S3

El bucket de S3 debe tener una política que conceda permiso a Elastic Load Balancing para escribir los registros de acceso en el bucket. Las políticas de bucket son colecciones de instrucciones JSON escritas en el lenguaje de la política de acceso para definir los permisos de acceso al bucket. Cada instrucción incluye información sobre un único permiso y contiene una serie de elementos.

Si utiliza un bucket existente que ya tiene una política adjunta, puede agregar la instrucción para los registros de acceso de Elastic Load Balancing a la política. En este caso, recomendamos evaluar el conjunto de permisos resultante para asegurarse de que sean adecuados para los usuarios que necesitan obtener acceso al bucket en relación con los registros de acceso.

Esta política otorga permisos al servicio de entrega de registros.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" } ] }

ParaResource, introduzca el ARN de la ubicación de los registros de acceso con el formato que se muestra en la política de ejemplo. Incluya siempre el ID de cuenta de la cuenta con el balanceador de carga en la ruta de recursos del ARN del bucket de S3. Esto garantiza que solo los balanceadores de carga de la cuenta especificada puedan escribir registros de acceso en el bucket de S3.

El ARN que especifique dependerá de si planea incluir un prefijo al habilitar los registros de acceso en el paso 3.

Ejemplo de ARN del bucket de S3 con un prefijo

El nombre del bucket de S3 es amzn-s3-demo-logging-bucket y el prefijo es. logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*

AWS GovCloud (US)— En el siguiente ejemplo se utiliza la sintaxis ARN para. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Ejemplo de ARN del bucket de S3 sin prefijo

El nombre del bucket de S3 esamzn-s3-demo-logging-bucket. No hay ninguna parte de prefijo en el ARN del bucket S3.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

AWS GovCloud (US)— En el siguiente ejemplo se utiliza la sintaxis ARN para. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

Anteriormente, para las regiones disponibles antes de agosto de 2022, necesitábamos una política que concediera permisos a una cuenta de Elastic Load Balancing específica de la región. Esta política antigua sigue siendo compatible, pero le recomendamos que la sustituya por la política más reciente indicada anteriormente. Si prefieres seguir usando la política anterior, que no se muestra aquí, puedes hacerlo.

Como referencia, estas son las cuentas IDs de Elastic Load Balancing que se deben especificar Principal en la política heredada. Tenga en cuenta que las regiones que no figuran en esta lista no admiten la política anterior.

  • Este de EE. UU. (Norte de Virginia): 127311923021

  • Este de EE. UU. (Ohio): 033677994240

  • Oeste de EE. UU. (Norte de California): 027434742980

  • Oeste de EE. UU. (Oregón): 797873946194

  • África (Ciudad del Cabo): 098369216593

  • Asia-Pacífico (Hong Kong): 754344448648

  • Asia-Pacífico (Yakarta): 589379963580

  • Asia-Pacífico (Bombay): 718504428378

  • Asia-Pacífico (Osaka): 383597477331

  • Asia-Pacífico (Seúl): 600734575887

  • Asia Pacífico (Singapur): 114774131450

  • Asia Pacífico (Sídney): 783225319266

  • Asia Pacífico (Tokio): 582318560864

  • Canadá (Centro): 985666609251

  • Europa (Fráncfort): 054676820928

  • Europa (Irlanda): 156460612806

  • Europa (Londres): 652711504416

  • Europa (Milán): 635631232127

  • Europa (París): 009996457667

  • Europa (Estocolmo): 897822967062

  • Medio Oriente (Baréin): 076674570225

  • América del Sur (São Paulo): 507241528517

  • AWS GovCloud (EEUU-Este) — 190560391635

  • AWS GovCloud (US-Oeste) — 048591011584

La siguiente política otorga permisos al servicio de entrega de registros especificado. Utilice esta política para los equilibradores de carga en las zonas Outposts.

{ "Effect": "Allow", "Principal": { "Service": "logdelivery.elb.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }

ParaResource, introduzca el ARN de la ubicación de los registros de acceso con el formato que se muestra en la política de ejemplo. Incluya siempre el ID de cuenta de la cuenta con el balanceador de carga en la ruta de recursos del ARN del bucket de S3. Esto garantiza que solo los balanceadores de carga de la cuenta especificada puedan escribir registros de acceso en el bucket de S3.

El ARN del bucket de S3 que especifique depende de si planea incluir un prefijo al habilitar los registros de acceso en el paso 3.

Ejemplo de ARN del bucket de S3 con un prefijo

El nombre del bucket de S3 es amzn-s3-demo-logging-bucket y el prefijo es. logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Ejemplo de ARN del bucket de S3 sin prefijo

El nombre del bucket de S3 esamzn-s3-demo-logging-bucket. No hay ninguna parte de prefijo en el ARN del bucket S3.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
  • Utilice la ruta de recursos completa, incluida la parte del ID de cuenta del ARN del bucket de S3. No utilices caracteres comodín (*) en la parte del ID de cuenta del ARN del bucket de S3.

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
  • Úsalo aws:SourceArn para asegurarte de que solo los balanceadores de carga de la región y la cuenta especificadas puedan usar tu bucket.

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/*" } }
  • aws:SourceOrgIdaws:SourceArnUtilízalo con para asegurarte de que solo los balanceadores de carga de la organización especificada puedan usar tu bucket.

    "Condition": { "StringEquals": { "aws:SourceOrgId": "o-1234567890" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticloadbalancing:*:*:loadbalancer/*" } }
  • Si tienes una Deny declaración que impide el acceso a las entidades principales de servicio excepto a las que estén explícitamente permitidas, asegúrate de añadirla logdelivery.elasticloadbalancing.amazonaws.com a la lista de entidades principales de servicio permitidas. Por ejemplo, si utilizó la aws:PrincipalServiceNamesList condición, añada logdelivery.elasticloadbalancing.amazonaws.com lo siguiente:

    { "Effect": "Deny", "Principal": "*", "Condition": { "StringNotEqualsIfExists": { "aws:PrincipalServiceNamesList": [ "logdelivery.elasticloadbalancing.amazonaws.com", "service.amazonaws.com" ] } } }

    Si ha utilizado el NotPrincipal elemento, añada logdelivery.elasticloadbalancing.amazonaws.com lo siguiente. Tenga en cuenta que le recomendamos que utilice la clave de aws:PrincipalServiceNamesList condición aws:PrincipalServiceName o para permitir explícitamente a los directores de servicio en lugar de utilizar el NotPrincipal elemento. Para obtener más información, consulte NotPrincipal.

    { "Effect": "Deny", "NotPrincipal": { "Service": [ "logdelivery.elasticloadbalancing.amazonaws.com", "service.amazonaws.com" ] } },

Después de crear la política de bucket, utilice una interfaz de Amazon S3, como la consola o los AWS CLI comandos de Amazon S3, para adjuntar la política de bucket a su bucket de S3.

Console
Para adjuntar su política de bucket a su bucket de S3
  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Seleccione el nombre del bucket para abrir la página de detalles.

  3. Elija Permisos y, a continuación, seleccione Política de bucket, Editar.

  4. Actualice la política de bucket para conceder los permisos necesarios.

  5. Seleccione Save changes (Guardar cambios).

AWS CLI
Para adjuntar su política de bucket a su bucket de S3

Utilice el comando put-bucket-policy. En este ejemplo, la política de bucket se guardó en el archivo.json especificado.

aws s3api put-bucket-policy \ --bucket amzn-s3-demo-bucket \ --policy file://access-log-policy.json

Paso 3: configurar los registros de acceso

Utilice el siguiente procedimiento para configurar los registros de acceso para capturar información de solicitudes y entregar los archivos de registro al bucket de S3.

Requisitos

El bucket debe cumplir los requisitos descritos en el paso 1 y debe adjuntar una política de bucket tal como se describe en el paso 2. Si incluyes un prefijo, no debe incluir la cadena "»AWSLogs.

Para administrar el bucket de S3 para los registros de acceso

Asegúrese de deshabilitar los registros de acceso antes de eliminar el bucket que configuró para los registros de acceso. De lo contrario, si existe un nuevo bucket con el mismo nombre y la política de bucket requerida pero creada en una Cuenta de AWS que no le pertenece, Elastic Load Balancing podría escribir los registros de acceso del equilibrador de carga en este nuevo bucket.

Console
Para habilitar los registros de acceso
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Equilibradores de carga.

  3. Seleccione el nombre del equilibrador de carga para abrir la página de detalles.

  4. En la pestaña Atributos, seleccione Editar.

  5. Para la Monitorización, active los registros de acceso.

  6. En URI de S3, ingrese el URI de S3 correspondiente a los archivos de registro. El URI que especifique depende de si utiliza un prefijo.

    • URI con el prefijo: s3:///amzn-s3-demo-logging-bucketlogging-prefix

    • URI sin prefijo: s3://amzn-s3-demo-logging-bucket

  7. Seleccione Save changes (Guardar cambios).

AWS CLI
Para habilitar los registros de acceso

Usa el modify-load-balancer-attributescomando con los atributos relacionados.

aws elbv2 modify-load-balancer-attributes \ --load-balancer-arn load-balancer-arn \ --attributes \ Key=access_logs.s3.enabled,Value=true \ Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \ Key=access_logs.s3.prefix,Value=logging-prefix
CloudFormation
Para habilitar los registros de acceso

Actualice el AWS::ElasticLoadBalancingV2::LoadBalancerrecurso para incluir los atributos relacionados.

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-alb Type: application Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup LoadBalancerAttributes: - Key: "access_logs.s3.enabled" Value: "true" - Key: "access_logs.s3.bucket" Value: "amzn-s3-demo-logging-bucket" - Key: "access_logs.s3.prefix" Value: "logging-prefix"

Paso 4: verificar los permisos del bucket

Después de habilitar los registros de acceso para el equilibrador de carga, Elastic Load Balancing valida el bucket de S3 y crea un archivo de prueba para garantizar que la política del bucket especifica los permisos necesarios. Puede utilizar la consola de Amazon S3 para comprobar que se ha creado el archivo de prueba. El archivo de prueba no es un archivo de registro de acceso real; no contiene registros de ejemplo.

Comprobación de la creación de un archivo de prueba en su bucket mediante la consola de Amazon S3
  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Seleccione el nombre del bucket que especificó para los registros de acceso.

  3. Vaya al archivo registro de prueba, ELBAccessLogTestFile. La ubicación depende de si utiliza un prefijo.

    • Ubicación con un prefijo:amzn-s3-demo-logging-bucket//logging-prefix/AWSLogs/123456789012ELBAccessLogTestFile

    • Ubicación sin prefijo:amzn-s3-demo-logging-bucket///AWSLogs123456789012ELBAccessLogTestFile

Solución de problemas

Si recibe un error de acceso denegado, estas pueden ser causas posibles:

  • La política del bucket no concede permiso a Elastic Load Balancing para escribir registros de acceso en el bucket. Compruebe que está utilizando la política de bucket correcta para la región. Compruebe que el ARN del recurso utilice el mismo nombre de bucket que especificó al habilitar los registros de acceso. Compruebe que el ARN del recurso no incluya un prefijo si no especificó un prefijo al habilitar los registros de acceso.

  • El bucket usa una opción de cifrado del lado del servidor no compatible. El bucket debe usar claves administradas por Amazon S3 (SSE-S3).