

# Uso de políticas basadas en recursos con CloudWatch RUM
<a name="CloudWatch-RUM-resource-policies"></a>

Puede asociar una política de recursos a un monitor de aplicaciones de CloudWatch RUM. De forma predeterminada, los monitores de aplicaciones no tienen políticas de recursos asociadas. Las políticas basadas en recursos de CloudWatch RUM no admiten el acceso entre cuentas.

Para obtener más información acerca de las políticas de recursos de AWS, consulte [Políticas basadas en identidades y políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html).

Para obtener más información sobre cómo se evalúan las políticas de recursos y las políticas de identidades, consulte [Lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html).

Para obtener más información sobre la gramática de las políticas de IAM, consulte [Referencia del elemento de política JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html).

## Acciones admitidas
<a name="RUM-resource-policies-actions"></a>

Las políticas basadas en los recursos de los monitores de aplicaciones admiten la acción `rum:PutRumEvents`.

## Políticas de muestra para utilizar con CloudWatch RUM
<a name="RUM-resource-policies-samples"></a>

El siguiente ejemplo permite que cualquier persona escriba datos en el monitor de aplicaciones, incluidas aquellas que no tengan credenciales de SigV4.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:{{us-east-1}}:{{123456789012}}:appmonitor/{{app monitor name}}",
            "Principal": "*"
        }
    ]
}
```

------

Puede modificar la política para bloquear direcciones IP de origen específicas mediante la clave de condición `aws:SourceIp`. Con este ejemplo, si se utiliza esta política, se rechazarán los PutRumEvents procedentes de la dirección IP indicada. Se aceptarán el resto de solicitudes procedentes de otras direcciones IP. Para obtener más información sobre esta clave de condición, consulte [Propiedades de la red](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties) en la Guía del usuario de IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:{{us-east-1}}:{{123456789012}}:appmonitor/{{AppMonitorName}}",
            "Principal": "*"
        },
        {
            "Effect": "Deny",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:{{us-east-1}}:{{123456789012}}:appmonitor/{{AppMonitorName}}",
            "Principal": "*",
            "Condition": {
                "NotIpAddress": {
                "aws:SourceIp": "{{198.51.100.252}}"
                }
            }
        }
    ]
}
```

------

Además, puede utilizar la clave de contexto del servicio `rum:alias` para controlar qué solicitudes se aceptan. 

En el caso de los monitores de aplicaciones web, debe configurar el cliente web de modo que envíe `Alias` con la versión 1.20 o posterior del cliente web de CloudWatch RUM, como se describe en [Application-specific Configurations](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md) en GitHub.

En el caso de los monitores de aplicaciones móviles, debe configurar la instrumentación de acuerdo con el SDK.
+ La aplicaciones para iOS utilizan el [SDK para iOS de AWS Distro para OpenTelemetry (ADOT)](https://github.com/aws-observability/aws-otel-swift). 
+ La aplicaciones para Android utilizan el [SDK para Android de AWS Distro para OpenTelemetry (ADOT)](https://github.com/aws-observability/aws-otel-android).

En el siguiente ejemplo, la política de recursos requiere que las solicitudes contengan `alias1` o `alias2` para que se acepte el evento.

```
    {
    "Version":"2012-10-17",                   
    "Statement": [
        {
            "Sid": "AllowRUMPutEvents",
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/MyApplication",
            "Principal": "*",
            "Condition": {
                "StringEquals": {
                    "rum:alias":["alias1", "alias2"]
                }
            }
        }
    ]
}
```