

# Usar políticas baseadas em recursos com o CloudWatch RUM
<a name="CloudWatch-RUM-resource-policies"></a>

Você pode anexar uma política de recursos a um monitor de aplicação do CloudWatch RUM. Por padrão, os monitores de aplicações não têm uma política de recursos anexada a eles. As políticas baseadas em recursos do CloudWatch RUM não são compatíveis com acesso entre contas.

Para saber mais sobre as políticas de recursos da AWS, consulte [Políticas baseadas em identidade e em recurso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html).

Para saber mais sobre como políticas de recursos e políticas de identidade são avaliadas, consulte [Lógica da avaliação de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html).

Para saber mais sobre a gramática de políticas do IAM, consulte [Referência de elemento de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html).

## Ações compatíveis
<a name="RUM-resource-policies-actions"></a>

Políticas baseadas em recursos em monitores de aplicações compatíveis com a ação `rum:PutRumEvents`.

## Exemplos de políticas para uso com o CloudWatch RUM
<a name="RUM-resource-policies-samples"></a>

O exemplo a seguir permite que qualquer pessoa grave dados no monitor da aplicação, incluindo aqueles sem credenciais do 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": "*"
        }
    ]
}
```

------

Você pode modificar a política para bloquear endereços IP de origem específicos usando a chave de condição `aws:SourceIp`. Com este exemplo, usando esta política, o PutRumEvents do endereço IP listado será rejeitado. Todas as outras solicitações de outros endereços IP serão aceitas. Para obter mais informações sobre essa chave de condição, consulte [Propriedades da rede](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties) no Guia do usuário do 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}}"
                }
            }
        }
    ]
}
```

------

Além disso, você pode usar a chave de contexto do serviço `rum:alias` para controlar quais solicitações são aceitas. 

Em monitores de aplicações Web, é necessário configurar o cliente Web para enviar o `Alias` usando a versão 1.20 ou posterior do cliente Web do CloudWatch RUM, conforme descrito em [Application-specific Configurations](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md) no GitHub.

Em monitores de aplicações móveis, você deve configurar a instrumentação de acordo com o SDK.
+ As aplicações iOS usam o [SDK do AWS Distro for OpenTelemetry (ADOT)](https://github.com/aws-observability/aws-otel-swift) para iOS. 
+ As aplicações Adroid usam o [SDK do AWS Distro for OpenTelemetry (ADOT)](https://github.com/aws-observability/aws-otel-android) para Android.

No exemplo a seguir, a política do recurso exige que as solicitações contenham um `alias1` ou `alias2` para o evento ser aceito.

```
    {
    "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"]
                }
            }
        }
    ]
}
```