

# CloudWatch パイプラインの IAM ポリシーとアクセス許可
<a name="pipeline-iam-reference"></a>

このセクションでは、CloudWatch パイプラインの IAM 要件について説明します。アクセス許可は、データソースと統合方法によって異なります。

次の表は、ユースケースに適用される IAM セクションを特定するのに役立ちます。


| ユースケース | 統合メソッド | パイプライン設定のソースタイプ | 必要な IAM セクション | 
| --- | --- | --- | --- | 
| [サードパーティー統合 (API Pull)](data-sources-third-party.md) | 保存された認証情報を使用してベンダー API からパイプラインをプルする | microsoft\_office365 okta\_sso、palo\_alto\_ngfw、など | [API 発信者のアクセス許可](#api-caller-permissions) \+ [サードパーティーソース (API Pull)](#third-party-api-pull) \+ [リソースポリシー](#resource-policies) | 
| [サードパーティー統合 (S3 配信)](data-sources-third-party.md) | ベンダーが S3 バケットにファイルを配信する | s3 | [API 発信者のアクセス許可](#api-caller-permissions) \+ [サードパーティーソース (S3 配信)](#third-party-s3-delivery) \+ [リソースポリシー](#resource-policies) | 
| [S3 からのカスタムデータ](data-sources-custom.md) | アプリケーションが S3 に書き込み、パイプラインがバケットから読み取る | s3 | [API 発信者のアクセス許可](#api-caller-permissions) \+ [S3 からのカスタムデータ](#custom-data-s3) \+ [リソースポリシー](#resource-policies) | 
| [CloudWatch Logs からのカスタムデータ](data-sources-custom.md) | アプリケーションが CloudWatch Logs ロググループにログ記録する | cloudwatch\_logs | [API 発信者のアクセス許可](#api-caller-permissions) \+ [CloudWatch Logs からのカスタムデータ](#custom-data-cloudwatch-logs) | 
| [提供される AWS サービスログ](data-sources-aws-services.md) | AWS サービスは CloudWatch Logs にログを配信します (VPC フローログ、Route 53) | cloudwatch\_logs | [API 発信者のアクセス許可](#api-caller-permissions) \+ [提供される AWS サービスログ](#vended-service-logs) | 

**注記**  
S3 ベースのソース (`s3`) では、パイプラインの作成後にリソースポリシーが必要です。CloudWatch Logs ソース (`cloudwatch_logs`) の場合はパイプラインの作成後にリソースポリシーは必要ありません。

## API 発信者のアクセス許可
<a name="api-caller-permissions"></a>

`CreateTelemetryPipeline` を呼び出す IAM プリンシパルには、パイプライン設定で参照されるロールに対する `iam:PassRole` アクセス許可が必要です。

**Example PassRole ポリシーテンプレート**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PassRoleForPipelineSource",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::{{your-account-id}}:role/{{your-source-role}}",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "{{service-principal}}"
                    ],
                    "iam:AssociatedResourceARN": [
                        "arn:aws:observabilityadmin:{{your-region}}:{{your-account-id}}:telemetry-pipeline/*"
                    ]
                }
            }
        }
    ]
}
```

{{service-principal}} を、ユースケースに基づいて次の表の値に置き換えます。


| ユースケース | サービスプリンシパル値  | 
| --- | --- | 
| サードパーティー (API Pull) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| サードパーティー (S3 配信) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| S3 からのカスタムデータ | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| CloudWatch Logs からのカスタムデータ | logs.amazonaws.com | 
| 提供される AWS サービスログ | logs.amazonaws.com | 

**注記**  
`Condition` ブロックは推奨されますが、オプションです。これがないと、ロールが任意のサービスに渡される可能性があります。

### パイプラインルールのアクセス許可 (CloudWatch Logs ソースのみ)
<a name="pipeline-rule-permissions"></a>

ソースとして `cloudwatch_logs` を使用する場合、API 発信者にはパイプラインルールオペレーションのアクセス許可も必要です。`logs:PutPipelineRule` アクセス許可は `CreateTelemetryPipeline` および `UpdateTelemetryPipeline` オペレーションに必須です。`logs:DeletePipelineRule` アクセス許可は `DeleteTelemetryPipeline` オペレーションに必須です。

**Example CloudWatch Logs パイプラインルールの IAM ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PipelineRuleForCloudWatchLogs",
            "Effect": "Allow",
            "Action": [
                "logs:PutPipelineRule",
                "logs:DeletePipelineRule"
            ],
            "Resource": "*"
        }
    ]
}
```

