

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 políticas baseadas em recursos para a Amazon EventBridge
<a name="eb-use-resource-based"></a>

Quando uma [regra](eb-rules.md) é executada EventBridge, todos os [alvos](eb-targets.md) associados à regra são invocados. As regras podem invocar AWS Lambda funções, publicar em tópicos do Amazon SNS ou retransmitir o evento para os streams do Kinesis. Para fazer chamadas de API com base nos recursos que você possui, EventBridge precisa das permissões apropriadas. Para recursos do Lambda, Amazon SNS, Amazon SQS e CloudWatch Amazon Logs, usa políticas baseadas em recursos. EventBridge [Para streams do Kinesis, EventBridge usa políticas baseadas em identidade.](eb-use-identity-based.md)

**Importante**  
Para destinos que usam políticas baseadas em recursos (Lambda, Amazon SNS, Amazon SQS e CloudWatch Amazon Logs), não especifique um na configuração de destino. `RoleArn` Quando você especifica um `RoleArn` para esses tipos de destino, a entrega do evento pode falhar, especialmente para destinos AWS KMS do Amazon SQS e do Amazon SNS com criptografia ativada. Use políticas baseadas em recursos somente para esses alvos.

Você usa o AWS CLI para adicionar permissões aos seus alvos. Para obter informações sobre como instalar e configurar o AWS CLI, consulte Como [configurar o AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) no *Guia do AWS Command Line Interface usuário*.

