Autorización a la aplicación para enviar datos a AWS a través de CloudWatch RUM - Amazon CloudWatch

Autorización a la aplicación para enviar datos a AWS a través de CloudWatch RUM

Para utilizar CloudWatch RUM, la aplicación debe tener autorización.

Tiene tres opciones para configurar la autorización:

  • Permita que CloudWatch RUM cree un nuevo grupo de identidades de Amazon Cognito para la aplicación. Este método requiere el menor esfuerzo para configurarlo. Esta es la opción predeterminada.

    El grupo de identidades contendrá una identidad sin autenticar. Esto permite que el cliente web de CloudWatch RUM envíe datos a CloudWatch RUM sin autenticar al usuario de la aplicación.

    El grupo de identidades de Amazon Cognito tiene un rol de IAM adjunto. La identidad sin autenticar de Amazon Cognito permite que el cliente web asuma el rol de IAM autorizado para enviar datos a CloudWatch RUM.

  • Uso de un grupo de identidades de Amazon Cognito existente. En este caso, también debe modificar el rol de IAM que se adjunta al grupo de identidades. Use esta opción para los grupos de identidades que admiten usuarios no autenticados. Solo puede utilizar grupos de identidades dentro de una misma región.

  • Utilice la autenticación de un proveedor de identidades existente que ya haya configurado. En este caso, debe obtener credenciales del proveedor de identidad y la aplicación debe reenviar estas credenciales al cliente web de RUM.

    Use esta opción para los grupos de identidades que solo admiten usuarios autenticados.

En las siguientes secciones se detallan estas opciones.

CloudWatch RUM crea un nuevo grupo de identidades de Amazon Cognito

Esta es la opción más sencilla de configurar y, si elige ponerla en práctica, no se requieren más pasos de configuración. Debe disponer de permisos administrativos para utilizar esta opción. Para obtener más información, consulte Políticas de IAM para utilizar CloudWatch RUM.

Con esta opción, CloudWatch RUM crea los siguientes recursos:

  • Nuevo grupo de identidades de Amazon Cognito

  • Identidad sin autenticar de Amazon Cognito. Esto permite que el cliente web de RUM asuma un rol de IAM sin autenticar al usuario de la aplicación.

  • El rol de IAM que asumirá el cliente web de RUM. La política de IAM adjunta a este rol le permite utilizar la API de PutRumEvents con el recurso de supervisión de aplicaciones. En otras palabras, permite que el cliente web de RUM envíe datos a RUM.

El cliente web de RUM utiliza la identidad de Amazon Cognito para obtener credenciales de AWS. Las credenciales de AWS se asocian al rol de IAM. El rol de IAM está autorizado para utilizar PutRumEvents con el recurso AppMonitor.

Amazon Cognito envía el token de seguridad necesario para permitir que la aplicación envíe datos a CloudWatch RUM. El fragmento de código JavaScript que genera CloudWatch RUM incluye las siguientes líneas para habilitar la autenticación.

{ identityPoolId: [identity pool id], // e.g., 'us-west-2:EXAMPLE4a-66f6-4114-902a-EXAMPLEbad7' } );

Uso del grupo de identidades de Amazon Cognito existente

Si elige utilizar un grupo de identidades de Amazon Cognito existente, especifique el grupo de identidades al agregar la aplicación a CloudWatch RUM. El grupo debe ser compatible con el acceso a identidades sin autenticar. Solo puede utilizar grupos de identidades dentro de una misma región.

También debe agregar los siguientes permisos a la política de IAM asociada al rol de IAM que está asociado a este grupo de identidades.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rum:PutRumEvents", "Resource": "arn:aws:rum:[region]:[accountid]:appmonitor/[app monitor name]" } ] }

Entonces, Amazon Cognito enviará el token de seguridad necesario para permitir que la aplicación tenga acceso a CloudWatch RUM.

Proveedor de terceros

Si elige utilizar la autenticación privada de un proveedor externo, debe obtener las credenciales del proveedor de identidad y reenviarlas a AWS. La mejor forma de hacerlo es a través de un proveedor de tokens de seguridad. Puede utilizar cualquier proveedor de tokens de seguridad, incluido Amazon Cognito conAWS Security Token Service. Para obtener más información sobre AWS STS, consulte Bienvenido a la referencia sobre las API de AWS Security Token Service.

Si desea utilizar Amazon Cognito como proveedor de tokens en este contexto, puede configurar Amazon Cognito para que funcione con un proveedor de autenticación. Para obtener más información, consulte Introducción a los grupos de identidades de Amazon Cognito (identidades federadas).

Después de configurar Amazon Cognito para que funcione con su proveedor de identidad, también debe hacer lo siguiente:

  • Cree un rol de IAM con los siguientes permisos. Su aplicación utilizará este rol para acceder a AWS.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rum:PutRumEvents", "Resource": "arn:aws:rum:[region]:[accountID]:appmonitor/[app monitor name]" } ] }
  • Agregue lo siguiente a su aplicación para que envíe las credenciales de su proveedor a CloudWatch RUM. Inserte la línea para que se ejecute después de que un usuario haya iniciado sesión en la aplicación y la aplicación haya recibido las credenciales que se utilizarán para acceder a AWS.

    cwr('setAwsCredentials', {/* Credentials or CredentialProvider */});

Para obtener más información acerca de los proveedores de credenciales en JavaScript SDK de AWS, consulte Configuración de credenciales en un navegador web en la guía para desarrolladores v3 para JavaScript SDK, Configuración de credenciales en un navegador web en la guía para desarrolladores v2 para JavaScript SDK y @aws-sdk/credential-providers.

También puede utilizar el SDK para el cliente web de CloudWatch RUM para configurar los métodos de autenticación del cliente web. Para obtener más información sobre el SDK del cliente web, consulte.CloudWatch RUM web client SDK (SDK del cliente web de CloudWatch RUM).