Utilizzo IAM delle condizioni di polizza in Amazon EventBridge - Amazon EventBridge

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo IAM delle condizioni di polizza in Amazon EventBridge

Per concedere le autorizzazioni, si utilizza il linguaggio delle IAM politiche in una dichiarazione politica per specificare le condizioni in cui una politica deve avere effetto. Ad esempio, puoi avere una policy che viene applicata solo dopo una data specifica.

Una condizione in una policy è costituita da coppie chiave-valore. Le chiavi di condizione non fanno distinzione tra maiuscole e minuscole.

Se si specificano più condizioni o chiavi in un'unica condizione, tutte le condizioni e le chiavi devono essere soddisfatte per EventBridge concedere l'autorizzazione. Se si specifica una singola condizione con più valori per una chiave, EventBridge concede l'autorizzazione se uno dei valori è soddisfatto.

Puoi anche utilizzare segnaposto o variabili di policy quando specifichi le condizioni. Per ulteriori informazioni, consulta Policy Variables nella Guida per l'IAMutente. Per ulteriori informazioni sulla specificazione delle condizioni in un linguaggio di IAM policy, vedere Condition nella Guida per l'IAMutente.

Per impostazione predefinita, IAM gli utenti e i ruoli non possono accedere agli eventi del tuo account. Per accedere agli eventi, un utente deve essere autorizzato all'PutRuleAPIazione. Se un IAM utente o un ruolo è autorizzato per l'events:PutRuleazione, può creare una regola che corrisponda a determinati eventi. Tuttavia, affinché la regola sia utile, l'utente deve disporre anche delle autorizzazioni per l'events:PutTargetsazione perché, se vuoi che la regola faccia qualcosa di più della pubblicazione di una CloudWatch metrica, devi anche aggiungere un obiettivo a una regola.

È possibile fornire una condizione nella dichiarazione politica di un IAM utente o di un ruolo che consenta all'utente o al ruolo di creare una regola che corrisponda solo a un insieme specifico di fonti e tipi di eventi. Per concedere l'accesso a origini e tipi di eventi specifici, utilizza le chiavi di condizione events:source e events:detail-type.

Allo stesso modo, puoi fornire una condizione nella dichiarazione politica di un IAM utente o di un ruolo che consenta all'utente o al ruolo di creare una regola che corrisponda solo a una risorsa specifica dei tuoi account. Per concedere l'accesso a una risorsa specifica, utilizza la chiave di condizione events:TargetArn.

L'esempio seguente è una politica che consente agli utenti di accedere a tutti gli eventi tranne EC2 gli eventi di Amazon EventBridge utilizzando un'istruzione di rifiuto sull'PutRuleAPIazione.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPutRuleForAllEC2Events", "Effect": "Deny", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }

EventBridge tasti di condizione

La tabella seguente mostra le chiavi di condizione e le coppie chiave/valore che è possibile utilizzare in una politica in EventBridge.

Chiave di condizione Coppia chiave-valore Tipi di valutazione

Leggi: SourceAccount

L'account in cui esiste la regola specificata da aws:SourceArn.

ID account, Null

seghe: SourceArn

La ARN regola che sta inviando l'evento.

ARN, Nullo

eventi: creatorAccount

"events:creatorAccount":"creatorAccount"

In creatorAccount, utilizza l'ID dell'account che ha creato la regola. Utilizza questa condizione per autorizzare le API chiamate alle regole da un account specifico.

creatorAccount, Nullo

events:detail-type

"events:detail-type":"detail-type "

Dove detail-type è la stringa letterale per il campo del tipo di dettaglio dell'evento, ad esempio and. "AWS API Call via CloudTrail" "EC2 Instance State-change Notification"

Detail-type, null

eventi: dettaglio. eventTypeCode

"events:detail.eventTypeCode":"eventTypeCode"

In eventTypeCode, usa la stringa letterale per i dettagli. eventTypeCodecampo dell'evento, ad esempio"AWS_ABUSE_DOS_REPORT".

eventTypeCode, Nullo

events: detail.service

"events:detail.service":"service"

In service, utilizzate la stringa letterale per il campo detail.service dell'evento, ad esempio. "ABUSE"

service, Null

eventi: dettaglio. userIdentity. principalId

"events:detail.userIdentity.principalId":"principal-id"

In principal-id, usa la stringa letterale per i dettagli. userIdentity. principalIdcampo dell'evento con un tipo di dettaglio "AWS API Call via CloudTrail" come. "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName."

Principal Id, null

eventi: eventBusInvocation

"events:eventBusInvocation":"boolean"

In boolean, usa true quando una regola invia un evento a una destinazione che è un bus di eventi in un altro account. Utilizza false quando viene utilizzata una PutEvents API chiamata.

eventBusInvocation, Nullo

eventi: ManagedBy

