

# Usar chaves de condição para limitar o acesso a namespaces do CloudWatch
<a name="iam-cw-condition-keys-namespace"></a>

 Use chaves de condição do IAM para limitar o usuário a publicar métricas somente nos namespaces do CloudWatch especificados. Esta seção fornece exemplos que descrevem como permitir e excluir usuários da publicação de métricas em um namespace. 

**Permitir a publicação em apenas um namespace**

A política a seguir limita o usuário a publicar métricas somente no namespace chamado `MyCustomNamespace`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "MyCustomNamespace"
            }
        }
    }
}
```

------

**Excluir publicação de um namespace**

A política a seguir permite que o usuário publique métricas em qualquer namespace, exceto para `CustomNamespace2`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": "cloudwatch:PutMetricData"
        },
        {
            "Effect": "Deny",
            "Resource": "*",
            "Action": "cloudwatch:PutMetricData",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "CustomNamespace2"
                }
            }
        }
    ]
}
```

------

**Controle da ingestão do OTLP**

A política a seguir permite que o usuário publique métricas usando a API do OTLP:

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

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": "cloudwatch:PutMetricData"
        }
    ]
}
```

------

Para desabilitar a ingestão dupla, ou seja, usar somente PutMetricData e negar qualquer ingestão de OTLP, você pode usar a política a seguir. Ela limita o usuário a publicar métricas usando PutMetricData no namespace `MyCustomNamespace` e, ao mesmo tempo, nega implicitamente qualquer ingestão de OTLP devido à condição `StringEquals`:

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

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                     "cloudwatch:namespace": "MyCustomNamespace"
                }
            }
         }
    ]
}
```

------

Para habilitar a ingestão dupla, ou seja, permitir a ingestão de PutMetricData e OTLP, você pode usar a política a seguir. Isso limita o usuário a publicar métricas usando PutMetricData no namespace denominado `MyCustomNamespace` e, ao mesmo tempo, permite a ingestão do OTLP devido à condição `StringEqualsIfExists`:

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

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                     "cloudwatch:namespace": "MyCustomNamespace"
                }
            }
         }
    ]
}
```

------