

# Políticas e permissões do IAM para pipelines do CloudWatch
<a name="pipeline-iam-reference"></a>

Esta seção fornece os requisitos do IAM para os pipelines do CloudWatch. As permissões variam conforme sua fonte de dados e o método de integração.

A tabela mostrada a seguir ajudará você a identificar quais seções do IAM se aplicam ao seu caso de uso.


| Caso de uso | Método de integração | Tipo de fonte na configuração de pipeline | Seções do IAM que você precisa | 
| --- | --- | --- | --- | 
| [Integrações de terceiros (API Pull)](data-sources-third-party.md) | O pipeline extrai dados da API do fornecedor usando credenciais armazenadas | microsoft\_office365, okta\_sso, palo\_alto\_ngfw, etc. | [Permissões do chamador de API](#api-caller-permissions) \+ [Fontes de terceiros (API Pull)](#third-party-api-pull) \+ [Políticas de recursos](#resource-policies) | 
| [Integrações de terceiros (entrega S3)](data-sources-third-party.md) | O fornecedor entrega arquivos ao seu bucket do S3 | s3 | [Permissões do chamador de API](#api-caller-permissions) \+ [Fontes de terceiros (entrega S3)](#third-party-s3-delivery) \+ [Políticas de recursos](#resource-policies) | 
| [Dados personalizados do S3](data-sources-custom.md) | Seus aplicativos gravam no S3 e o pipeline lê do bucket | s3 | [Permissões do chamador de API](#api-caller-permissions) \+ [Dados personalizados do S3](#custom-data-s3) \+ [Políticas de recursos](#resource-policies) | 
| [Dados personalizados do CloudWatch Logs](data-sources-custom.md) | Seus aplicativos se logam a um grupo de logs do CloudWatch Logs | cloudwatch\_logs | [Permissões do chamador de API](#api-caller-permissions) \+ [Dados personalizados do CloudWatch Logs](#custom-data-cloudwatch-logs) | 
| [Logs fornecidos pelo serviço da AWS](data-sources-aws-services.md) | Os serviços da AWS entregam logs para o CloudWatch Logs (VPC Flow Logs, Route 53) | cloudwatch\_logs | [Permissões do chamador de API](#api-caller-permissions) \+ [Logs fornecidos pelo serviço da AWS](#vended-service-logs) | 

**nota**  
As fontes baseadas em S3 (`s3`) demandam uma política de recursos após a criação do pipeline. As fontes do CloudWatch Logs (`cloudwatch_logs`) não.

## Permissões do chamador de API
<a name="api-caller-permissions"></a>

A entidade principal do IAM que chama `CreateTelemetryPipeline` precisa da permissão `iam:PassRole` para todas as funções referenciadas na configuração do pipeline.

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

Substitua {{service-principal}} pelo valor da tabela mostrada a seguir com base no seu caso de uso.


| Caso de uso | Valor da entidade principal do serviço | 
| --- | --- | 
| Terceiros (API Pull) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Terceiros (entrega S3) | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Dados personalizados do S3 | telemetry-pipelines.observabilityadmin.amazonaws.com | 
| Dados personalizados do CloudWatch Logs | logs.amazonaws.com | 
| Logs fornecidos pelo serviço da AWS | logs.amazonaws.com | 

**nota**  
O bloqueio de `Condition` é recomendado, mas opcional. Sem isso, o perfil pode ser passado para qualquer serviço.

### Permissões de regras do pipeline (somente fontes do CloudWatch Logs)
<a name="pipeline-rule-permissions"></a>

Ao usar `cloudwatch_logs` como fonte, o chamador da API também precisa de permissões para operações de regras do pipeline. A permissão `logs:PutPipelineRule` é necessária para as operações `CreateTelemetryPipeline` e `UpdateTelemetryPipeline`. A permissão `logs:DeletePipelineRule` é necessária para as operações `DeleteTelemetryPipeline`.

**Example Política do IAM para regras de pipeline do CloudWatch Logs**  

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

## Políticas da função de origem
<a name="source-role-policies"></a><a name="source-specific-iam-policies"></a><a name="trust-relationships"></a>

Cada pipeline exige um perfil do IAM dedicado assumido pelo serviço para ler seus dados. As subseções apresentadas a seguir disponibilizam as políticas completas (permissão e confiança) para cada caso de uso.

### Fontes de terceiros (API Pull)
<a name="third-party-api-pull"></a>

Esta seção se aplica ao Microsoft Office 365, Microsoft Entra ID, Okta SSO, Palo Alto NGFW e a integrações de API de outros fornecedores que armazenam credenciais no Secrets Manager da AWS.

**Política de permissão**

A política apresentada a seguir permite que a função recupere suas credenciais de API armazenadas.

**Example Política do IAM para fontes do 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**  
A instrução `kms:Decrypt` só é necessária se o seu segredo no Secrets Manager for criptografado com uma chave do KMS gerenciada pelo cliente.

**Política de confiança**

**Example Política de confiança para fontes de API Pull**  

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

#### Configuração completa do IAM para os pipelines de API Pull
<a name="api-pull-complete-setup"></a>

O exemplo a seguir mostra todas as políticas do IAM necessárias para criar um pipeline completo de API Pull de terceiros.

**Política de identidade do chamador** — anexe à chamada `CreateTelemetryPipeline` da entidade principal:

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

**Política de permissão do perfil de origem** — anexe ao perfil que o pipeline assume:

```
{
    "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 confiança do perfil de origem**:

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

**nota**  
Depois de criar o pipeline, você também deve criar uma política de recursos em cinco minutos. Consulte [Políticas de recursos](#resource-policies).

**nota**  
Para uso na produção, defina o escopo `iam:PassRole` usando as chaves de condição mostradas em [Permissões do chamador de API](#api-caller-permissions). Se seu segredo usa uma chave KMS gerenciada pelo cliente, adicione `kms:Decrypt` à política de permissão do perfil de origem.

### Fontes de terceiros (entrega S3)
<a name="third-party-s3-delivery"></a>

Esta seção se aplica a qualquer fornecedor terceirizado que entregue arquivos de log ao seu bucket S3 (por exemplo, CrowdStrike Falcon, Wiz ou Cisco Umbrella).

**Política de permissão**

A política apresentada a seguir permite que a função leia objetos do S3 e consuma notificações do SQS.

**Example Política do IAM para fontes do 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**  
A instrução `kms:Decrypt` só é necessária se o bucket do S3 ou a fila do SQS usar uma chave KMS gerenciada pelo cliente para criptografia.

**Política de confiança**

**Example Política de confiança para fontes de entrega do S3**  

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

#### Configuração completa do IAM para os pipelines de entrega do S3
<a name="s3-delivery-complete-setup"></a>

O exemplo a seguir mostra todas as políticas do IAM necessárias para criar um pipeline completo de entrega do S3.

**Política de identidade do chamador** — anexe à chamada `CreateTelemetryPipeline` da entidade principal:

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

**Política de permissão do perfil de origem** — anexe ao perfil que o pipeline assume:

```
{
    "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 confiança do perfil de origem**:

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

**nota**  
Depois de criar o pipeline, você também deve criar uma política de recursos em 5 minutos. Consulte [Políticas de recursos](#resource-policies).

**nota**  
Para uso na produção, defina o escopo `iam:PassRole` usando as chaves de condição mostradas em [Permissões do chamador de API](#api-caller-permissions). Se o bucket do S3 ou a fila do SQS usar uma chave KMS gerenciada pelo cliente, adicione `kms:Decrypt` à política de permissão do perfil de origem.

### Dados personalizados do S3
<a name="custom-data-s3"></a>

Esta seção se aplica a seus próprios aplicativos ou infraestrutura que gravam arquivos de log em um bucket do S3.

A configuração do IAM é idêntica a [Fontes de terceiros (entrega S3)](#third-party-s3-delivery). Use a mesma política de permissões e política de confiança. O pipeline lê seu bucket por meio de notificações de eventos do SQS, independentemente de quem gravou os dados.

### Dados personalizados do CloudWatch Logs
<a name="custom-data-cloudwatch-logs"></a>

Esta seção se aplica aos seus próprios aplicativos que fazem login em um grupo de logs do CloudWatch Logs (por exemplo, funções do Lambda, contêineres ECS ou aplicativos EC2 personalizados).

**Política de permissão**

A política a seguir permite que o perfil processe logs de seus grupos de logs especificados.

**Example Política do IAM para fontes do CloudWatch Logs**  

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

Você pode definir o escopo dessa permissão usando as chaves de condição `logs:data_source_name` e `logs:data_source_type` para restringir quais fontes de pipeline podem invocar transformações. O valor `logs:data_source_name` corresponde a `data_source_name` na configuração do pipeline e `logs:data_source_type` corresponde a `data_source_type` na configuração do pipeline.

**Example Política de permissões para fontes do CloudWatch Logs (escopo definido com chaves de condição)**  

```
{
    "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**  
O perfil do IAM para fontes do CloudWatch Logs exige tanto a política de confiança (para permitir que `logs.amazonaws.com` assuma o perfil) quanto a política de permissão (para conceder `logs:ProcessWithPipeline`). Sem ambas as políticas, os pipelines do CloudWatch não podem transformar eventos de log durante a ingestão.

**Política de confiança**

**Example Política de confiança para fontes do CloudWatch Logs**  

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

**nota**  
Nenhuma política de recursos é necessária para os pipelines de fonte do CloudWatch Logs.

#### Configuração completa do IAM para os pipelines do CloudWatch Logs
<a name="cloudwatch-logs-complete-setup"></a>

O exemplo a seguir mostra todas as políticas do IAM necessárias para criar um pipeline completo do CloudWatch Logs.

**Política de identidade do chamador** — anexe à chamada `CreateTelemetryPipeline` da entidade principal:

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

**Política de permissão do perfil de origem** — anexe ao perfil que o pipeline assume:

```
{
    "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 confiança do perfil de origem**:

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

**nota**  
Para uso na produção, defina o escopo `iam:PassRole` usando as chaves de condição mostradas em [Permissões do chamador de API](#api-caller-permissions).

### Logs fornecidos pelo serviço da AWS
<a name="vended-service-logs"></a>

Esta seção se aplica aos logs de serviço da AWS entregues ao CloudWatch Logs, como VPC Flow Logs, logs de consulta do Route 53 e outros tipos de logs da AWS fornecidos.

A configuração do IAM é idêntica a [Dados personalizados do CloudWatch Logs](#custom-data-cloudwatch-logs). Use a mesma política de permissão (com escopo de `logs:processWithPipeline` para o grupo de logs) e a mesma política de confiança (`logs.amazonaws.com`).

Como isso usa o tipo de fonte `cloudwatch_logs`, o chamador também precisa das permissões `logs:PutPipelineRule` e `logs:DeletePipelineRule`. Consulte [Permissões de regras do pipeline (somente fontes do CloudWatch Logs)](#pipeline-rule-permissions).

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

As políticas de recursos do CloudWatch Logs são necessárias para fontes baseadas em S3 e no Secrets Manager (integrações de terceiros). As políticas de recursos **não** são necessárias para as fontes do CloudWatch Logs (dados personalizados ou logs fornecidos).

Depois de chamar `CreateTelemetryPipeline`, você receberá o ARN de um pipeline. Em seguida, você deve chamar `[logs:PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)` para permitir que a entidade principal de serviço dos pipelines do CloudWatch gravem no grupo de logs configurado.

**Restrições de tempo**  
Você tem menos de 5 minutos para criar a política de recursos depois de receber o ARN do pipeline. Se o pipeline ficar ativo antes da implementação da política, os dados serão descartados.

**Example logs:PutResourcePolicy request**  

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

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

Use a CLI da AWS para criar ou atualizar as políticas de recursos do CloudWatch Logs para pipelines do CloudWatch.

**Para verificar as políticas existentes**

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

**Para criar uma política do**

```
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 unir com uma política existente**

Se já existir uma política de recursos, adicione a nova instrução à matriz `Statement` existente no documento de política e, em seguida, chame `put-resource-policy` novamente com o arquivo mesclado.

1. Recuperar a 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. Adicione a nova instrução à 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. Atualizar a 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 a política foi criada ou atualizada com sucesso:

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

Substitua os seguintes espaços reservados:
+ {{your-region}}: a região da AWS (p. ex., us-east-1)
+ {{your-account-id}}: o ID de 12 dígitos da sua conta da AWS
+ {{your-log-group-name}}: o nome do grupo de logs do CloudWatch Logs
+ {{your-pipeline-id}}: o ID do pipeline de telemetria (retornado por `CreateTelemetryPipeline`)

## Chaves de condição do pipeline
<a name="pipeline-condition-keys"></a>

Os pipelines do CloudWatch são compatíveis com chaves de condição do IAM que permitem restringir quem pode criar pipelines e quais contas podem assumir perfis de fonte. Use essas chaves de condição para aplicar políticas de governança em toda a sua organização.

### Condições do CreateTelemetryPipeline
<a name="create-pipeline-conditions"></a>

Use essas chaves de condição nas políticas de identidade para controlar quais pipelines uma entidade principal pode criar.

`observabilityadmin:SourceType`  
Restringe a criação de pipelines a tipos específicos de fonte. Os valores compatíveis incluem `cloudwatch_logs`, `s3`, `microsoft_office365`, `okta_sso` e `palo_alto_ngfw`.

**Example Restrição de criação de pipelines por tipo de fonte**  

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

### Condições da política de confiança do perfil de origem
<a name="source-role-trust-conditions"></a>

Use essas chaves de condição na política de confiança do seu perfil de origem para restringir qual conta pode assumir o perfil. Isso evita ataques “confused deputy”, nos quais o serviço pode agir em nome de uma conta diferente.

`aws:SourceAccount`  
Restringe a suposição de perfis às solicitações provenientes de uma conta específica da AWS.

`aws:SourceArn`  
Restringe a suposição de perfis às solicitações originadas de um ARN de recurso específico (por exemplo, um grupo de logs).

**Example Política de confiança com condição SourceAccount (fontes do 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:*"
                }
            }
        }
    ]
}
```

## Permissões de configuração do processador assistida por IA
<a name="ai-assisted-permissions"></a>

Para usar a configuração do processador assistida por IA no console de pipelines do CloudWatch, a entidade principal do IAM deve ter a permissão `logs:GeneratePipeline`. Essa permissão autoriza a geração de configurações do processador de descrições em linguagem natural.

**Example Política do IAM para configuração de processador assistida por IA**  

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