View a markdown version of this page

Actions, ressources et clés de condition pour le bus d'événements personnalisé - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Actions, ressources et clés de condition pour le bus d'événements personnalisé

Utilisez cette page lorsque vous rédigez une politique IAM. Il répertorie toutes les events: actions pour le bus d'événements personnalisé, l'ARN de ressource par rapport auquel chacune d'entre elles est vérifiée, si un autre compte peut être attribué et les clés de condition que vous pouvez ajouter. Par exemple, pour permettre à un rôle d'associer des abonnés dont le METADATA filtre est tenant intitulé acme « Accordez events:CreateSubscriber sur le bus avec une ForAnyValue:StringEquals condition activée events:Metadata/tenant ».

Clés de condition

EventBridge fournit les clés de condition suivantes à partir de la demande, afin que vous puissiez restreindre une autorisation au-delà de l'action et de la ressource. Pour les clés de condition globales, consultez les clés contextuelles de conditions AWS globales dans le Guide de l'utilisateur IAM.

Clé de conditionValueFourni le
events:sourceLa source de l'événement ou la source en cours de transfertPutEvents, CreateEventSource, UpdateEventSource
events:detail-typeType de détail de l'événementPutEvents
events:Metadata/keyLes valeurs auxquelles correspond un METADATA filtre pour cette cléCreateSubscriber
events:Metadata/key/MatcherexactCreateSubscriber
events:ContentFilterPresenttruelorsque l'abonné déclare un DATA filtreCreateSubscriber
aws:ResourceTag/keyUne étiquette sur le bus, l'abonné ou la source d'événement en cours de vérificationChaque action est vérifiée par rapport à une ressource
aws:RequestTag/key, aws:TagKeysLes balises de la demandeIls créent des opérations etTagResource, UntagResource

Une clé de métadonnées est fournie sous la forme d'un ensemble de valeurs, alors associez-la à un opérateur d'ensemble tel queForAnyValue:StringEquals. METADATAles filtres ne correspondent qu'à l'exacte, c'est pourquoi la valeur du matcher est toujours. exact Un DATA filtre correspond à un code JSON arbitraire, de sorte que seule sa présence est exposée, pas son contenu. UpdateEventSourcerelance la vérification du bus avec events:source set à partir de la configuration de remplacement, de sorte qu'une condition sur cette clé régit une source d'événements repointée ainsi qu'une nouvelle.

La politique de ressources suivante permet de 444455556666 créer des comptes abonnés sur le orders bus uniquement lorsque le METADATA filtre de l'abonné correspond tenant exactement àacme. Un abonné sans METADATA filtre, ou un abonné qui nomme un autre locataire, est refusé. EventBridge fournit une clé de condition de métadonnées uniquement pour les champs déclarés par un filtre. C'est donc la Null condition qui refuse un filtre qui tenant omet.

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

Les actions et les ressources par rapport auxquelles elles sont comparées

Le tableau suivant répertorie chaque action, l'ARN de ressource à insérer dans l'Resourceélément de la politique et indique si le propriétaire d'un bus peut accorder l'action à un autre compte par le biais d'une politique de ressources ou d'un AWS RAM partage. Les trois List actions ne sont comparées à aucune ressource, alors accordez-leur"Resource": "*".

