

# CloudWatch RUM でのリソースベースのポリシーの使用
<a name="CloudWatch-RUM-resource-policies"></a>

CloudWatch RUM アプリモニターにリソースポリシーをアタッチできます。既定では、アプリケーションモニターにはリソースポリシーがアタッチされていません。CloudWatch RUM リソースベースのポリシーは、クロスアカウントアクセスをサポートしていません。

AWS リソースのポリシーの詳細については、「[アイデンティティベースおよびリソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)」を参照してください。

リソースポリシーと ID ポリシーの評価方法の詳細については、「[ポリシーの評価論理](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」を参照してください。

IAM ポリシーの文法の詳細については、「[IAM JSON ポリシー要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

## サポートされているアクション
<a name="RUM-resource-policies-actions"></a>

アプリケーションモニターのリソースベースのポリシーは、`rum:PutRumEvents` アクションをサポートします。

## CloudWatch RUM で 使用するサンプルポリシー
<a name="RUM-resource-policies-samples"></a>

次の例では、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": "*"
        }
    ]
}
```

------

`aws:SourceIp` 条件キーを使用して、指定された送信元 IP アドレスをブロックするようにポリシーを変更できます。この例では、このポリシーを使用すると、リストされている IP アドレスの PutRumEvents は拒否されます。他の IP アドレスからの他のすべてのリクエストは受け入れられます。この条件キーの詳細については、IAM ユーザーガイドの「[ネットワークのプロパティ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties)」を参照してください。

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

------

さらに、`rum:alias` サービスコンテキストキーを使用して、受け入れるリクエストを制御できます。

ウェブアプリケーションモニターの場合、GitHub の「[アプリケーション固有の設定](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md)」で説明されているように、CloudWatch RUM ウェブクライアントのバージョン 1.20 以降を使用して `Alias` を送信するようにウェブクライアントを設定する必要があります。

モバイルアプリケーションモニターの場合、SDK に従って計測を設定する必要があります。
+ iOS アプリケーションは [AWS Distro for OpenTelemetry (ADOT) iOS SDK ](https://github.com/aws-observability/aws-otel-swift)を使用します。
+ Android アプリケーションは [AWS Distro for OpenTelemetry (ADOT) Android SDK](https://github.com/aws-observability/aws-otel-android) を使用します。

次の例では、イベントを受け入れるには、リソースポリシーで、リクエストに `alias1` または `alias2` を含める必要があります。

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