## ソースロールポリシー
<a name="source-role-policies"></a><a name="source-specific-iam-policies"></a><a name="trust-relationships"></a>

各パイプラインには、サービスがデータを読み取るために引き受ける専用の IAM ロールが必要です。以下のサブセクションでは、各ユースケースの完全なポリシー (アクセス許可と信頼) について説明します。

### サードパーティーソース (API Pull)
<a name="third-party-api-pull"></a>

このセクションは、Microsoft Office 365、Microsoft Entra ID、Okta SSO、Palo Alto NGFW、および AWS Secrets Manager に認証情報を保存するその他のベンダー API 統合に適用されます。

**アクセス許可ポリシー**

以下のポリシーでは、ロールが保存済みの API 認証情報を取得することを許可します。

**Example Secrets Manager ソースの IAM ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "secrets-manager-access",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:{{your-region}}:{{your-account-id}}:secret:{{your-secret-name}}*"
        },
        {
            "Sid": "kms-access",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:{{your-region}}:{{your-account-id}}:key/{{your-key-id}}"
        }
    ]
}
```

**注記**  
`kms:Decrypt` ステートメントは、Secrets Manager のシークレットがカスタマーマネージド KMS キーで暗号化されている場合にのみ必要です。

**信頼ポリシー**

**Example API Pull ソースの信頼ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

#### API Pull パイプラインの IAM セットアップを完了する
<a name="api-pull-complete-setup"></a>

次の例は、サードパーティー API Pull パイプラインをエンドツーエンドで作成する上で必要なすべての IAM ポリシーを示しています。

**発信者 ID ポリシー** — `CreateTelemetryPipeline` を呼び出すプリンシパルにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateApiPullPipeline",
            "Effect": "Allow",
            "Action": [
                "observabilityadmin:CreateTelemetryPipeline",
                "iam:PassRole"
            ],
            "Resource": "*"
        }
    ]
}
```

**ソースロールのアクセス許可ポリシー** — パイプラインが引き受けるロールにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SecretsManagerAccess",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:{{your-region}}:{{your-account-id}}:secret:{{your-secret-name}}*"
        }
    ]
}
```

**ソースロールの信頼ポリシー**:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注記**  
パイプラインを作成したら、5 分以内にリソースポリシーも作成する必要があります。「[リソースポリシー](#resource-policies)」を参照してください。

**注記**  
本番稼働用の場合は、「[API 発信者のアクセス許可](#api-caller-permissions)」に示されている条件キーを使用して `iam:PassRole` をスコープダウンします。シークレットがカスタマーマネージド KMS キーを使用している場合は、ソースロールのアクセス許可ポリシーに `kms:Decrypt` を追加します。

### サードパーティーソース (S3 配信)
<a name="third-party-s3-delivery"></a>

このセクションは、S3 バケットにログファイルを配信するサードパーティーベンダー (CrowdStrike Falcon、Wiz、Cisco Umbrella など) に適用されます。

**アクセス許可ポリシー**

次のポリシーでは、ロールが S3 からオブジェクトを読み取って SQS 通知を使用することを許可します。

**Example S3 ソースの IAM ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3-access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::{{your-bucket-name}}/*"
        },
        {
            "Sid": "sqs-access",
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:ChangeMessageVisibility"
            ],
            "Resource": "arn:aws:sqs:{{your-region}}:{{your-account-id}}:{{your-queue-name}}"
        },
        {
            "Sid": "kms-access",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:{{your-region}}:{{your-account-id}}:key/{{your-key-id}}"
        }
    ]
}
```

