

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando as condições da política do IAM na Amazon EventBridge
<a name="eb-use-conditions"></a>

Ao conceder permissões, é possível usar a linguagem da política do IAM para especificar as condições de quando uma política deverá entrar em vigor. Por exemplo, é possível ter uma política que será aplicada somente após uma data específica.

Uma condição em uma política consiste em pares de chave/valor. As chaves de condição não fazem distinção entre maiúsculas e minúsculas. 

Se você especificar várias condições ou chaves em uma única condição, todas as condições e chaves deverão ser atendidas EventBridge para conceder permissão. Se você especificar uma única condição com vários valores para uma chave, EventBridge concederá permissão se um dos valores for atendido.

É possível usar espaço reservado ou *variáveis de política* ao especificar as condições. Para obter mais informações, consulte [Variáveis de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/policyvariables.html) no *Guia do usuário do IAM*. Para obter mais informações sobre como especificar condições em uma linguagem de política do IAM, consulte [Condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition) no *Guia do usuário do IAM*.

Por padrão, os usuários e perfis do IAM não podem acessar os [eventos](eb-events.md) em sua conta. Para consumir eventos, um usuário deve ser autorizado para a ação de API `PutRule`. Se você conceder permissão a um usuário ou perfil do IAM para a ação `events:PutRule`, em sua respectiva política, eles poderão criar uma [regra](eb-rules.md) que corresponda a determinados eventos. No entanto, para que a regra seja útil, o usuário também deve ter permissões para a `events:PutTargets` ação porque, se você quiser que a regra faça mais do que publicar uma CloudWatch métrica, você também deve adicionar um [alvo](eb-targets.md) a uma regra.

Você pode fornecer uma condição na declaração de política do usuário ou perfil do IAM que permita criar uma regra que só corresponda a um conjunto específico de origens e tipos de detalhes. Para conceder acesso a origens e tipos específicos de eventos, use as chaves de condição `events:source` e `events:detail-type`.

De modo semelhante, você pode fornecer uma condição na declaração de política do usuário ou perfil do IAM que permita criar uma regra que só corresponda a um recurso específico em suas contas. Para conceder acesso a um recurso específico, use a chave de condição `events:TargetArn`.

## EventBridge chaves de condição
<a name="conditions-table"></a>

A tabela a seguir mostra as chaves de condição e os pares de chaves e valores que você pode usar em uma política em EventBridge.