Action IAMVérifié par rapport àCessible sur un autre compte
events:CreateEventBusLe bus en cours de créationNon. Créé sur le compte de l'appelant
events:DescribeEventBusLe busOui
events:UpdateEventBusLe busNon. Propriétaire du bus uniquement
events:DeleteEventBusLe busNon. Propriétaire du bus uniquement
events:ListEventBusesRien Account-wideNon. Répertorie les bus personnels et partagés de l'appelant
events:PutEventsLe bus, une fois par entrée dans la demandeOui
events:PutRawEventsLe bus, une fois par entrée dans la demandeOui
events:CreateSubscriberLe bus et l'abonné en cours de créationOui
events:DescribeSubscriberL'abonnéLe propriétaire de l'abonné l'autorise
events:UpdateSubscriberL'abonnéLe propriétaire de l'abonné l'autorise
events:DeleteSubscriberL'abonnéLe propriétaire de l'abonné l'autorise
events:ListSubscribersRien Account-wideNon. Répertorie les propres abonnés de l'appelant
events:RevokeResourceLe busNon. Propriétaire du bus uniquement
events:CreateEventSourceLe bus et la source d'événements en cours de créationOui
events:DescribeEventSourceLa source de l'événementLe propriétaire de la source de l'événement l'autorise
events:UpdateEventSourceLa source de l'événement, et encore le busOui, pour l'enregistrement du bus
events:DeleteEventSourceLa source de l'événementLe propriétaire de la source de l'événement l'autorise
events:ListEventSourcesRien Account-wideNon. Répertorie les sources d'événements propres à l'appelant
events:PutResourcePolicyLe busNon. Propriétaire du bus uniquement
events:GetResourcePolicyLe busOui
events:DeleteResourcePolicyLe busNon. Propriétaire du bus uniquement
events:ListResourcePoliciesLe busOui
events:TagResourceLe bus, l'abonné ou la source d'événements nommé dans la demandeBus : oui. Abonné ou source de l'événement : son propriétaire
events:UntagResourceLe bus, l'abonné ou la source d'événements nommé dans la demandeBus : oui. Abonné ou source de l'événement : son propriétaire
events:ListTagsForResourceLe bus, l'abonné ou la source d'événements nommé dans la demandeBus : oui. Abonné ou source de l'événement : son propriétaire

Pour créer un abonné ou une source d'événements sur un bus, l'appelant a besoin de l'action sur le bus ainsi que sur la nouvelle ressource. C'est ce qui permet au propriétaire d'un bus de décider, dans la politique du bus, quels comptes peuvent y être associés. CreateSubscribereffectue quatre contrôles d'autorisation distincts, et les quatre doivent autoriser : events:CreateSubscriber sur le bus, events:CreateSubscriber sur l'abonné, iam:PassRole sur le rôle et events:TagResource sur l'abonné lorsque la demande contient des balises. InvokeConfiguration.RoleArn CreateEventSourceexécute les mêmes vérifications sansiam:PassRole, car une source d'événement n'a aucun rôle.

Note

Une ressource qui n'existe pas mais n'a pas d'ARN complet. Par conséquent, une vérification de création utilise un ARN se terminant par un caractère générique, tel quearn:aws:events:us-east-1:111122223333:subscriber/name/*. Une politique limitée à un abonné correspond donc à un préfixe de nom, pas exactement. Une création non balisée fournit non aws:ResourceTag pour la nouvelle ressource, donc une StringEquals condition sur cette clé la refuse.

Exemples de stratégies basées sur l'identité

Un producteur a besoin events:PutEvents events:PutRawEvents de l'ARN du bus, ou des deux. Accordez l'action qui correspond à l'API qu'elle appelle. Le producteur d'un bus chiffré avec une clé gérée par le client doit également accéder à cette clé ; voirChiffrement des événements sur un bus d'événements personnalisé. Le propriétaire d'un abonné a besoin d'informations events:CreateSubscriber sur le bus et sur l'abonné, iam:PassRole du rôle de diffusion et des actions de description, de mise à jour et de suppression des abonnés sur les abonnés qu'il gère. Un administrateur de bus a besoin des actions de création, de mise à jour et de suppression de bus, des quatre actions de politique des ressources etevents:RevokeResource.

La politique suivante permet à un producteur de publier sur un bus avec l'une ou l'autre des API de publication, et de lire le bus afin qu'il puisse confirmer que le bus est le ACTIVE premier. La publication est autorisée une fois pour chaque entrée de la demande, et il n'y a pas d'autorisation partielle : si une entrée échoue à une vérification de condition, la EventBridge demande dans son ensemble est rejetée, y compris les entrées qui auraient été acceptées.

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

Identification

Vous pouvez taguer un bus, un abonné ou une source d'événement. Sélectionnez Tags Créer un appel, ou utiliser TagResourceUntagResource, et ListTagsForResource ensuite. Chaque ressource possède son propre ensemble de balises, de sorte que le balisage d'un bus n'étiquette pas les abonnés ou les sources d'événements qui y sont associées.

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

Une réponse de création ne fait pas écho aux balises que vous avez fournies, alors relisez-les list-tags-for-resource lorsque vous aurez besoin de les confirmer. Les touches commençant par aws: sont réservées AWS et sont rejetées à chaque écriture, y comprisUntagResource. Pour contrôler qui peut baliser et pour rédiger des politiques qui dépendent des balises, utilisez les trois actions de balise du tableau précédent et les touches de aws:TagKeys condition aws:RequestTagaws:ResourceTag, et.