**注記**  
`kms:Decrypt` ステートメントは、S3 バケットまたは SQS キューが暗号化にカスタマーマネージド KMS キーを使用している場合にのみ必要です。

**信頼ポリシー**

**Example S3 配信ソースの信頼ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

#### S3 配信パイプラインの IAM セットアップを完了する
<a name="s3-delivery-complete-setup"></a>

次の例は、S3 配信パイプラインをエンドツーエンドで作成する上で必要なすべての IAM ポリシーを示しています。

**発信者 ID ポリシー** — `CreateTelemetryPipeline` を呼び出すプリンシパルにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateS3Pipeline",
            "Effect": "Allow",
            "Action": [
                "observabilityadmin:CreateTelemetryPipeline",
                "iam:PassRole"
            ],
            "Resource": "*"
        }
    ]
}
```

**ソースロールのアクセス許可ポリシー** — パイプラインが引き受けるロールにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::{{your-bucket-name}}/*"
        },
        {
            "Sid": "SqsAccess",
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:ChangeMessageVisibility"
            ],
            "Resource": "arn:aws:sqs:{{your-region}}:{{your-account-id}}:{{your-queue-name}}"
        }
    ]
}
```

**ソースロールの信頼ポリシー**:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注記**  
パイプラインを作成したら、5 分以内にリソースポリシーも作成する必要があります。「[リソースポリシー](#resource-policies)」を参照してください。

**注記**  
本番稼働用の場合は、「[API 発信者のアクセス許可](#api-caller-permissions)」に示されている条件キーを使用して `iam:PassRole` をスコープダウンします。S3 バケットまたは SQS キューがカスタマーマネージド KMS キーを使用している場合は、ソースロールのアクセス許可ポリシーに `kms:Decrypt` を追加します。

### S3 からのカスタムデータ
<a name="custom-data-s3"></a>

このセクションは、S3 バケットにログファイルを書き込む独自のアプリケーションまたはインフラストラクチャに適用されます。

IAM セットアップは [サードパーティーソース (S3 配信)](#third-party-s3-delivery) と同じです。同じアクセス許可ポリシーと信頼ポリシーを使用します。パイプラインは、誰がデータを書き込んだかに関係なく、SQS イベント通知を介してバケットから読み取ります。

### CloudWatch Logs からのカスタムデータ
<a name="custom-data-cloudwatch-logs"></a>

このセクションは、CloudWatch Logs ロググループ (Lambda 関数、ECS コンテナ、カスタム EC2 アプリケーションなど) への独自のアプリケーションログ記録に適用されます。

**アクセス許可ポリシー**

次のポリシーでは、ロールが指定されたロググループからのログを処理することを許可します。

**Example CloudWatch Logs ソースの IAM ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "logs-processing-access",
            "Effect": "Allow",
            "Action": [
                "logs:processWithPipeline"
            ],
            "Resource": [
                "arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-01}}",
                "arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-02}}"
            ]
        }
    ]
}
```

このアクセス許可の範囲を縮小するには、`logs:data_source_name` および `logs:data_source_type` 条件キーを使用して、変換を呼び出すことができるパイプラインソースを制限します。`logs:data_source_name` 値はパイプライン設定の `data_source_name` に対応し、`logs:data_source_type` はパイプライン設定の `data_source_type` に対応します。

**Example CloudWatch Logs ソースのアクセス許可ポリシー (条件キーでスコープダウン)**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowProcessWithPipelineScopedDown",
            "Effect": "Allow",
            "Action": "logs:ProcessWithPipeline",
            "Resource": "arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "{{your-account-id}}",
                    "logs:data_source_name": "{{your-source-name}}",
                    "logs:data_source_type": "{{your-source-type}}"
                }
            }
        }
    ]
}
```

**注記**  
CloudWatch Logs ソースの IAM ロールには、信頼ポリシー (`logs.amazonaws.com` がロールを引き受けることを許可) とアクセス許可ポリシー (`logs:ProcessWithPipeline` を付与) の両方が必要です。両方のポリシーがないと、CloudWatch パイプラインは取り込み中にログイベントを変換できません。

