

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
<a name="eb-use-resource-based"></a>

Cuando se ejecuta una [regla](eb-rules.md) EventBridge, se invocan todos los [destinos](eb-targets.md) asociados a la regla. Las reglas pueden invocar AWS Lambda funciones, publicar en temas de Amazon SNS o retransmitir el evento a las transmisiones de Kinesis. Para realizar llamadas a la API con los recursos que posee, EventBridge necesita los permisos adecuados. Para los recursos de Lambda, Amazon SNS, Amazon SQS y CloudWatch Amazon Logs, utiliza políticas basadas en recursos. EventBridge Para las transmisiones de Kinesis, EventBridge utiliza políticas basadas en la [identidad](eb-use-identity-based.md).

**importante**  
Para los destinos que utilizan políticas basadas en recursos (Lambda, Amazon SNS, Amazon SQS y CloudWatch Amazon Logs), no especifique a en la configuración de destino. `RoleArn` Si especifica un `RoleArn` para estos tipos de destino, es posible que se produzca un error en la entrega del evento, especialmente en el caso de los destinos AWS KMS Amazon SQS y Amazon SNS con el cifrado activado. Utilice políticas basadas en recursos únicamente para estos destinos.

Se utiliza AWS CLI para añadir permisos a los objetivos. Para obtener información sobre cómo instalar y configurar el AWS CLI, consulte Cómo [configurar el AWS Command Line Interface en la](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) *Guía del AWS Command Line Interface usuario*.

**Topics**
+ [Permisos de Amazon API Gateway](#eb-api-gateway-permissions)
+ [CloudWatch Registra los permisos](#eb-cloudwatchlogs-permissions)
+ [AWS Lambda permisos](#eb-lambda-permissions)
+ [Permisos de Amazon SNS](#eb-sns-permissions)
+ [Permisos de Amazon SQS](#eb-sqs-permissions)
+ [EventBridge Detalles de las tuberías](#eb-pipes-identity-diff)

## Permisos de Amazon API Gateway
<a name="eb-api-gateway-permissions"></a>

Para invocar su punto de enlace de Amazon API Gateway mediante una EventBridge regla, añada el siguiente permiso a la política de su punto de enlace de 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 Registra los permisos
<a name="eb-cloudwatchlogs-permissions"></a>

Cuando CloudWatch Logs es el objetivo de una regla, EventBridge crea flujos de registro y CloudWatch Logs almacena el texto de los eventos como entradas de registro. Para poder crear el flujo de registros y registrar los eventos, los CloudWatch registros deben incluir una política basada en los recursos que permita EventBridge escribir CloudWatch en los registros. EventBridge 

Si utilizas la Consola de administración de AWS para añadir CloudWatch registros como objetivo de una regla, la política basada en recursos se crea automáticamente. Si usa la AWS CLI para agregar el objetivo y la política aún no existe, debe crearla.

El siguiente ejemplo de política basada en recursos permite EventBridge escribir en todos los grupos de registros que tengan nombres que comiencen por. `/aws/events/` Si utiliza una política de nomenclatura diferente para estos tipos de registros, ajuste el ARN del recurso en consecuencia.

```
{
  "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 crear una política de recursos para CloudWatch los registros mediante el AWS CLI**
+ En el símbolo del sistema, escriba el siguiente 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 obtener más información, consulta [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)la *guía de referencia de la API de CloudWatch registros*.

## AWS Lambda permisos
<a name="eb-lambda-permissions"></a>

Para invocar AWS Lambda la función mediante una EventBridge regla, añada el siguiente permiso a la política de la función 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 añadir los permisos anteriores que permiten EventBridge invocar funciones Lambda mediante el 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 EventBridge invocar funciones de Lambda, [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)consulte [Uso de Lambda con eventos programados](https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html) en la Guía para desarrolladores.AWS Lambda *

## Permisos de Amazon SNS
<a name="eb-sns-permissions"></a>

 EventBridge Para permitir la publicación en un tema de Amazon SNS, utilice los comandos `aws sns get-topic-attributes` y. `aws sns set-topic-attributes`

**nota**  
No puedes usar `Condition` bloques en las políticas temáticas de Amazon SNS para. EventBridge

**Para añadir permisos que permitan EventBridge publicar temas de SNS**

1. 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:SourceAccount\":\"account-id\"}}}]}", 
           "TopicArn": "arn:aws:sns:region:account-id:topic-name", 
           "SubscriptionsPending": "0"
       }
   }
   ```

1. Utilice un [conversor de JSON a cadena](https://tools.knowledgewalls.com/jsontostring) 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\"}
   ```

1. Agregue la cadena que creó en el paso anterior a la colección `"Statement"` incluida en el atributo `"Policy"`.

1. 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: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 obtener más información, consulte la [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)acción en la *referencia de la API de Amazon Simple Notification Service*.

## Permisos de Amazon SQS
<a name="eb-sqs-permissions"></a>

Para permitir que una EventBridge regla invoque una cola de Amazon SQS, utilice `aws sqs get-queue-attributes` los comandos 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 añadir permisos que permitan a EventBridge las reglas invocar una cola de SQS**

1. 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
   ```

1. 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"
           }
         }
       }
   ```

1. Utilice un [conversor de JSON a cadena](https://tools.knowledgewalls.com/jsontostring) 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\"}}
   ```

1. 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\"}}}]}"
   }
   ```

1. 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](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) en la *Guía para desarrolladores de Amazon Simple Queue Service*.

## EventBridge Detalles de las tuberías
<a name="eb-pipes-identity-diff"></a>

EventBridge Pipes no apoya las políticas basadas en los recursos y no tiene ninguna política APIs que respalde las condiciones políticas basadas en los recursos.

Sin embargo, si configura el acceso a la canalización a través de un punto de enlace de VPC de interfaz, ese punto de enlace de VPC admite políticas de recursos que le permiten administrar el acceso a Pipe. EventBridge APIs Para obtener más información, consulte [Uso de Amazon EventBridge con puntos de conexión de VPC de tipo interfaz](eb-related-service-vpc.md)