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
Quando uma regra é executada EventBridge, todos os alvos associados à regra são invocados. As regras podem invocar AWS Lambda funções, publicar em SNS tópicos da Amazon ou transmitir o evento para os streams do Kinesis. Para fazer API chamadas com base nos recursos que você possui, EventBridge precisa das permissões apropriadas. Para recursos do Lambda, AmazonSQS, SNS Amazon e Amazon CloudWatch Logs, EventBridge usa políticas baseadas em recursos. Para streams do Kinesis, EventBridge usa políticas baseadas em identidade.
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 no Guia do AWS Command Line Interface usuário.
Tópicos
Permissões do Amazon API Gateway
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "execute-api:Invoke", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:
region
:account-id
:rule/rule-name
" } }, "Resource": [ "execute-api:/stage/GET/api" ] } ] }
CloudWatch Permissões de registros
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 AWS Management Console 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 a seguir permite EventBridge gravar em todos os grupos de registros que têm nomes que começam com/aws/events/
. Se usar uma política diferente para dar nome a esses tipos de logs, ajuste a política de acordo com a necessidade.
{ "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Principal": { "Service": ["events.amazonaws.com", "delivery.logs.amazonaws.com"] }, "Resource": "arn:aws:logs:
region
:account
:log-group:/aws/events/*:*", "Sid": "TrustEventsToStoreLogEvent" } ], "Version": "2012-10-17" }
Para obter mais informações, consulte PutResourcePolicyo guia de API referência de CloudWatch registros.
AWS Lambda permissões
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, AddPermissionconsulte Como usar o Lambda com eventos agendados no Guia do desenvolvedor.AWS Lambda
SNSPermissões da Amazon
Para permitir EventBridge a publicação em um SNS tópico da Amazon, use os aws sns
get-topic-attributes
aws sns set-topic-attributes
comandos e.
nota
Você não pode usar Condition
blocos nas políticas de SNS tópicos da Amazon para EventBridge.
Para adicionar permissões que EventBridge permitam publicar SNS tópicos
-
Para listar os atributos de um SNS tópico, 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 SNS tópico.
{ "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:SourceOwner\":\"account-id
\"}}}]}", "TopicArn": "arn:aws:sns:region
:account-id
:topic-name
", "SubscriptionsPending": "0" } } -
Use um conversor JSON para string
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
\"} -
Adicione a string que criada na etapa anterior à coleção de
"Statement"
dentro do atributo"Policy"
. -
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:SourceOwner\":\"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 SetTopicAttributesação na APIReferência do Amazon Simple Notification Service.
SQSPermissões da Amazon
Para permitir que uma EventBridge regra invoque uma SQS fila da Amazon, use os comandos aws sqs
get-queue-attributes
e. aws sqs set-queue-attributes
Se a política da SQS fila estiver vazia, primeiro você precisará criar uma política e depois adicionar a declaração de permissões a ela. Uma nova SQS fila tem uma política vazia.
Se a SQS fila já tiver uma política, você precisará copiar a política original e combiná-la com uma nova declaraçã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
-
Para listar os atributos SQS da fila. 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 -
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
" } } } -
Use um conversor JSON para string
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
\"}} -
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
\"}}}]}" } -
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 os exemplos SQS de políticas da Amazon no Guia do desenvolvedor do Amazon Simple Queue Service.
EventBridge Especificações de tubos
EventBridge O Pipes não suporta políticas baseadas em recursos e não APIs suporta condições políticas baseadas em recursos.
No entanto, se você configurar o acesso ao pipe por meio de um VPC endpoint de interface, esse VPC endpoint suportará políticas de recursos que permitem gerenciar o acesso ao EventBridge Pipe. APIs Para obter mais informações, consulte Usando a Amazon EventBridge com VPC endpoints de interface.