**信頼ポリシー**

**Example CloudWatch Logs ソースの信頼ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注記**  
CloudWatch Logs ソースパイプラインにはリソースポリシーは必要ありません。

#### CloudWatch Logs パイプラインの IAM セットアップを完了する
<a name="cloudwatch-logs-complete-setup"></a>

次の例は、CloudWatch Logs パイプラインをエンドツーエンドで作成する上で必要なすべての IAM ポリシーを示しています。

**発信者 ID ポリシー** — `CreateTelemetryPipeline` を呼び出すプリンシパルにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateLogsPipeline",
            "Effect": "Allow",
            "Action": [
                "observabilityadmin:CreateTelemetryPipeline",
                "logs:PutPipelineRule",
                "logs:DeletePipelineRule",
                "iam:PassRole"
            ],
            "Resource": "*"
        }
    ]
}
```

**ソースロールのアクセス許可ポリシー** — パイプラインが引き受けるロールにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "LogsProcessing",
            "Effect": "Allow",
            "Action": [
                "logs:processWithPipeline"
            ],
            "Resource": [
                "arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group}}"
            ]
        }
    ]
}
```

**ソースロールの信頼ポリシー**:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注記**  
本番稼働用の場合は、「[API 発信者のアクセス許可](#api-caller-permissions)」に示されている条件キーを使用して `iam:PassRole` をスコープダウンします。

### 提供される AWS サービスログ
<a name="vended-service-logs"></a>

このセクションは、VPC フローログ、Route 53 クエリログ、その他の AWS の提供されるログタイプなど、CloudWatch Logs に配信される AWS サービスログに適用されます。

IAM セットアップは [CloudWatch Logs からのカスタムデータ](#custom-data-cloudwatch-logs) と同じです。同じアクセス許可ポリシー (ロググループに範囲が縮小された `logs:processWithPipeline`) と同じ信頼ポリシー (`logs.amazonaws.com`) を使用します。

これは `cloudwatch_logs` ソースタイプを使用するため、発信者には `logs:PutPipelineRule` および `logs:DeletePipelineRule` アクセス許可も必要です。「[パイプラインルールのアクセス許可 (CloudWatch Logs ソースのみ)](#pipeline-rule-permissions)」を参照してください。

## リソースポリシー
<a name="resource-policies"></a>

CloudWatch Logs リソースポリシーは、S3 ベースのソースと Secrets Manager ベースのソース (サードパーティー統合) に必要です。CloudWatch Logs ソース (カスタムデータまたは提供されるログ) にはリソースポリシーは**必要ありません**。

`CreateTelemetryPipeline` を呼び出した後、パイプライン ARN を受け取ります。ユーザーは `[logs:PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)` を呼び出して、CloudWatch パイプラインのサービスプリンシパルが設定されたロググループに書き込むことを許可する必要があります。

**時間の制約**  
パイプライン ARN を受信した後、このリソースポリシーを作成するまでには時間制限 (5 分未満) があります。ポリシーの設定前にパイプラインがアクティブになると、データは削除されます。

**Example logs:PutResourcePolicy リクエスト**  

```
{
    "policyName": "resourceArn=arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*",
    "policyDocument": {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
                },
                "Action": [
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                ],
                "Condition": {
                    "StringEquals": {
                        "aws:SourceArn": "arn:aws:observabilityadmin:{{your-region}}:{{your-account-id}}:telemetry-pipeline/{{your-pipeline-id}}"
                    }
                }
            }
        ]
    }
}
```

## リソースポリシーの管理
<a name="managing-resource-policies"></a>

AWS CLI を使用して、CloudWatch パイプラインの CloudWatch Logs リソースポリシーを作成または更新します。

**既存のポリシーがないか確認する方法**

```
aws logs describe-resource-policies \
    --resource-arn arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*
```

**新規ポリシーを作成する方法**

```
aws logs put-resource-policy \
    --region {{your-region}} \
    --policy-name "resourceArn=arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*" \
    --policy-document file://policy.json
```

**既存のポリシーとマージする方法**

リソースポリシーが既に存在する場合は、ポリシードキュメント内の既存の `Statement` 配列に新しいステートメントを追加し、マージされたファイルで `put-resource-policy` を再度呼び出します。

1. 既存のポリシーを取得します。

   ```
   aws logs describe-resource-policies \
       --resource-arn arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*
   ```

1. 新しいステートメントを既存の `Statement` 配列に追加します。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "existing-service.amazonaws.com"
               },
               "Action": [
                   "logs:SomeAction"
               ]
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com"
               },
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:observabilityadmin:{{your-region}}:{{your-account-id}}:telemetry-pipeline/{{your-pipeline-id}}"
                   }
               }
           }
       ]
   }
   ```

1. ポリシーを更新します。

   ```
   aws logs put-resource-policy \
       --region {{your-region}} \
       --policy-name "resourceArn=arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*" \
       --policy-document file://existing-policy.json
   ```

ポリシーが正常に作成または更新されたことを確認します。

```
aws logs describe-resource-policies \
    --resource-arn arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:{{your-log-group-name}}:*
