

# Permisos y políticas de IAM para canalizaciones de CloudWatch
<a name="pipeline-iam-reference"></a>

En esta sección se describen los requisitos de IAM para las canalizaciones de CloudWatch. Los permisos varían según el origen de datos y el método de integración.

La siguiente tabla le ayuda a identificar qué secciones de IAM se aplican a su caso de uso.


| Caso de uso | Método de integración | Tipo de origen en la configuración de la canalización | Secciones de IAM necesarias | 
| --- | --- | --- | --- | 
| [Integraciones de terceros (extracción mediante API)](data-sources-third-party.md) | La canalización extrae datos de la API del proveedor mediante credenciales almacenadas | microsoft\_office365, okta\_sso, palo\_alto\_ngfw, etc.: | [Permisos para intermediarios que llaman a la API](#api-caller-permissions) \+ [Orígenes de terceros (extracción mediante API)](#third-party-api-pull) \+ [Políticas de recursos](#resource-policies) | 
| [Integraciones de terceros (entrega a S3)](data-sources-third-party.md) | El proveedor entrega archivos al bucket de S3 | s3 | [Permisos para intermediarios que llaman a la API](#api-caller-permissions) \+ [Orígenes de terceros (entrega a S3)](#third-party-s3-delivery) \+ [Políticas de recursos](#resource-policies) | 
| [Datos personalizados desde S3](data-sources-custom.md) | Las aplicaciones escriben datos en S3 y la canalización lee datos del bucket | s3 | [Permisos para intermediarios que llaman a la API](#api-caller-permissions) \+ [Datos personalizados desde S3](#custom-data-s3) \+ [Políticas de recursos](#resource-policies) | 
| [Datos personalizados desde Registros de CloudWatch](data-sources-custom.md) | Las aplicaciones envían registros a un grupo de registro de Registros de CloudWatch | cloudwatch\_logs | [Permisos para intermediarios que llaman a la API](#api-caller-permissions) \+ [Datos personalizados desde Registros de CloudWatch](#custom-data-cloudwatch-logs) | 
| [Registros de servicios proporcionados por AWS](data-sources-aws-services.md) | Los servicios de AWS entregan registros a Registros de CloudWatch (registros de flujo de VPC, Route 53) | cloudwatch\_logs | [Permisos para intermediarios que llaman a la API](#api-caller-permissions) \+ [Registros de servicios proporcionados por AWS](#vended-service-logs) | 

**nota**  
Los orígenes basados en S3 (`s3`) requieren una política de recursos después de crear la canalización. Los orígenes de Registros de CloudWatch (`cloudwatch_logs`) no la requieren.

## Permisos para intermediarios que llaman a la API
<a name="api-caller-permissions"></a>

La entidad principal de IAM que llama a `CreateTelemetryPipeline` necesita el permiso `iam:PassRole` para cualquier rol al que se haga referencia en la configuración de la canalización.

**Example Plantilla de política 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/*"
                    ]
                }
            }
        }
    ]
}
```

Sustituya {{service-principal}} por el valor de la siguiente tabla según su caso de uso.


| Caso de uso | Valor de entidad principal de servicio | 
| --- | --- | 
| Terceros (extracción mediante API) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Terceros (entrega a S3) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Datos personalizados desde S3 | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Datos personalizados desde Registros de CloudWatch | logs.amazonaws.com | 
| Registros de servicios proporcionados por AWS | logs.amazonaws.com | 

**nota**  
Se recomienda incluir el bloque `Condition`, aunque es opcional. Sin este bloque, el rol puede pasarse a cualquier servicio.

### Permisos de las reglas de canalización (solo para orígenes de Registros de CloudWatch)
<a name="pipeline-rule-permissions"></a>

Cuando se utiliza `cloudwatch_logs` como origen, quien realiza la llamada a la API también necesita permisos para las operaciones relacionadas con las reglas de canalización. El permiso `logs:PutPipelineRule` es necesario para las operaciones `CreateTelemetryPipeline` y `UpdateTelemetryPipeline`. El permiso `logs:DeletePipelineRule` es necesario para las operaciones `DeleteTelemetryPipeline`.

**Example Política de IAM para reglas de canalización de Registros de CloudWatch**  

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

## Políticas del rol de origen
<a name="source-role-policies"></a><a name="source-specific-iam-policies"></a><a name="trust-relationships"></a>

Cada canalización requiere un rol de IAM dedicado que el servicio asume para leer los datos. En las siguientes subsecciones se presentan las políticas de permisos y confianza completas para cada caso de uso.

### Orígenes de terceros (extracción mediante API)
<a name="third-party-api-pull"></a>

Esta sección se aplica a Microsoft Office 365, Microsoft Entra ID, Okta SSO, Palo Alto NGFW y otras integraciones con API de proveedores que almacenan credenciales en AWS Secrets Manager.

**Política de permisos**

La siguiente política permite que el rol recupere las credenciales de API almacenadas.

**Example Política de IAM para orígenes de Secrets Manager**  

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

**nota**  
La instrucción `kms:Decrypt` solo es necesaria si el secreto de Secrets Manager está cifrado con una clave de KMS administrada por el cliente.

**Política de confianza**

**Example Política de confianza para orígenes de extracción mediante API**  

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

#### Configuración completa de IAM para canalizaciones de extracción mediante API
<a name="api-pull-complete-setup"></a>

El siguiente ejemplo muestra todas las políticas de IAM necesarias para crear de principio a fin una canalización de extracción mediante una API de terceros.

**Política de identidad de quien realiza la llamada**: asóciela a la entidad principal que llama a `CreateTelemetryPipeline`:

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

**Política de permisos del rol de origen**: asóciela al rol que asume la canalización:

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

**Política de confianza del rol de origen**:

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

**nota**  
Después de crear la canalización, también debe crear una política de recursos en un plazo de 5 minutos. Consulte [Políticas de recursos](#resource-policies).

**nota**  
Para un entorno de producción, limite el alcance de `iam:PassRole` mediante las claves de condición que se muestran en [Permisos para intermediarios que llaman a la API](#api-caller-permissions). Si el secreto utiliza una clave de KMS administrada por el cliente, agregue `kms:Decrypt` a la política de permisos del rol de origen.

### Orígenes de terceros (entrega a S3)
<a name="third-party-s3-delivery"></a>

Esta sección se aplica a cualquier proveedor externo que entregue archivos de registro al bucket de S3 (por ejemplo, CrowdStrike Falcon, Wiz o Cisco Umbrella).

**Política de permisos**

La siguiente política permite que el rol lea objetos de S3 y consuma notificaciones de SQS.

**Example Política de IAM para orígenes de S3**  

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

**nota**  
La instrucción `kms:Decrypt` solo es necesaria si el bucket de S3 o la cola de SQS utilizan una clave de KMS administrada por el cliente para el cifrado.

**Política de confianza**

**Example Política de confianza para orígenes de entrega a S3**  

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

#### Configuración completa de IAM para canalizaciones de entrega a S3
<a name="s3-delivery-complete-setup"></a>

El siguiente ejemplo muestra todas las políticas de IAM necesarias para crear de principio a fin una canalización de entrega a S3.

**Política de identidad de quien realiza la llamada**: asóciela a la entidad principal que llama a `CreateTelemetryPipeline`:

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

**Política de permisos del rol de origen**: asóciela al rol que asume la canalización:

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

**Política de confianza del rol de origen**:

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

**nota**  
Después de crear la canalización, también debe crear una política de recursos en un plazo de 5 minutos. Consulte [Políticas de recursos](#resource-policies).

**nota**  
Para un entorno de producción, limite el alcance de `iam:PassRole` mediante las claves de condición que se muestran en [Permisos para intermediarios que llaman a la API](#api-caller-permissions). Si el bucket de S3 o la cola de SQS utilizan una clave de KMS administrada por el cliente, agregue `kms:Decrypt` a la política de permisos del rol de origen.

### Datos personalizados desde S3
<a name="custom-data-s3"></a>

Esta sección se aplica a aplicaciones o infraestructura propias que escriben archivos de registro en un bucket de S3.

La configuración de IAM es idéntica a [Orígenes de terceros (entrega a S3)](#third-party-s3-delivery). Utilice la misma política de permisos y la misma política de confianza. La canalización lee datos del bucket mediante notificaciones de eventos de SQS, independientemente de quién haya escrito los datos.

### Datos personalizados desde Registros de CloudWatch
<a name="custom-data-cloudwatch-logs"></a>

Esta sección se aplica a sus propias aplicaciones que envían registros a un grupo de registro de Registros de CloudWatch (por ejemplo, funciones de Lambda, contenedores de ECS o aplicaciones personalizadas en EC2).

**Política de permisos**

La siguiente política permite que el rol procese registros de los grupos de registro especificados.

**Example Política de IAM para orígenes de Registros de CloudWatch**  

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

Puede limitar el alcance de este permiso mediante las claves de condición `logs:data_source_name` y`logs:data_source_type` para restringir qué orígenes de canalización pueden invocar transformaciones. El valor de `logs:data_source_name` corresponde a `data_source_name` en la configuración de la canalización y `logs:data_source_type` corresponde a `data_source_type` en la configuración de la canalización.

**Example Política de permisos para orígenes de Registros de CloudWatch (con alcance limitado mediante claves de condición)**  

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

**nota**  
El rol de IAM para orígenes de Registros de CloudWatch requiere tanto la política de confianza, para permitir que `logs.amazonaws.com` asuma el rol, como la política de permisos, para conceder `logs:ProcessWithPipeline`. Sin ambas políticas, las canalizaciones de CloudWatch no pueden transformar eventos de registro durante la ingesta.

**Política de confianza**

**Example Política de confianza para orígenes de Registros de CloudWatch**  

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

**nota**  
No se requiere una política de recursos para las canalizaciones con orígenes de Registros de CloudWatch.

#### Configuración completa de IAM para canalizaciones de Registros de CloudWatch
<a name="cloudwatch-logs-complete-setup"></a>

El siguiente ejemplo muestra todas las políticas de IAM necesarias para crear de principio a fin una canalización de Registros de CloudWatch.

**Política de identidad de quien realiza la llamada**: asóciela a la entidad principal que llama a `CreateTelemetryPipeline`:

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

**Política de permisos del rol de origen**: asóciela al rol que asume la canalización:

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

**Política de confianza del rol de origen**:

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

**nota**  
Para un entorno de producción, limite el alcance de `iam:PassRole` mediante las claves de condición que se muestran en [Permisos para intermediarios que llaman a la API](#api-caller-permissions).

### Registros de servicios proporcionados por AWS
<a name="vended-service-logs"></a>

Esta sección se aplica a los registros de servicios de AWS entregados a Registros de CloudWatch, como los registros de flujo de VPC, los registros de consultas de Route 53 y otros tipos de registros proporcionados por AWS.

La configuración de IAM es idéntica a [Datos personalizados desde Registros de CloudWatch](#custom-data-cloudwatch-logs). Use la misma política de permisos (`logs:processWithPipeline` limitada al grupo de registro) y la misma política de confianza (`logs.amazonaws.com`).

Debido a que utiliza el tipo de origen `cloudwatch_logs`, quien realiza la llamada también necesita los permisos `logs:PutPipelineRule` y `logs:DeletePipelineRule`. Consulte [Permisos de las reglas de canalización (solo para orígenes de Registros de CloudWatch)](#pipeline-rule-permissions).

## Políticas de recursos
<a name="resource-policies"></a>

Las políticas de recursos de Registros de CloudWatch son necesarias para los orígenes basados en S3 y los orígenes basados en Secrets Manager (integraciones de terceros). **No** se requieren políticas de recursos para los orígenes de Registros de CloudWatch (datos personalizados o registros proporcionados).

Después de llamar a `CreateTelemetryPipeline`, recibirá un ARN de canalización. A continuación, debe llamar a `[logs:PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)` para permitir que la entidad principal de servicio de las canalizaciones de CloudWatch escriba en el grupo de registro configurado.

**Restricción de la nomenclatura**  
Dispone de menos de 5 minutos después de recibir el ARN de la canalización para crear esta política de recursos. Si la canalización se activa antes de que se establezca la política, se eliminarán los datos.

**Example Solicitud 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}}"
                    }
                }
            }
        ]
    }
}
```

## Administración de políticas de recursos
<a name="managing-resource-policies"></a>

Utilice la CLI de AWS para crear o actualizar las políticas de recursos de Registros de CloudWatch para las canalizaciones de CloudWatch.

**Para comprobar las políticas existentes**

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

**Creación de una nueva política de**

```
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
```

**Para combinar con una política existente**

Si ya existe una política de recursos, agregue la nueva instrucción a la matriz `Statement` existente en el documento de política y, a continuación, vuelva a llamar a `put-resource-policy` con el archivo combinado.

1. Recupere la política existente:

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

1. Agregue la nueva instrucción a la matriz `Statement` existente:

   ```
   {
       "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. Actualice la política:

   ```
   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
   ```

Confirme que la política se haya creado o actualizado correctamente:

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

Reemplace los siguientes marcadores de posición:
+ {{your-region}}: la región de AWS (por ejemplo, us-east-1)
+ {{your-account-id}}: el ID de la cuenta de AWS de 12 dígitos
+ {{your-log-group-name}}: el nombre del grupo de registro de Registros de CloudWatch
+ {{your-pipeline-id}}: el ID de la canalización de telemetría (devuelto por `CreateTelemetryPipeline`)

## Claves de condición de canalización
<a name="pipeline-condition-keys"></a>

Las canalizaciones de CloudWatch admiten claves de condición de IAM que permiten restringir quién puede crear canalizaciones y qué cuentas pueden asumir roles de origen. Utilice estas claves de condición para aplicar políticas de gobernanza en toda su organización.

### Condiciones de CreateTelemetryPipeline
<a name="create-pipeline-conditions"></a>

Utilice estas claves de condición en las políticas de identidad para controlar qué canalizaciones puede crear una entidad principal.

`observabilityadmin:SourceType`  
Restringe la creación de canalizaciones a tipos de origen específicos. Los valores admitidos son `cloudwatch_logs`, `s3`, `microsoft_office365`, `okta_sso` y `palo_alto_ngfw`.

**Example Restricción de la creación de canalizaciones por tipo de origen**  

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

### Condiciones de la política de confianza del rol de origen
<a name="source-role-trust-conditions"></a>

Utilice estas claves de condición en la política de confianza del rol de origen para restringir qué cuenta puede asumir el rol. Esto ayuda a prevenir ataques de intermediario confundido, en los que el servicio podría actuar en nombre de una cuenta diferente.

`aws:SourceAccount`  
Restringe la asunción del rol a solicitudes que se originan en una cuenta de AWS específica.

`aws:SourceArn`  
Restringe la asunción del rol a solicitudes que se originan en un ARN de recurso específico (por ejemplo, un grupo de registro).

**Example Política de confianza con la condición SourceAccount (orígenes de Registros de CloudWatch)**  

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

## Permisos de la configuración de procesadores asistida por IA
<a name="ai-assisted-permissions"></a>

Para usar la configuración de procesadores asistida por IA en la consola de canalizaciones de CloudWatch, la entidad principal de IAM debe tener el permiso `logs:GeneratePipeline`. Este permiso permite la generación de configuraciones de procesadores a partir de descripciones en lenguaje natural.

**Example Política de IAM para la configuración de procesadores asistida por IA**  

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