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 di condizioni di policy IAM per il controllo granulare degli accessi
Per concedere le autorizzazioni, utilizzi il linguaggio della policy IAM in un'istruzione di policy allo scopo di specificare le condizioni in base alle quale la policy deve essere applicata. 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 specifichi più condizioni o chiavi in una sola condizione, tutte le condizioni e le chiavi devono essere soddisfatte affinché EventBridge conceda l'autorizzazione. Se specifichi una sola condizione con più valori per una sola chiave, EventBridge concede l'autorizzazione se uno dei valori viene soddisfatto.
Puoi anche utilizzare segnaposto o variabili di policy quando specifichi le condizioni. Per ulteriori informazioni, consulta la pagina relativa alle variabili di policy nella Guida per l'utente di IAM. Per ulteriori informazioni su come specificare le condizioni in un linguaggio di policy IAM, consulta Condition nella Guida per l'utente di IAM.
Per impostazione predefinita, gli utenti e i ruoli IAM non possono accedere agli eventi nel tuo account. Per accedere agli eventi, un utente deve disporre dell'autorizzazione per l'azione API PutRule
. Se un ruolo o un utente IAM dispone dell'autorizzazione per l'azione events:PutRule
, può creare una regola corrispondente a determinati eventi. Tuttavia, affinché la regola sia utile, l'utente deve disporre anche delle autorizzazioni per l'azione events:PutTargets
perché, se la regola non deve solo pubblicare una metrica CloudWatch, devi anche aggiungere una destinazione a una regola.
Puoi fornire una condizione nell'istruzione della policy di un ruolo o utente IAM che consente all'utente o al ruolo di creare una regola che corrisponde solo a un set specifico di origini 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
.
Analogamente, puoi fornire una condizione nell'istruzione della policy di un ruolo o utente IAM che consente all'utente o al ruolo di creare una regola che corrisponde solo a una specifica risorsa nei tuoi account. Per concedere l'accesso a una risorsa specifica, utilizza la chiave di condizione events:TargetArn
.
L'esempio seguente è una policy che consente agli utenti di accedere a tutti gli eventi tranne gli eventi Amazon EC2 in EventBridge utilizzando un'istruzione di negazione sull'azione API PutRule
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPutRuleForAllEC2Events", "Effect": "Deny", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }
Chiavi di condizione EventBridge
La tabella seguente mostra le chiavi di condizione e le coppie chiave/valore che puoi utilizzare in una policy in EventBridge.
Chiave di condizione | Coppia chiave-valore | Tipi di valutazione |
---|---|---|
aws:SourceAccount |
L'account in cui esiste la regola specificata da |
ID account, Null |
aws:SourceArn |
L'ARN della regola che invia l'evento. |
ARN, Null |
events:creatorAccount |
Per |
creatorAccount, Null |
events:detail-type |
Dove |
Detail-type, null |
events: detail.eventTypeCode |
In |
eventTypeCode, Null |
events: detail.service |
Per |
service, Null |
events: detail.userIdentity.principalId |
Per |
Principal Id, null |
events:eventBusInvocation |
Per |
eventBusInvocation, Null |
events:ManagedBy |
Utilizzata internamente dai servizi AWS. Per una regola creata automaticamente da un servizio AWS, il valore è il nome del principale del servizio che ha creato la regola |
Non destinata all'uso nelle policy dei clienti. |
events:source |
Utilizza |
Source, null |
events:TargetArn |
Per |
ArrayOfARN, Null |
Per alcuni esempi di istruzioni di policy per EventBridge, consulta Gestione delle autorizzazioni di accesso alle risorse Amazon EventBridge.
Argomenti
- Specifiche di EventBridge Pipes
- Esempio: utilizzo della condizione creatorAccount
- Esempio: utilizzo della condizione eventBusInvocation
- Esempio: limitazione dell'accesso a un'origine specifica
- Esempio: definizione di più origini che possono essere utilizzate individualmente in un modello di eventi
- Esempio: definizione di un'origine e di DetailType che possono essere utilizzati in un modello di eventi
- Esempio: accertarsi che l'origine sia definita nel modello di eventi
- Esempio: definizione di un elenco di origini consentite in un modello di eventi con più origini
- Esempio: limitazione dell'accesso PutRule mediante detail.service
- Esempio: limitazione dell'accesso PutRule mediante detail.eventTypeCode
- Esempio: garantire che siano consentiti solo gli eventi AWS CloudTrail per chiamate API provenienti da un determinato PrincipalId
- Esempio: limitazione dell'accesso alle destinazioni
Specifiche di EventBridge Pipes
EventBridge Pipes non supporta nessun'altra chiave di condizione di policy IAM.
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
eventBusInvocation
indica se l'invocazione proviene da una destinazione multi-account o da una richiesta API PutEvents
. 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 è false quando l'invocazione risulta da una richiesta API PutEvents
. 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
Le seguenti policy di esempio possono essere associate a un utente IAM. La policy A consente all'azione API PutRule
per tutti gli eventi, mentre la policy B consente PutRule
solo se il modello di eventi della regola creata corrisponde agli eventi Amazon EC2.
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" ] }
Essenzialmente, all'utente con la policy B viene consentita solo la creazione di una regola che corrisponderebbe agli eventi originati da Amazon EC2 e quindi gli è consentito l'accesso solo agli eventi da Amazon EC2.
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 |
---|---|---|
|
Sì |
Sì |
|
Sì |
No (l'origine aws.s3 non è consentita) |
|
Sì |
Sì |
|
Sì |
No (deve essere specificata l'origine) |
Esempio: definizione di più origini che possono essere utilizzate individualmente in un modello di eventi
La seguente policy consente a un ruolo o utente IAM di creare una regola in cui l'origine in EventPattern
è Amazon EC2 o Amazon ECS.
{ "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 eventi | Consentito dalla policy |
---|---|
|
Sì |
|
Sì |
|
No |
|
No |
|
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 eventi | Consentito dalla policy |
---|---|
|
No |
|
No |
|
Sì |
|
No |
|
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 policy, un ruolo o un utente IAM non può creare una regola con un EventPattern
che non fornisce un'origine 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 |
---|---|
|
Sì |
|
Sì |
|
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 |
---|---|
|
Sì |
|
Sì |
|
No |
|
No |
Esempio: limitazione dell'accesso PutRule
mediante detail.service
Puoi limitare un ruolo o un utente IAM alla creazione di regole solo per eventi che hanno un determinato valore nel campo events:details.service
. Il valore di events:details.service
non deve essere necessariamente il nome di un servizio AWS.
Questa condizione di policy risulta utile quando si utilizzano eventi di AWS Health correlati alla sicurezza o a un uso illecito. Utilizzando questa condizione di policy, puoi limitare l'accesso a questi avvisi sensibili solo agli utenti a cui sono destinati.
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
Puoi limitare un ruolo o un utente IAM alla creazione di regole solo per eventi che hanno un determinato valore nel campo events:details.eventTypeCode
. Questa condizione di policy risulta utile quando si utilizzano eventi di AWS Health correlati alla sicurezza o a un uso illecito. Utilizzando questa condizione di policy, puoi limitare l'accesso a questi avvisi sensibili solo agli utenti a cui sono destinati.
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 gli eventi AWS CloudTrail per chiamate API provenienti da un determinato PrincipalId
Tutti gli eventi AWS CloudTrail hanno il PrincipalId dell'utente che ha effettuato la chiamata API nel percorso detail.userIdentity.principalId
di un evento. Mediante la chiave di condizione events:detail.userIdentity.principalId
, puoi limitare l'accesso di utenti o ruoli IAM solo agli eventi CloudTrail 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 eventi | Consentito dalla policy |
---|---|
|
No |
|
Sì |
|
No |
Esempio: limitazione dell'accesso alle destinazioni
Se un utente o ruolo IAM dispone di un'autorizzazione events:PutTargets
, può aggiungere qualsiasi destinazione nello stesso account alle regole alle quali ha accesso. 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:*" } } } ] }