**Topics**
+ [Permissões do Amazon API Gateway](#eb-api-gateway-permissions)
+ [CloudWatch Permissões de registros](#eb-cloudwatchlogs-permissions)
+ [AWS Lambda permissões](#eb-lambda-permissions)
+ [Permissões do Amazon SNS](#eb-sns-permissions)
+ [Permissões do Amazon SQS](#eb-sqs-permissions)
+ [EventBridge Especificações de tubos](#eb-pipes-identity-diff)

## Permissões do Amazon API Gateway
<a name="eb-api-gateway-permissions"></a>

Para invocar seu endpoint do Amazon API Gateway usando uma EventBridge regra, adicione a seguinte permissão à política do seu endpoint do API Gateway.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "execute-api:Invoke",
            "Condition": {
                "ArnEquals": {
                "aws:SourceArn": "arn:aws:events:us-east-1:123456789012:rule/rule-name"
                }
            },
            "Resource": [
            "arn:aws:execute-api:us-east-1:123456789012:API-id/stage/GET/api"
            ]
        }
    ]
}
```

------

## CloudWatch Permissões de registros
<a name="eb-cloudwatchlogs-permissions"></a>

Quando o CloudWatch Logs é o alvo de uma regra, EventBridge cria fluxos de registro e o CloudWatch Logs armazena o texto dos eventos como entradas de registro. EventBridge Para permitir a criação do fluxo de registros e o registro dos eventos, CloudWatch os registros devem incluir uma política baseada em recursos que permita EventBridge a CloudWatch gravação nos registros.

Se você usar o Console de gerenciamento da AWS para adicionar CloudWatch registros como destino de uma regra, a política baseada em recursos será criada automaticamente. Se você usar o AWS CLI para adicionar o destino e a política ainda não existir, você deverá criá-la.

O exemplo de política baseada em recursos a seguir permite EventBridge gravar em todos os grupos de registros que têm nomes que começam com. `/aws/events/` Se você usar uma política de nomenclatura diferente para esses tipos de registros, ajuste o ARN do recurso adequadamente.

```
{
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "events.amazonaws.com",
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "logs:CreateLogStream",
    "logs:PutLogEvents"
  ],
  "Resource": "arn:aws:logs:region:account-id:log-group:/aws/events/*:*"
}
```

**Para criar uma política de recursos para o CloudWatch Logs usando o AWS CLI**
+ Em um prompt de comando, digite o seguinte comando.

  ```
  aws logs put-resource-policy --policy-name EventBridgeToCWLogsPolicy \
  --policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["events.amazonaws.com","delivery.logs.amazonaws.com"]},"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Resource":"arn:aws:logs:region:account-id:log-group:/aws/events/*:*"}]}'
  ```

Para mais informações, consulte o *guia [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)de referência da API CloudWatch Logs*.

## AWS Lambda permissões
<a name="eb-lambda-permissions"></a>

Para invocar sua AWS Lambda função usando uma EventBridge regra, adicione a seguinte permissão à política da sua função Lambda.

```
{
  "Effect": "Allow",
  "Action": "lambda:InvokeFunction",
  "Resource": "arn:aws:lambda:region:account-id:function:function-name",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Condition": {
    "ArnLike": {
      "AWS:SourceArn": "arn:aws:events:region:account-id:rule/rule-name"
    }
  },
  "Sid": "InvokeLambdaFunction"
}
```

**Para adicionar as permissões acima que permitem EventBridge invocar funções Lambda usando o AWS CLI**
+ Em um prompt de comando, digite o seguinte comando.

  ```
  aws lambda add-permission --statement-id "InvokeLambdaFunction" \
  --action "lambda:InvokeFunction" \
  --principal "events.amazonaws.com" \
  --function-name "arn:aws:lambda:region:account-id:function:function-name" \
  --source-arn "arn:aws:events:region:account-id:rule/rule-name"
  ```

*Para obter mais informações sobre a configuração de permissões que permitem EventBridge invocar funções do Lambda, [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)consulte Como [usar o Lambda com eventos agendados](https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html) no Guia do desenvolvedor.AWS Lambda *

## Permissões do Amazon SNS
<a name="eb-sns-permissions"></a>

Para permitir EventBridge a publicação em um tópico do Amazon SNS, use o `aws sns get-topic-attributes` e os `aws sns set-topic-attributes` comandos.

**nota**  
Você não pode usar `Condition` blocos nas políticas de tópicos do Amazon SNS para. EventBridge

**Para adicionar permissões que permitam EventBridge publicar tópicos do SNS**

1. Para listar os atributos de um tópico do SNS, use o comando a seguir.

   ```
   aws sns get-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name"
   ```

   O exemplo a seguir mostra o resultado de um novo tópico do SNS.

   ```
   {
       "Attributes": {
           "SubscriptionsConfirmed": "0", 
           "DisplayName": "", 
           "SubscriptionsDeleted": "0", 
           "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}",
           "Owner": "account-id", 
           "Policy": "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"account-id\"}}}]}", 
           "TopicArn": "arn:aws:sns:region:account-id:topic-name", 
           "SubscriptionsPending": "0"
       }
   }
   ```

1. Use um [Conversor de JSON para string](https://tools.knowledgewalls.com/jsontostring) para converter a seguinte declaração em uma string.

   ```
   {
     "Sid": "PublishEventsToMyTopic",
     "Effect": "Allow",
     "Principal": {
       "Service": "events.amazonaws.com"
     },
     "Action": "sns:Publish",
     "Resource": "arn:aws:sns:region:account-id:topic-name"
   }
   ```

   Depois de converter a instrução em uma string, ela deve ter a seguinte aparência:

   ```
   {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}
   ```

1. Adicione a string que criada na etapa anterior à coleção de `"Statement"` dentro do atributo `"Policy"`.

1. Use o comando `aws sns set-topic-attributes` para especificar a nova política.

   ```
   aws sns set-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name" \
   --attribute-name Policy \
   --attribute-value "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"account-id\"}}}, {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}]}"
   ```

Para obter mais informações, consulte a [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)ação na *Referência da API do Amazon Simple Notification Service*.

## Permissões do Amazon SQS
<a name="eb-sqs-permissions"></a>

Para permitir que uma EventBridge regra invoque uma fila do Amazon SQS, use `aws sqs get-queue-attributes` os comandos e. `aws sqs set-queue-attributes`

Se a política da fila SQS estiver vazia, primeiro será preciso criar uma política e depois adicionar a declaração de permissões a ela. Uma nova fila SQS tem uma política vazia.

Se a fila do SQS já tiver uma política, será preciso copiar a política original e combiná-la com uma nova instrução para adicionar a declaração de permissões a ela.

**Para adicionar permissões que permitem que EventBridge as regras invocem uma fila SQS**

1. Para listar os atributos da fila do SQS. Em um prompt de comando, digite o seguinte comando.

   ```
   aws sqs get-queue-attributes \
   --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \
   --attribute-names Policy
   ```

1. Adicione a instrução a seguir.

   ```
   {
         "Sid": "AWSEvents_custom-eventbus-ack-sqs-rule_dlq_sqs-rule-target",
         "Effect": "Allow",
         "Principal": {
           "Service": "events.amazonaws.com"
         },
         "Action": "sqs:SendMessage",
         "Resource": "arn:aws:sqs:region:account-id:queue-name",
         "Condition": {
           "ArnEquals": {
             "aws:SourceArn": "arn:aws:events:region:account-id:rule/bus-name/rule-name"
           }
         }
       }
   ```

1. Use um [Conversor de JSON para string](https://tools.knowledgewalls.com/jsontostring) para converter a declaração anterior em uma string. Depois de converter a política em uma string, ela deve ter a seguinte aparência:

   ```
   {\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}
   ```

1. Crie um arquivo denominado `set-queue-attributes.json` com o seguinte conteúdo.

   ```
   {
       "Policy": "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"arn:aws:sqs:region:account-id:queue-name/SQSDefaultPolicy\",\"Statement\":[{\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}}]}"
   }
   ```

1. Defina o atributo da política usando o arquivo `set-queue-attributes.json` que acabou de criar como entrada, conforme mostrado no comando a seguir.

   ```
   aws sqs set-queue-attributes \
   --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \
   --attributes file://set-queue-attributes.json
   ```

Para obter mais informações, consulte [Exemplos de políticas do Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html), no *Guia do desenvolvedor do Amazon Simple Queue Service*.

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

EventBridge O Pipes não oferece suporte a políticas baseadas em recursos e não oferece suporte APIs a condições políticas baseadas em recursos.

No entanto, se você configurar o acesso ao pipe por meio de uma interface VPC endpoint, esse VPC endpoint suportará políticas de recursos que permitem gerenciar o acesso ao Pipe. EventBridge APIs Para obter mais informações, consulte [Usar o Amazon EventBridge com endpoints da VPC de interface](eb-related-service-vpc.md).