Utilizzato internamente dai AWS servizi. Per una regola creata da un AWS servizio per conto dell'utente, il valore è il nome principale del servizio che ha creato la regola.

Non destinata all'uso nelle policy dei clienti.

events:source

"events:source":"source "

Utilizzo source per la stringa letterale per il campo di origine dell'evento, ad esempio "aws.ec2" o"aws.s3". Per ulteriori valori possibili per source, vedi gli eventi di esempio inEventi dei AWS servizi in Amazon EventBridge.

Source, null

eventi: TargetArn

"events:TargetArn":"target-arn "

In target-arn, usa ARN il target per la regola, ad esempio"arn:aws:lambda:*:*:function:*".

ArrayOfARN, Nullo

Ad esempio, dichiarazioni politiche per EventBridge, vedereGestione delle autorizzazioni di accesso alle tue risorse Amazon EventBridge.

EventBridge Specifiche dei tubi

EventBridge Pipes non supporta alcuna chiave aggiuntiva IAM relativa alle condizioni della policy.

Esempio: utilizzo della condizione creatorAccount

L'esempio seguente di istruzione di policy mostra come utilizzare la condizione creatorAccount in una policy per consentire la creazione di regole solo se l'account specificato come creatorAccount è l'account che ha creato la regola.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForOwnedRules", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}" } } } ] }

Esempio: utilizzo della condizione eventBusInvocation

eventBusInvocationIndica se la chiamata proviene da una destinazione o da una richiesta tra più account. PutEvents API Il valore è true quando l'invocazione risulta da una regola che include una destinazione multi-account, ad esempio quando la destinazione è un router di eventi in un altro account. Il valore è falso quando la chiamata risulta da una richiesta. PutEvents API L'esempio seguente indica un'invocazione da una destinazione multi-account.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountInvocationEventsOnly", "Effect": "Allow", "Action": "events:PutEvents", "Resource": "*", "Condition": { "BoolIfExists": { "events:eventBusInvocation": "true" } } } ] }

Esempio: limitazione dell'accesso a un'origine specifica

I seguenti criteri di esempio possono essere allegati a un IAM utente. La politica A consente l'PutRuleAPIazione per tutti gli eventi, mentre la politica B lo consente PutRule solo se il modello di evento della regola creata corrisponde EC2 agli eventi di Amazon.

Policy A: consente tutti gli eventi

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEvents", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*" } ] }

Policy B: —consente solo eventi da Amazon EC2

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEC2Events", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }

EventPattern è un argomento obbligatorio per PutRule. Pertanto, se l'utente con la policy B chiama PutRule con un modello di eventi come il seguente:

{ "source": [ "aws.ec2" ] }

La regola si crea perché la policy consente questa origine specifica, vale a dire "aws.ec2". Tuttavia, se l'utente con la policy B chiama PutRule con un modello di eventi come il seguente, la creazione della regola viene negata perché la policy non consente questa origine specifica, ovvero "aws.s3".

{ "source": [ "aws.s3" ] }

In sostanza, l'utente con Policy B può solo creare una regola che corrisponda agli eventi provenienti da AmazonEC2; quindi, gli è consentito solo l'accesso agli eventi di AmazonEC2.

Consulta la tabella riportata di seguito per un confronto tra la policy A e la policy B:

Modello di eventi Consentito dalla policy A Consentito dalla policy B
{ "source": [ "aws.ec2" ] }

{ "source": [ "aws.ec2", "aws.s3" ] }