| Chave de condição | Par de chave/valor | Tipos de avaliação | 
| --- | --- | --- | 
|  leis: SourceAccount  |  A conta na qual a regra especificada por `aws:SourceArn` existe.  |  ID da conta, nulo  | 
|  leis: SourceArn  |  O ARN da regra que está enviando o evento.  |  ARN, nulo  | 
|  events:creatorAccount  |  `"events:creatorAccount":"creatorAccount"` Para*creatorAccount*, use o ID da conta que criou a regra. Use essa condição para autorizar chamadas de API em regras de uma conta específica.  |  creatorAccount, Null  | 
|  events:detail-type  |  `"events:detail-type":"detail-type "` Onde *detail-type* está a string literal para o campo de **tipo de detalhe** do evento, como e. `"AWS API Call via CloudTrail"` `"EC2 Instance State-change Notification"`   |  Tipo de detalhe, nulo  | 
|  eventos: detalhe. eventTypeCode  |  `"events:detail.eventTypeCode":"eventTypeCode"` Para*eventTypeCode*, use a string literal para os **detalhes. eventTypeCode**campo do evento, como`"AWS_ABUSE_DOS_REPORT"`.  |  eventTypeCode, Nulo  | 
|  eventos: detail.service  |  `"events:detail.service":"service"` Para*service*, use a string literal para o campo **detail.service** do evento, como. `"ABUSE"`  |  serviço, Null  | 
|  eventos: detail.userIdentity.principalId  |  `"events:detail.userIdentity.principalId":"principal-id"` Para*principal-id*, use a string literal para o campo **detail.userIdentity.principalId** do evento com o tipo de detalhe, como. `"AWS API Call via CloudTrail"` `"AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName."`  |  Id principal, nulo  | 
|  eventos: eventBusInvocation  |  `"events:eventBusInvocation":"boolean"` Para*boolean*, use true quando uma regra envia um evento para um destino que é um barramento de eventos em outra conta. Use "false" quando uma chamada de API `PutEvents` for usada.  |  eventBusInvocation, Nulo  | 
|  eventos: ManagedBy  |  Usado internamente pelos AWS serviços. Para uma regra criada por um AWS serviço em seu nome, o valor é o nome principal do serviço que criou a regra.  |  Não se destina ao uso nas políticas do cliente.  | 
|  events:source  |  `"events:source":"source "` Use *source* para a string literal do campo de origem do evento, como `"aws.ec2"` ou`"aws.s3"`. Para obter mais valores possíveis para*source*, consulte os exemplos de eventos em[Eventos de AWS serviços](eb-events.md#eb-service-event).  |  Origem, nulo  | 
|  eventos: TargetArn  |  `"events:TargetArn":"target-arn "` Para*target-arn*, use o ARN do destino para a regra, por exemplo. `"arn:aws:lambda:*:*:function:*"`  |  ArrayOfARN, nulo  | 

Por exemplo, declarações de política para EventBridge, consulte[Gerenciando permissões de acesso aos seus EventBridge recursos da Amazon](eb-manage-iam-access.md).

**Topics**
+ [EventBridge chaves de condição](#conditions-table)
+ [EventBridge Especificações de tubos](#eb-pipes-condition-diff)
+ [Exemplo: como usar a condição `creatorAccount`](#eb-events-creator-account)
+ [Exemplo: como usar a condição `eventBusInvocation`](#eb-events-bus-invocation)
+ [Exemplo: como limitar o acesso a uma origem específica](#eb-events-limit-access-control)
+ [Exemplo: como definir várias origens que podem ser usadas em um padrão de evento individualmente](#eb-events-pattern-sources)
+ [Exemplo: como verificar se a origem está definida no padrão de evento](#eb-source-defined-events-pattern)
+ [Exemplo: como definir uma lista de origens permitidas em um padrão de evento com várias origens](#eb-allowed-sources-events-pattern)
+ [Exemplo: como limitar o acesso `PutRule` por `detail.service`](#eb-limit-rule-by-service)
+ [Exemplo: como limitar o acesso `PutRule` por `detail.eventTypeCode`](#eb-limit-rule-by-type-code)
+ [Exemplo: garantir que somente AWS CloudTrail eventos para chamadas de API de uma determinada pessoa `PrincipalId` sejam permitidos](#eb-consume-specific-events)
+ [Exemplo: como limitar o acesso a destinos](#eb-limiting-access-to-targets)

## EventBridge Especificações de tubos
<a name="eb-pipes-condition-diff"></a>

EventBridge O Pipes não oferece suporte a nenhuma chave adicional de condição de política do IAM.

## Exemplo: como usar a condição `creatorAccount`
<a name="eb-events-creator-account"></a>

O exemplo de declaração de política a seguir mostra como usar a condição `creatorAccount` em uma política para permitir a criação de regras somente se a conta especificada como `creatorAccount` for a conta que criou a regra.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleForOwnedRules",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "events:creatorAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

## Exemplo: como usar a condição `eventBusInvocation`
<a name="eb-events-bus-invocation"></a>

A `eventBusInvocation` indica se a invocação se origina de um destino entre contas ou de uma solicitação da API `PutEvents`. O valor é **verdadeiro** quando a invocação resulta de uma regra que inclui um destino entre contas, como quando o destino é um barramento de eventos em outra conta. O valor é **falso** quando a invocação resulta de uma solicitação de API `PutEvents`. O exemplo a seguir indica uma invocação de um destino entre contas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCrossAccountInvocationEventsOnly",
      "Effect": "Allow",
      "Action": "events:PutEvents",
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "events:eventBusInvocation": "true"
        }
      }
    }
  ]
}
```

------

## Exemplo: como limitar o acesso a uma origem específica
<a name="eb-events-limit-access-control"></a>

Os exemplos de política a seguir podem ser anexados a um usuário do IAM. A política A permite a ação de API `PutRule` para todos os eventos, enquanto a Política B permite `PutRule` somente se o padrão de evento da regra que está sendo criada corresponder a eventos do Amazon EC2.

**Política A: permitir todos os eventos**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleForAllEvents",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*"
        }
    ]
    }
```

------

**Política B: permitir eventos apenas a partir do Amazon EC2** 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleForAllEC2Events",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues:StringEquals": {
    "events:source": "aws.ec2"
    }
    }
    }
    ]
    }
```

------

`EventPattern` é um argumento obrigatório para `PutRule`. Portanto, se o usuário com a Política B chamar `PutRule` com um padrão de evento como o seguinte.

```
{
    "source": [ "aws.ec2" ]
}
```

A regra será criada, pois a política permite essa origem específica, que é, `"aws.ec2"`. No entanto, se o usuário com a Política B chamar `PutRule` com um padrão de evento como o seguinte, a criação da regra será negada porque a política não permite essa origem específica: ou seja, `"aws.s3"`.

```
{
    "source": [ "aws.s3" ]
}
```

Basicamente, o usuário com a política B só pode criar uma regra que corresponda aos eventos originados pelo Amazon EC2. Portanto, eles só podem acessar os eventos do Amazon EC2.

Consulte a tabela a seguir para obter uma comparação das Políticas A e B.


| Padrão de evento | Permitido pela Política A | Permitido pela Política B | 
| --- | --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sim  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Sim  |  Não (A origem aws.s3 não é permitida)  | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sim  |  Sim  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sim  |  Não (a origem deve ser especificado)  | 

## Exemplo: como definir várias origens que podem ser usadas em um padrão de evento individualmente
<a name="eb-events-pattern-sources"></a>

A política a seguir permite que um usuário ou perfil do IAM crie uma regra na qual a origem no `EventPattern` é o Amazon EC2 ou o Amazon ECS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleIfSourceIsEC2OrECS",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues:StringEquals": {
    "events:source": [
    "aws.ec2",
    "aws.ecs"
    ]
    }
    }
    }
    ]
    }
```

------

Consulte a tabela a seguir para obter exemplos de padrões de eventos que seriam permitidos ou negados por essa política.


| Padrão de evento | Permitido pela política | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.ecs" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.s3" ]<br />}</pre>  |  Não  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.ecs" ]<br />}</pre>  |  Não  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  Não  | 

## Exemplo: como verificar se a origem está definida no padrão de evento
<a name="eb-source-defined-events-pattern"></a>

A seguinte política permite que usuários somente criem regras com `EventPatterns`, que devem ter o campo de origem. Em outras palavras, um usuário ou perfil do IAM não pode criar uma regra com um `EventPattern` que não forneça uma origem específica.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleIfSourceIsSpecified",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "Null": {
                    "events:source": "false"
                }
            }
        }
    ]
}
```

------

Consulte a tabela a seguir para obter exemplos de padrões de eventos que seriam permitidos ou negados por essa política.


| Padrão de evento | Permitido pela política | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.ecs", "aws.ec2" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Não  | 

## Exemplo: como definir uma lista de origens permitidas em um padrão de evento com várias origens
<a name="eb-allowed-sources-events-pattern"></a>

A política a seguir permite criar que usuários criem regras com `EventPatterns` que podem ter várias origens. Cada origem no padrão de evento deve ser um membro da lista fornecida na condição. Ao usar a condição `ForAllValues`, certifique-se de que pelo menos um dos itens na lista de condições esteja definido.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleIfSourceIsSpecifiedAndIsEitherS3OrEC2OrBoth",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "events:source": [ "aws.ec2", "aws.s3" ]
                },
                "Null": {
                    "events:source": "false"
                }
            }
        }
    ]
}
```

