

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 delle condizioni delle policy IAM in Amazon EventBridge
<a name="eb-use-conditions"></a>

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 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 la pagina relativa alle [variabili di policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/policyvariables.html) nella *Guida per l'utente di IAM*. Per ulteriori informazioni su come specificare le condizioni in un linguaggio di policy IAM, consulta [Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition) nella *Guida per l'utente di IAM*.

Per impostazione predefinita, gli utenti e i ruoli IAM non possono accedere agli [eventi](eb-events.md) 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](eb-rules.md) corrispondente a determinati eventi. Tuttavia, affinché la regola sia utile, l'utente deve disporre anche delle autorizzazioni per l'`events:PutTargets`azione perché, se vuoi che la regola faccia qualcosa di più della pubblicazione di una CloudWatch metrica, devi anche aggiungere un [obiettivo](eb-targets.md) 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`.

## EventBridge tasti di condizione
<a name="conditions-table"></a>

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  |  L'ARN della regola che invia l'evento.  |  ARN, Null  | 
|  events:creatorAccount  |  `"events:creatorAccount":"creatorAccount"` Ad *creatorAccount* esempio, utilizza l'ID dell'account che ha creato la regola. Utilizza questa condizione per autorizzare le chiamate API sulle regole di un account specifico.  |  creatorAccount, Null  | 
|  events:detail-type  |  `"events:detail-type":"detail-type "` *detail-type*Dov'è la stringa letterale per il campo del **tipo di dettaglio** dell'evento, ad esempio e. `"AWS API Call via CloudTrail"` `"EC2 Instance State-change Notification"`   |  Detail-type, null  | 
|  eventi: dettaglio. eventTypeCode  |  `"events:detail.eventTypeCode":"eventTypeCode"` Per*eventTypeCode*, usa la stringa letterale per i **dettagli. eventTypeCode**campo dell'evento, ad esempio`"AWS_ABUSE_DOS_REPORT"`.  |  eventTypeCode, Nullo  | 
|  events: detail.service  |  `"events:detail.service":"service"` Per*service*, usa la stringa letterale per il campo **detail.service** dell'evento, ad esempio. `"ABUSE"`  |  service, Null  | 
|  events: detail.userIdentity.principalId  |  `"events:detail.userIdentity.principalId":"principal-id"` Ad esempio*principal-id*, utilizzate la stringa letterale per il campo **detail.userIdentity.principalID** dell'evento con un tipo di dettaglio come. `"AWS API Call via CloudTrail"` `"AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName."`  |  Principal Id, null  | 
|  eventi: eventBusInvocation  |  `"events:eventBusInvocation":"boolean"` Ad *boolean* esempio, 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 chiamata API `PutEvents`.  |  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 "` Utilizza *source* come stringa letterale per il campo di origine dell'evento, ad esempio `"aws.ec2"` o`"aws.s3"`. Per ulteriori valori possibili per*source*, consulta gli eventi di esempio in[Eventi derivanti dai AWS servizi](eb-events.md#eb-service-event).  |  Source, null  | 
|  eventi: TargetArn  |  `"events:TargetArn":"target-arn "` Ad *target-arn* esempio, usa l'ARN della destinazione per la regola. `"arn:aws:lambda:*:*:function:*"`  |  ArrayOfARN, nullo  | 

Ad esempio, dichiarazioni politiche per EventBridge, vedere. [Gestione delle autorizzazioni di accesso alle tue risorse Amazon EventBridge](eb-manage-iam-access.md)

