View a markdown version of this page

Acciones, recursos y claves de condición para el bus de eventos personalizado - Amazon EventBridge

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

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 queacme, conceda events:CreateSubscriber en el bus con una ForAnyValue:StringEquals condición activadaevents:Metadata/tenant.

Claves de condición

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 en la Guía del usuario de IAM.

Clave de condiciónValorSe suministra el
events:sourceEl origen del evento o el origen que se está reenviandoPutEvents, CreateEventSource, UpdateEventSource
events:detail-typeEl tipo de detalle del eventoPutEvents
events:Metadata/keyLos valores que coincide con un METADATA filtro en esa claveCreateSubscriber
events:Metadata/key/MatcherexactCreateSubscriber
events:ContentFilterPresenttruecuando el suscriptor declara un DATA filtroCreateSubscriber
aws:ResourceTag/keySe está comprobando una etiqueta en el bus, el suscriptor o la fuente del eventoTodas las acciones se comparan con un recurso
aws:RequestTag/key, aws:TagKeysLas etiquetas de la solicitudLas 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 comoForAnyValue:StringEquals. METADATAlos 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. UpdateEventSourcevuelve 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 omitetenant.

{ "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

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 IAMComparado conSe puede conceder a otra cuenta
events:CreateEventBusEl autobús que se está creandoNo. Creado en la propia cuenta de la persona que llama
events:DescribeEventBus¿El autobúsSí
events:UpdateEventBus¿El autobúsNo. Solo para propietarios de autobuses.
events:DeleteEventBus¿El autobúsNo. Solo para propietarios de autobuses.
events:ListEventBusesNada. Account-wideNo. Muestra los autobuses propios y compartidos de la persona que llama
events:PutEventsEl autobús, una vez por entrada de la solicitudSí
events:PutRawEventsEl autobús, una vez por entrada en la solicitudSí
events:CreateSubscriberEl bus y el suscriptor que se está creandoSí
events:DescribeSubscriberEl suscriptorEl propietario del suscriptor lo autoriza
events:UpdateSubscriberEl suscriptorEl propietario del suscriptor lo autoriza
events:DeleteSubscriberEl suscriptorEl propietario del suscriptor lo autoriza
events:ListSubscribersNada. Account-wideNo. Muestra los propios suscriptores de la persona que llama
events:RevokeResource¿El autobúsNo. Solo para propietarios de autobuses.
events:CreateEventSourceEl bus y la fuente de eventos que se están creandoSí
events:DescribeEventSourceLa fuente del eventoEl propietario de la fuente del evento lo autoriza
events:UpdateEventSourceLa fuente del evento y, de nuevo, el autobúsSí, para comprobar el autobús
events:DeleteEventSourceLa fuente del eventoEl propietario de la fuente del evento lo autoriza
events:ListEventSourcesNada. Account-wideNo. Muestra las fuentes de eventos propias de la persona que llama
events:PutResourcePolicy¿El autobúsNo. Solo para propietarios de autobuses.
events:GetResourcePolicy¿El autobúsSí
events:DeleteResourcePolicy¿El autobúsNo. Solo para propietarios de autobuses.
events:ListResourcePolicies¿El autobúsSí
events:TagResourceEl bus, el suscriptor o la fuente de eventos mencionados en la solicitudAutobús: sí. Suscriptor o fuente del evento: su propietario
events:UntagResourceEl bus, el suscriptor o la fuente de eventos mencionados en la solicitudAutobús: sí. Suscriptor o fuente del evento: su propietario
events:ListTagsForResourceEl bus, el suscriptor o la fuente de eventos mencionados en la solicitudAutobú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. CreateSubscriberrealiza cuatro comprobaciones de autorización distintas y las cuatro verificaciones deben estar events:CreateSubscriber permitidas: events:CreateSubscriber en el autobús, en el suscriptorInvokeConfiguration.RoleArn, iam:PassRole en el puesto y events:TagResource en el suscriptor cuando la solicitud incluye etiquetas. CreateEventSourceejecuta las mismas comprobaciones sin ellasiam: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

Un productor necesita events:PutEvents ARNevents: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; consulteCifrar eventos en un bus de eventos personalizado. 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 yevents: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

Puede etiquetar un autobús, un suscriptor o una fuente de eventos. Configura Tags la opción de creación TagResourceUntagResource, 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, inclusoUntagResource. 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