------

Consulte a tabela a seguir para obter exemplos de padrões de eventos que seriam permitidos ou negados por essa política.


| Padrão de evento | Permitido pela política | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.autoscaling" ]<br />}</pre>  |  Não  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Não  | 

## Exemplo: como limitar o acesso `PutRule` por `detail.service`
<a name="eb-limit-rule-by-service"></a>

Você pode restringir um usuário ou perfil do IAM a criar regras apenas para eventos que têm um determinado valor no campo `events:details.service`. O valor de `events:details.service` não é necessariamente o nome de um AWS serviço.

Essa condição de política é útil quando você trabalha com eventos relacionados à segurança ou abuso. AWS Health Ao usar essa condição de política, você pode limitar o acesso a esses alertas confidenciais apenas aos usuários que precisam vê-los.

Por exemplo, a política a seguir permite a criação de regras apenas para eventos nos quais o valor de `events:details.service` é `ABUSE`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleEventsWithDetailServiceEC2",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail.service": "ABUSE"
                }
            }
        }
    ]
}
```

------

## Exemplo: como limitar o acesso `PutRule` por `detail.eventTypeCode`
<a name="eb-limit-rule-by-type-code"></a>

Você pode restringir um usuário ou perfil do IAM a criar regras apenas para eventos que têm um determinado valor no campo `events:details.eventTypeCode`. Essa condição de política é útil quando você trabalha com eventos relacionados à segurança ou abuso. AWS Health Ao usar essa condição de política, você pode limitar o acesso a esses alertas confidenciais apenas aos usuários que precisam vê-los.

 Por exemplo, a política a seguir permite a criação de regras apenas para eventos nos quais o valor de `events:details.eventTypeCode` é `AWS_ABUSE_DOS_REPORT`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleEventsWithDetailServiceEC2",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail.eventTypeCode": "AWS_ABUSE_DOS_REPORT"
                }
            }
        }
    ]
}
```

