Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de políticas basadas en recursos para Amazon EventBridge
Cuando se ejecuta una regla en EventBridge, se invocan todos los destinos asociados a la regla. Las reglas pueden invocar funciones de AWS Lambda, publicar en temas de Amazon SNS o retransmitir el evento en flujos de Kinesis. Para realizar llamadas a la API contra los recursos que usted posee, EventBridge necesita los permisos adecuados. Para los recursos de Lambda, Amazon SNS, Amazon SQS y Registros de Amazon CloudWatch, EventBridge utiliza políticas basadas en recursos. Para los flujos de Kinesis, EventBridge utiliza políticas basadas en identidades.
Puede usar AWS CLI para agregar permisos a sus destinos. Para obtener más información sobre cómo instalar y configurar la AWS CLI, consulte Configuración inicial de la AWS Command Line Interface en la Guía del usuario de AWS Command Line Interface.
Temas
Permisos de Amazon API Gateway
Para invocar su punto de conexión de Amazon API Gateway mediante una regla de EventBridge, agregue el siguiente permiso a la política de su punto de conexión de 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" ] } ] }
Permisos de Registros de CloudWatch
Cuando Registros de CloudWatch es el destino de una regla, EventBridge crea flujos de registro y Registros de CloudWatch almacena el texto de los eventos como entradas de registro. Para permitir que EventBridge cree el flujo de registro y registre los eventos, Registros de CloudWatch debe incluir una política basada en recursos que permita a EventBridge escribir en Registros de CloudWatch.
Si utiliza la AWS Management Console para agregar Registros de CloudWatch como el destino de una regla, la política basada en recursos se crea automáticamente. Si utiliza la AWS CLI para agregar el destino y la política aún no existe, debe crearla.
Este ejemplo permite a EventBridge escribir en todos los grupos de registro que tienen nombres que empiezan por /aws/events/
. Si utiliza una política de nomenclatura diferente para estos tipos de registros, ajuste la política en consecuencia.
{ "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 obtener más información, consulte PutResourcePolicy en la Guía de referencia de la API de Registros de CloudWatch.
Permisos de AWS Lambda
Para invocar la función de AWS Lambda utilizando una regla de EventBridge, agregue el siguiente permiso a la política de su función de 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 agregar los permisos anteriores que permiten a EventBridge invocar funciones de Lambda mediante la AWS CLI
-
En el símbolo del sistema, escriba el siguiente 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 obtener más información sobre la configuración de permisos que permiten a EventBridge invocar funciones de Lambda, consulte AddPermission y Uso de Lambda con eventos programados en la Guía para desarrolladores de AWS Lambda.
Permisos de Amazon SNS
Para permitir a EventBridge publicar en un tema de Amazon SNS, utilice los comandos aws sns
get-topic-attributes
y aws sns set-topic-attributes
.
nota
No puede usar bloques Condition
en las políticas de temas de Amazon SNS para EventBridge.
Para agregar permisos que permitan a EventBridge publicar temas de SNS
-
Utilice el siguiente comando para ver una lista de los atributos de un tema de SNS.
aws sns get-topic-attributes --topic-arn "arn:aws:sns:
region
:account-id
:topic-name
"El siguiente ejemplo muestra el resultado de un tema de SNS nuevo.
{ "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" } } -
Utilice un conversor de JSON a cadena
para convertir la siguiente instrucción en una cadena. { "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:
region
:account-id
:topic-name
" }Después de convertir la instrucción en una cadena, debe parecerse al siguiente ejemplo.
{\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:
region
:account-id
:topic-name
\"} -
Agregue la cadena que creó en el paso anterior a la colección
"Statement"
incluida en el atributo"Policy"
. -
Para especificar la política nueva, use el comando
aws sns set-topic-attributes
.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 obtener más información, consulte la acción SetTopicAttributes en la Referencia de la API de Amazon Simple Notification Service.
Permisos de Amazon SQS
Para permitir que una regla de EventBridge invoque una cola de Amazon SQS, utilice los comandos aws sqs
get-queue-attributes
y aws sqs set-queue-attributes
.
Si la política de la cola de SQS está vacía, primero debe crear una política y, a continuación, agregarle la instrucción de permisos. Una nueva cola de SQS tiene una política vacía.
Si la cola de SQS ya tiene una política, debe copiar la política original y combinarla con una nueva instrucción para agregarle la instrucción de permisos.
Para agregar permisos que permitan a las reglas de EventBridge invocar una cola de SQS
-
Para enumerar los atributos de la cola de SQS. En el símbolo del sistema, escriba el siguiente comando.
aws sqs get-queue-attributes \ --queue-url https://sqs.
region
.amazonaws.com/account-id
/queue-name
\ --attribute-names Policy -
Agregue la siguiente instrucción.
{ "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
" } } } -
Utilice un conversor de JSON a cadena
para convertir la instrucción anterior en una cadena. Después de convertir la política en una cadena, debe parecerse al siguiente ejemplo. {\"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
\"}} -
Cree un archivo denominado
set-queue-attributes.json
con el siguiente contenido.{ "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
\"}}}]}" } -
Establezca el atributo de política mediante el archivo
set-queue-attributes.json
que acaba de crear como entrada, tal y como se muestra en el siguiente comando.aws sqs set-queue-attributes \ --queue-url https://sqs.
region
.amazonaws.com/account-id
/queue-name
\ --attributes file://set-queue-attributes.json
Para obtener más información, consulte Ejemplos de políticas de Amazon SQS en la Guía para desarrolladores de Amazon Simple Queue Service.
Aspectos específicos de canalizaciones de EventBridge
Las canalizaciones de EventBridge no admiten políticas basadas en recursos y no tienen API que admitan políticas basadas en recursos.
Sin embargo, si configura el acceso a la canalización a través de un punto de conexión de VPC de tipo interfaz, ese punto de conexión de VPC admitirá políticas de recursos que le permiten administrar el acceso a las API de canalizaciones de EventBridge. Para obtener más información, consulte Uso de Amazon EventBridge con puntos de conexión de VPC de tipo interfaz.