

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.

# Acciones, recursos y claves de condición para el bus de eventos personalizado
<a name="eb-custom-bus-access-actions"></a>

Utilice esta página cuando escriba una política de IAM. En ella se enumeran todas las `events:` acciones del bus de eventos personalizado, el ARN de recursos con el que se comprueba cada una de ellas, si se puede conceder la licencia a otra cuenta y las claves de condición que se pueden añadir. Por ejemplo, para permitir que un rol asocie suscriptores cuyos nombres de `METADATA` filtro sean los `tenant` mismos que`acme`, conceda `events:CreateSubscriber` en el bus con una `ForAnyValue:StringEquals` condición activada`events:Metadata/tenant`.

## Claves de condición
<a name="eb-custom-bus-access-conditions"></a>

EventBridge proporciona las siguientes claves de condición de la solicitud, de modo que puedes limitar la concesión más allá de la acción y el recurso. Para ver las claves de condición globales, consulte las claves de contexto de condiciones [AWS globales ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la Guía * del usuario de * IAM.


| Clave de condición | Valor | Se suministra el | 
| --- | --- | --- | 
| events:source | El origen del evento o el origen que se está reenviando | PutEvents, CreateEventSource, UpdateEventSource | 
| events:detail-type | El tipo de detalle del evento | PutEvents | 
| events:Metadata/{{key}} | Los valores que coincide con un METADATA filtro en esa clave | CreateSubscriber | 
| events:Metadata/{{key}}/Matcher | exact | CreateSubscriber | 
| events:ContentFilterPresent | truecuando el suscriptor declara un DATA filtro | CreateSubscriber | 
| aws:ResourceTag/{{key}} | Se está comprobando una etiqueta en el bus, el suscriptor o la fuente del evento | Todas las acciones se comparan con un recurso | 
| aws:RequestTag/{{key}}, aws:TagKeys | Las etiquetas de la solicitud | Las operaciones de creación yTagResource, UntagResource | 

Una clave de metadatos se suministra como un conjunto de valores, por lo que debe compararla con un operador de conjunto como`ForAnyValue:StringEquals`. `METADATA`los filtros solo coinciden exactamente, por lo que el valor del comparador es siempre. `exact` Un `DATA` filtro coincide con un JSON arbitrario, por lo que solo se expone su presencia, no su contenido. `UpdateEventSource`vuelve a ejecutar la comprobación del bus con un `events:source` set de la configuración de reemplazo, de modo que una condición en esa clave rige tanto una fuente de eventos redirigida como una nueva.

La siguiente política de recursos permite `444455556666` crear cuentas de suscriptores en el `orders` bus solo cuando el `METADATA` filtro del suscriptor coincide `tenant` exactamente con. `acme` Se deniega a un suscriptor sin `METADATA` filtro o a uno que nombre a otro inquilino. EventBridge proporciona una clave de condición de metadatos solo para los campos que declara un filtro, por lo que la `Null` condición es la que deniega un filtro que omite`tenant`.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SubscribeToAcmeEventsOnly",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
            "Action": "events:CreateSubscriber",
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
            "Condition": {
                "Null": { "events:Metadata/tenant": "false" },
                "ForAnyValue:StringEquals": { "events:Metadata/tenant": "acme" },
                "StringEquals": { "events:Metadata/tenant/Matcher": "exact" }
            }
        }
    ]
}
```

## Las acciones y los recursos con los que se comparan
<a name="eb-custom-bus-access-actions-table"></a>

En la tabla siguiente se enumeran todas las acciones, el ARN del recurso que se debe incluir en el `Resource` elemento de la política y si el propietario de un autobús puede conceder la acción a otra cuenta mediante una política de recursos o un recurso AWS RAM compartido. Las tres `List` acciones no se comparan con ningún recurso, así que concédelas`"Resource": "*"`.


| Acción de IAM | Comparado con | Se puede conceder a otra cuenta | 
| --- | --- | --- | 
| events:CreateEventBus | El autobús que se está creando | No. Creado en la propia cuenta de la persona que llama | 
| events:DescribeEventBus | ¿El autobús | Sí | 
| events:UpdateEventBus | ¿El autobús | No. Solo para propietarios de autobuses. | 
| events:DeleteEventBus | ¿El autobús | No. Solo para propietarios de autobuses. | 
| events:ListEventBuses | Nada. Account-wide | No. Muestra los autobuses propios y compartidos de la persona que llama | 
| events:PutEvents | El autobús, una vez por entrada de la solicitud | Sí | 
| events:PutRawEvents | El autobús, una vez por entrada en la solicitud | Sí | 
| events:CreateSubscriber | El bus y el suscriptor que se está creando | Sí | 
| events:DescribeSubscriber | El suscriptor | El propietario del suscriptor lo autoriza | 
| events:UpdateSubscriber | El suscriptor | El propietario del suscriptor lo autoriza | 
| events:DeleteSubscriber | El suscriptor | El propietario del suscriptor lo autoriza | 
| events:ListSubscribers | Nada. Account-wide | No. Muestra los propios suscriptores de la persona que llama | 
| events:RevokeResource | ¿El autobús | No. Solo para propietarios de autobuses. | 
| events:CreateEventSource | El bus y la fuente de eventos que se están creando | Sí | 
| events:DescribeEventSource | La fuente del evento | El propietario de la fuente del evento lo autoriza | 
| events:UpdateEventSource | La fuente del evento y, de nuevo, el autobús | Sí, para comprobar el autobús | 
| events:DeleteEventSource | La fuente del evento | El propietario de la fuente del evento lo autoriza | 
| events:ListEventSources | Nada. Account-wide | No. Muestra las fuentes de eventos propias de la persona que llama | 
| events:PutResourcePolicy | ¿El autobús | No. Solo para propietarios de autobuses. | 
| events:GetResourcePolicy | ¿El autobús | Sí | 
| events:DeleteResourcePolicy | ¿El autobús | No. Solo para propietarios de autobuses. | 
| events:ListResourcePolicies | ¿El autobús | Sí | 
| events:TagResource | El bus, el suscriptor o la fuente de eventos mencionados en la solicitud | Autobús: sí. Suscriptor o fuente del evento: su propietario | 
| events:UntagResource | El bus, el suscriptor o la fuente de eventos mencionados en la solicitud | Autobús: sí. Suscriptor o fuente del evento: su propietario | 
| events:ListTagsForResource | El bus, el suscriptor o la fuente de eventos mencionados en la solicitud | Autobús: sí. Suscriptor o fuente del evento: su propietario | 

Para crear un suscriptor o una fuente de eventos en un autobús, la persona que llama necesita la acción tanto en el autobús como en el nuevo recurso. Esto es lo que permite al propietario de un autobús decidir, en la propia política del autobús, qué cuentas pueden adjuntar algo al autobús. `CreateSubscriber`realiza cuatro comprobaciones de autorización distintas y las cuatro verificaciones deben estar `events:CreateSubscriber` permitidas: `events:CreateSubscriber` en el autobús, en el suscriptor`InvokeConfiguration.RoleArn`, `iam:PassRole` en el puesto y `events:TagResource` en el suscriptor cuando la solicitud incluye etiquetas. `CreateEventSource`ejecuta las mismas comprobaciones sin ellas`iam:PassRole`, porque una fuente de eventos no tiene ninguna función.

**nota**  
Un recurso que aún no existe no tiene un ARN completo, por lo que una comprobación de creación utiliza un ARN que termina en un comodín, como. `arn:aws:events:us-east-1:111122223333:subscriber/{{name}}/*` Por lo tanto, una política que se aplica a un suscriptor coincide con el prefijo del nombre, no exactamente. Una creación sin etiquetar proporciona un no `aws:ResourceTag` para el nuevo recurso, por lo que una `StringEquals` condición en esa clave lo niega.

## Ejemplo de políticas basadas en identidad de
<a name="eb-custom-bus-access-identity"></a>

Un ** productor ** necesita `events:PutEvents` ARN`events:PutRawEvents`, o ambos, en el bus. Otorga la acción que coincide con la API a la que llama. El productor de un bus cifrado con una clave gestionada por el cliente también necesita acceder a esa clave; consulte[Cifrar eventos en un bus de eventos personalizado](eb-custom-bus-encryption.md). El propietario de un ** suscriptor ** necesita estar `events:CreateSubscriber` en el bus y en el suscriptor, `iam:PassRole` conocer la función de entrega y las acciones de describir, actualizar y eliminar el suscriptor en relación con los suscriptores que administra. Un administrador de ** bus ** necesita las acciones de creación, actualización y eliminación del bus, las cuatro acciones de política de recursos y`events:RevokeResource`.

La siguiente política permite a un productor publicar en un bus con cualquiera de las API de publicación y leer el bus para confirmar que el bus es el `ACTIVE` primero. La publicación se autoriza una vez por cada entrada de la solicitud, y no existe una autorización parcial: si una entrada no pasa la comprobación de su estado, se EventBridge deniega toda la solicitud, incluidas las entradas que hubieran sido aprobadas.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublishToOrdersBus",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents",
                "events:PutRawEvents",
                "events:DescribeEventBus"
            ],
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
        }
    ]
}
```

## Etiquetado
<a name="eb-custom-bus-access-tagging"></a>

Puede etiquetar un autobús, un suscriptor o una fuente de eventos. Configura `Tags` la opción de creación `TagResource``UntagResource`, uso y `ListTagsForResource` posterior. Cada recurso tiene su propio conjunto de etiquetas, por lo que etiquetar un bus no etiqueta a los suscriptores ni a las fuentes de eventos asociadas a él.

```
aws eventsv2 tag-resource \
    --resource-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --tags team=payments,environment=production
```

Una respuesta de creación no refleja las etiquetas que has proporcionado, por lo que debes volver a leerlas `list-tags-for-resource` cuando necesites confirmarlas. Las claves que comienzan por `aws:` están reservadas AWS y se rechazan en cada escritura, incluso`UntagResource`. Para controlar quién puede etiquetar y escribir políticas que dependan de las etiquetas, utilice las tres acciones de etiquetado de la tabla anterior y las `aws:RequestTag` claves de `aws:TagKeys` condición y. `aws:ResourceTag`