------

## Exemplo: garantir que somente AWS CloudTrail eventos para chamadas de API de uma determinada pessoa `PrincipalId` sejam permitidos
<a name="eb-consume-specific-events"></a>

Todos os AWS CloudTrail eventos têm o PrincipalId nome do usuário que fez a chamada da API no `detail.userIdentity.principalId` caminho de um evento. Usando a chave de `events:detail.userIdentity.principalId` condição, você pode limitar o acesso de usuários ou funções do IAM aos CloudTrail eventos somente para aqueles provenientes de uma conta específica.

```
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleOnlyForCloudTrailEventsWhereUserIsASpecificIAMUser",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail-type": [ "AWS API Call via CloudTrail" ],
                    "events:detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ]
                }
            }
        }
    ]
}
```

Consulte a tabela a seguir para obter exemplos de padrões de eventos que seriam permitidos ou negados por essa política.


| Padrão de evento | Permitido pela política | 
| --- | --- | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  Não  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ]<br />}</pre>  |  Sim  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName" ]<br />}</pre>  |  Não  | 

## Exemplo: como limitar o acesso a destinos
<a name="eb-limiting-access-to-targets"></a>

Se um usuário ou perfil do IAM tiver a permissão `events:PutTargets`, poderá adicionar qualquer destino na mesma conta às regras que tem permissão para acessar. A seguinte política limita usuários de adicionarem destinos a apenas uma regra específica: `MyRule` na conta `123456789012`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutTargetsOnASpecificRule",
            "Effect": "Allow",
            "Action": "events:PutTargets",
            "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule"
        }
    ]
}
```

------

Para limitar o destino que pode ser adicionado à regra, use a chave de condição `events:TargetArn`. Por exemplo, é possível limitar destinos a funções do Lambda, como no exemplo a seguir.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions",
            "Effect": "Allow",
            "Action": "events:PutTargets",
            "Resource": "arn:aws:events:us-east-1:123456789012:rule/rule-name",
            "Condition": {
            "ForAnyValue:ArnLike": {
                    "events:TargetArn": "arn:aws:lambda:*:*:function:*"
                }
            }
        }
    ]
}
```

------