No (l'origine aws.s3 non è consentita)

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

No (deve essere specificata l'origine)

Esempio: definizione di più origini che possono essere utilizzate individualmente in un modello di eventi

La seguente politica consente a un IAM utente o a un ruolo di creare una regola in cui l'origine in EventPattern è Amazon EC2 o AmazonECS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2OrECS", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": [ "aws.ec2", "aws.ecs" ] } } } ] }

Nella tabella seguente sono riportati alcuni esempi di modelli di eventi consentiti o negati da questa policy.

Modello di evento Consentito dalla policy
{ "source": [ "aws.ec2" ] }

{ "source": [ "aws.ecs" ] }

{ "source": [ "aws.s3" ] }

No

{ "source": [ "aws.ec2", "aws.ecs" ] }

No

{ "detail-type": [ "AWS API Call via CloudTrail" ] }

No

Esempio: definizione di un'origine e di DetailType che possono essere utilizzati in un modello di eventi

La policy seguente consente solo gli eventi provenienti dall'origine aws.ec2 con DetailType uguale a EC2 instance state change notification.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2AndDetailTypeIsInstanceStateChangeNotification", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2", "events:detail-type": "EC2 Instance State-change Notification" } } } ] }

Nella tabella seguente sono riportati alcuni esempi di modelli di eventi consentiti o negati da questa policy.

Modello di evento Consentito dalla policy
{ "source": [ "aws.ec2" ] }

No

{ "source": [ "aws.ecs" ] }

No

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance Health Failed" ] }

No

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

No

Esempio: accertarsi che l'origine sia definita nel modello di eventi

La policy seguente consente agli utenti di creare regole solo con EventPatterns che hanno il campo di origine. Con questa politica, un IAM utente o un ruolo non può creare una regola con una EventPattern che non fornisce una fonte specifica.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecified", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "Null": { "events:source": "false" } } } ] }

Nella tabella seguente sono riportati alcuni esempi di modelli di eventi consentiti o negati da questa policy.

Modello di eventi Consentito dalla policy
{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

{ "source": [ "aws.ecs", "aws.ec2" ] }

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

No

Esempio: definizione di un elenco di origini consentite in un modello di eventi con più origini

La policy seguente consente agli utenti di creare regole con EventPatterns che includono molteplici origini. Ogni origine nel modello di eventi deve essere un membro dell'elenco fornito nella condizione. Quando utilizzi la condizione ForAllValues, assicurati che almeno uno degli elementi nell'elenco di condizioni sia definito.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecifiedAndIsEitherS3OrEC2OrBoth", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "events:source": [ "aws.ec2", "aws.s3" ] }, "Null": { "events:source": "false" } } } ] }

Nella tabella seguente sono riportati alcuni esempi di modelli di eventi consentiti o negati da questa policy.

Modello di eventi Consentito dalla policy
{ "source": [ "aws.ec2" ] }

{ "source": [ "aws.ec2", "aws.s3" ] }

{ "source": [ "aws.ec2", "aws.autoscaling" ] }

No

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

No

Esempio: limitazione dell'accesso PutRule mediante detail.service

Puoi limitare un IAM utente o un ruolo alla creazione di regole solo per eventi che hanno un determinato valore nel events:details.service campo. Il valore di events:details.service non è necessariamente il nome di un AWS servizio.

Questa condizione politica è utile quando si lavora con eventi relativi alla sicurezza o agli abusi. AWS Health Utilizzando questa condizione di policy, puoi limitare l'accesso a questi avvisi sensibili solo agli utenti che necessitano di visualizzarli.

Ad esempio, la seguente policy consente la creazione di regole solo per gli eventi in cui il valore di events:details.service è ABUSE.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.service": "ABUSE" } } } ] }

Esempio: limitazione dell'accesso PutRule mediante detail.eventTypeCode

È possibile limitare un IAM utente o un ruolo alla creazione di regole solo per eventi che hanno un determinato valore nel events:details.eventTypeCode campo. Questa condizione politica è utile quando si lavora con eventi relativi alla sicurezza o all'abuso. AWS Health Utilizzando questa condizione di policy, puoi limitare l'accesso a questi avvisi sensibili solo agli utenti che necessitano di visualizzarli.

Ad esempio, la seguente policy consente la creazione di regole solo per gli eventi in cui il valore di events:details.eventTypeCode è AWS_ABUSE_DOS_REPORT.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.eventTypeCode": "AWS_ABUSE_DOS_REPORT" } } } ] }

Esempio: garantire che siano consentiti solo AWS CloudTrail gli eventi per API le chiamate provenienti da un determinato PrincipalId utente

Tutti AWS CloudTrail gli eventi hanno il nome PrincipalId dell'utente che ha effettuato la API chiamata nel detail.userIdentity.principalId percorso di un evento. Utilizzando la chiave di events:detail.userIdentity.principalId condizione, è possibile limitare l'accesso di IAM utenti o ruoli agli CloudTrail eventi solo per coloro che provengono da un account specifico.

"Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleOnlyForCloudTrailEventsWhereUserIsASpecificIAMUser", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail-type": [ "AWS API Call via CloudTrail" ], "events:detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ] } } } ] }

Nella tabella seguente sono riportati alcuni esempi di modelli di eventi consentiti o negati da questa policy.

Modello di evento Consentito dalla policy
{ "detail-type": [ "AWS API Call via CloudTrail" ] }

No

{ "detail-type": [ "AWS API Call via CloudTrail" ], "detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ] }

{ "detail-type": [ "AWS API Call via CloudTrail" ], "detail.userIdentity.principalId": [ "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName" ] }

No

Esempio: limitazione dell'accesso alle destinazioni

Se un IAM utente o un ruolo dispone dell'events:PutTargetsautorizzazione, può aggiungere qualsiasi oggetto appartenente allo stesso account alle regole a cui è autorizzato ad accedere. La seguente policy consente gli utenti di aggiungere destinazioni solo a una regola specifica: MyRule nell'account 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRule", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule" } ] }

Per limitare i target che possono essere aggiunti alla regola, utilizza la chiave di condizione events:TargetArn. Puoi limitare le destinazioni alle sole funzioni Lambda, come nel seguente esempio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule", "Condition": { "ArnLike": { "events:TargetArn": "arn:aws:lambda:*:*:function:*" } } } ] }