**Topics**
+ [EventBridge tasti di condizione](#conditions-table)
+ [EventBridge Specifiche dei tubi](#eb-pipes-condition-diff)
+ [Esempio: utilizzo della condizione `creatorAccount`](#eb-events-creator-account)
+ [Esempio: utilizzo della condizione `eventBusInvocation`](#eb-events-bus-invocation)
+ [Esempio: limitazione dell'accesso a un'origine specifica](#eb-events-limit-access-control)
+ [Esempio: definizione di più origini che possono essere utilizzate individualmente in un modello di eventi](#eb-events-pattern-sources)
+ [Esempio: accertarsi che l'origine sia definita nel modello di eventi](#eb-source-defined-events-pattern)
+ [Esempio: definizione di un elenco di origini consentite in un modello di eventi con più origini](#eb-allowed-sources-events-pattern)
+ [Esempio: limitazione dell'accesso `PutRule` mediante `detail.service`](#eb-limit-rule-by-service)
+ [Esempio: limitazione dell'accesso `PutRule` mediante `detail.eventTypeCode`](#eb-limit-rule-by-type-code)
+ [Esempio: garantire che siano consentiti solo AWS CloudTrail gli eventi per le chiamate API provenienti da un determinato `PrincipalId` utente](#eb-consume-specific-events)
+ [Esempio: limitazione dell'accesso alle destinazioni](#eb-limiting-access-to-targets)

## EventBridge Specifiche dei tubi
<a name="eb-pipes-condition-diff"></a>

EventBridge Pipes non supporta alcuna chiave aggiuntiva per le condizioni delle policy IAM.

## Esempio: utilizzo della condizione `creatorAccount`
<a name="eb-events-creator-account"></a>

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.

------
#### [ JSON ]

****  

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

------

## Esempio: utilizzo della condizione `eventBusInvocation`
<a name="eb-events-bus-invocation"></a>

`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.

------
#### [ JSON ]

****  

```
{
  "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
<a name="eb-events-limit-access-control"></a>

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**

------
#### [ JSON ]

****  

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

------

**Policy B: consente solo eventi da Amazon EC2** 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleForAllEC2Events",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues: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 | 
| --- | --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sì   |  Sì  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Sì  |  No (l'origine aws.s3 non è consentita)  | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sì   |  Sì  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sì  |  No (deve essere specificata l'origine)  | 

## Esempio: definizione di più origini che possono essere utilizzate individualmente in un modello di eventi
<a name="eb-events-pattern-sources"></a>

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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleIfSourceIsEC2OrECS",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues: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 | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sì   | 
|  <pre>{<br />    "source": [ "aws.ecs" ]<br />}</pre>  |  Sì  | 
|  <pre>{<br />    "source": [ "aws.s3" ]<br />}</pre>  |  No  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.ecs" ]<br />}</pre>  |  No  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  No  | 

## Esempio: accertarsi che l'origine sia definita nel modello di eventi
<a name="eb-source-defined-events-pattern"></a>

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.

------
#### [ JSON ]

****  

```
{
    "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 | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Sì   | 
|  <pre>{<br />    "source": [ "aws.ecs", "aws.ec2" ]<br />}</pre>  |  Sì  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  No  | 

## Esempio: definizione di un elenco di origini consentite in un modello di eventi con più origini
<a name="eb-allowed-sources-events-pattern"></a>

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.

------
#### [ JSON ]

****  

```
{
    "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 | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Sì   | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Sì  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.autoscaling" ]<br />}</pre>  |  No  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  No  | 

## Esempio: limitazione dell'accesso `PutRule` mediante `detail.service`
<a name="eb-limit-rule-by-service"></a>

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 è 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`.

------
#### [ JSON ]

****  

```
{
    "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`
<a name="eb-limit-rule-by-type-code"></a>

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 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`.

------
#### [ JSON ]

****  

```
{
    "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 le chiamate API provenienti da un determinato `PrincipalId` utente
<a name="eb-consume-specific-events"></a>

Tutti AWS CloudTrail gli eventi hanno l'indicazione PrincipalId dell'utente che ha effettuato la chiamata API nel `detail.userIdentity.principalId` percorso di un evento. Utilizzando la chiave di `events:detail.userIdentity.principalId` condizione, puoi limitare l'accesso degli utenti o dei ruoli IAM agli CloudTrail eventi solo per quelli provenienti 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 | 
| --- | --- | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  No  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ]<br />}</pre>  |  Sì  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName" ]<br />}</pre>  |  No  | 

## Esempio: limitazione dell'accesso alle destinazioni
<a name="eb-limiting-access-to-targets"></a>

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`.

------
#### [ JSON ]

****  

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

------
#### [ JSON ]

****  

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

------