```

次のプレースホルダーを置き換えます。
+ {{your-region}} – AWS リージョン (例: us-east-1)
+ {{your-account-id}} – 12 桁の AWS アカウント ID
+ {{your-log-group-name}} – CloudWatch Logs ロググループ名
+ {{your-pipeline-id}} – (`CreateTelemetryPipeline` によって返される) テレメトリパイプライン ID

## パイプライン条件キー
<a name="pipeline-condition-keys"></a>

CloudWatch パイプラインは、パイプラインを作成できるユーザーとソースロールを引き受けることができるアカウントを制限できる IAM 条件キーをサポートしています。これらの条件キーを使用して、組織全体にガバナンスポリシーを適用します。

### CreateTelemetryPipeline の条件
<a name="create-pipeline-conditions"></a>

ID ポリシーでこれらの条件キーを使用し、プリンシパルが作成できるパイプラインを制御します。

`observabilityadmin:SourceType`  
パイプラインの作成を特定のソースタイプに制限します。サポートされている値は、`cloudwatch_logs`、`s3`、`microsoft_office365`、`okta_sso`、`palo_alto_ngfw` です。

**Example パイプライン作成をソースタイプ別に制限する**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPipelineCreationForSpecificSourceType",
            "Effect": "Allow",
            "Action": "observabilityadmin:CreateTelemetryPipeline",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "observabilityadmin:SourceType": "cloudwatch_logs"
                }
            }
        }
    ]
}
```

### ソースロールの信頼ポリシー条件
<a name="source-role-trust-conditions"></a>

ソースロールの信頼ポリシーでこれらの条件キーを使用し、ロールを引き受けることができるアカウントを制限します。これにより、サービスが別のアカウントに代わって動作する可能性のある混乱した代理攻撃を防ぐことができます。

`aws:SourceAccount`  
特定の AWS アカウントから送信されるリクエストにロールの引き受けを制限します。

`aws:SourceArn`  
特定のリソース ARN (ロググループなど) から送信されるリクエストにロールの引き受けを制限します。

**Example SourceAccount 条件を使用した信頼ポリシー (CloudWatch Logs ソース)**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{your-account-id}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:{{your-region}}:{{your-account-id}}:log-group:*"
                }
            }
        }
    ]
}
```

## AI アシストプロセッサ設定のアクセス許可
<a name="ai-assisted-permissions"></a>

CloudWatch パイプラインコンソールで AI アシストプロセッサ設定を使用するには、IAM プリンシパルに `logs:GeneratePipeline` アクセス許可が必要です。このアクセス許可は、自然言語の説明からのプロセッサ設定の生成を許可します。

**Example AI アシストプロセッサ設定の IAM ポリシー**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGeneratePipeline",
            "Effect": "Allow",
            "Action": "logs:GeneratePipeline",
            "Resource": "*"
        }
    ]
}
```