

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 politiche basate sulle risorse per Amazon EventBridge
<a name="eb-use-resource-based"></a>

Quando viene eseguita una [regola](eb-rules.md) EventBridge, vengono richiamate tutte le [destinazioni](eb-targets.md) associate alla regola. Le regole possono richiamare AWS Lambda funzioni, pubblicare argomenti su Amazon SNS o inoltrare l'evento ai flussi Kinesis. Per effettuare chiamate API contro le risorse di tua proprietà, EventBridge sono necessarie le autorizzazioni appropriate. Per le risorse Lambda, Amazon SNS, Amazon SQS e CloudWatch Amazon Logs, utilizza politiche basate sulle risorse. EventBridge [Per gli stream Kinesis, EventBridge utilizza policy basate sull'identità.](eb-use-identity-based.md)

**Importante**  
Per le destinazioni che utilizzano politiche basate sulle risorse (Lambda, Amazon SNS, Amazon SQS e CloudWatch Amazon Logs), non specificare a nella configurazione di destinazione. `RoleArn` Quando si specifica un `RoleArn` per questi tipi di destinazione, la distribuzione degli eventi potrebbe non riuscire, in particolare per i target AWS KMS Amazon SQS e Amazon SNS con crittografia abilitata. Utilizza politiche basate sulle risorse solo per questi obiettivi.

Li usi AWS CLI per aggiungere autorizzazioni ai tuoi obiettivi. Per informazioni su come installare e configurare AWS CLI, consulta [Getting Set Up with the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) nella *Guida per l'AWS Command Line Interface utente*.

**Topics**
+ [Autorizzazioni di Gateway Amazon API](#eb-api-gateway-permissions)
+ [CloudWatch Registra le autorizzazioni](#eb-cloudwatchlogs-permissions)
+ [AWS Lambda autorizzazioni](#eb-lambda-permissions)
+ [Autorizzazioni di Amazon SNS](#eb-sns-permissions)
+ [Autorizzazioni di Amazon SQS](#eb-sqs-permissions)
+ [EventBridge Specifiche dei tubi](#eb-pipes-identity-diff)

## Autorizzazioni di Gateway Amazon API
<a name="eb-api-gateway-permissions"></a>

Per richiamare il tuo endpoint Amazon API Gateway utilizzando una EventBridge regola, aggiungi la seguente autorizzazione alla policy del tuo endpoint API Gateway.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "execute-api:Invoke",
            "Condition": {
                "ArnEquals": {
                "aws:SourceArn": "arn:aws:events:us-east-1:123456789012:rule/rule-name"
                }
            },
            "Resource": [
            "arn:aws:execute-api:us-east-1:123456789012:API-id/stage/GET/api"
            ]
        }
    ]
}
```

------

## CloudWatch Registra le autorizzazioni
<a name="eb-cloudwatchlogs-permissions"></a>

Quando CloudWatch Logs è l'obiettivo di una regola, EventBridge crea flussi di log e CloudWatch Logs memorizza il testo degli eventi come voci di registro. EventBridge Per consentire la creazione del flusso di log e la registrazione degli eventi, CloudWatch Logs deve includere una politica basata sulle risorse che consenta la scrittura nei registri. EventBridge CloudWatch 

Se si utilizza Console di gestione AWS per aggiungere i CloudWatch log come obiettivo di una regola, la policy basata sulle risorse viene creata automaticamente. Se si utilizza il AWS CLI per aggiungere la destinazione e la politica non esiste già, è necessario crearla.

Il seguente esempio di policy basata sulle risorse consente di EventBridge scrivere su tutti i gruppi di log i cui nomi iniziano con. `/aws/events/` Se utilizzi una politica di denominazione diversa per questi tipi di log, modifica l'ARN della risorsa di conseguenza.

```
{
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "events.amazonaws.com",
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "logs:CreateLogStream",
    "logs:PutLogEvents"
  ],
  "Resource": "arn:aws:logs:region:account-id:log-group:/aws/events/*:*"
}
```

**Per creare una politica delle risorse per CloudWatch i registri utilizzando il AWS CLI**
+ Al prompt dei comandi, inserire il comando seguente:

  ```
  aws logs put-resource-policy --policy-name EventBridgeToCWLogsPolicy \
  --policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["events.amazonaws.com","delivery.logs.amazonaws.com"]},"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Resource":"arn:aws:logs:region:account-id:log-group:/aws/events/*:*"}]}'
  ```

Per ulteriori informazioni, consulta la [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)guida di *riferimento dell'API CloudWatch Logs*.

## AWS Lambda autorizzazioni
<a name="eb-lambda-permissions"></a>

Per richiamare la tua AWS Lambda funzione utilizzando una EventBridge regola, aggiungi la seguente autorizzazione alla policy della tua funzione Lambda.

```
{
  "Effect": "Allow",
  "Action": "lambda:InvokeFunction",
  "Resource": "arn:aws:lambda:region:account-id:function:function-name",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Condition": {
    "ArnLike": {
      "AWS:SourceArn": "arn:aws:events:region:account-id:rule/rule-name"
    }
  },
  "Sid": "InvokeLambdaFunction"
}
```

**Per aggiungere le autorizzazioni precedenti che consentono di EventBridge richiamare le funzioni Lambda utilizzando AWS CLI**
+ Al prompt dei comandi, inserire il comando seguente:

  ```
  aws lambda add-permission --statement-id "InvokeLambdaFunction" \
  --action "lambda:InvokeFunction" \
  --principal "events.amazonaws.com" \
  --function-name "arn:aws:lambda:region:account-id:function:function-name" \
  --source-arn "arn:aws:events:region:account-id:rule/rule-name"
  ```

*Per ulteriori informazioni sull'impostazione delle autorizzazioni che consentono di EventBridge richiamare le funzioni Lambda, consulta Using [Lambda with [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)Scheduled](https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html) Events nella Developer Guide.AWS Lambda *

## Autorizzazioni di Amazon SNS
<a name="eb-sns-permissions"></a>

 EventBridge Per consentire la pubblicazione su un argomento di Amazon SNS, usa i comandi `aws sns get-topic-attributes` e. `aws sns set-topic-attributes`

**Nota**  
Non puoi utilizzare i `Condition` blocchi nelle policy tematiche di Amazon SNS per. EventBridge

**Per aggiungere autorizzazioni che consentano la pubblicazione EventBridge di argomenti SNS**

1. Per elencare gli attributi di un argomento SNS, utilizza il comando seguente.

   ```
   aws sns get-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name"
   ```

   L'esempio seguente mostra il risultato di un nuovo argomento SNS.

   ```
   {
       "Attributes": {
           "SubscriptionsConfirmed": "0", 
           "DisplayName": "", 
           "SubscriptionsDeleted": "0", 
           "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}",
           "Owner": "account-id", 
           "Policy": "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"account-id\"}}}]}", 
           "TopicArn": "arn:aws:sns:region:account-id:topic-name", 
           "SubscriptionsPending": "0"
       }
   }
   ```

1. Utilizza un [convertitore da JSON a stringa](https://tools.knowledgewalls.com/jsontostring) per convertire la seguente istruzione in una stringa.

   ```
   {
     "Sid": "PublishEventsToMyTopic",
     "Effect": "Allow",
     "Principal": {
       "Service": "events.amazonaws.com"
     },
     "Action": "sns:Publish",
     "Resource": "arn:aws:sns:region:account-id:topic-name"
   }
   ```

   Dopo la conversione dell'istruzione in una stringa, la stringa dovrebbe risultare simile a quanto segue:

   ```
   {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}
   ```

1. Aggiungi la stringa creata nel passaggio precedente alla raccolta `"Statement"` nell'attributo `"Policy"`.

1. Per impostare la nuova policy, utilizza il comando `aws sns set-topic-attributes`.

   ```
   aws sns set-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name" \
   --attribute-name Policy \
   --attribute-value "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"account-id\"}}}, {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}]}"
   ```

Per ulteriori informazioni, consulta l'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)azione nel *riferimento all'API di Amazon Simple Notification Service*.

## Autorizzazioni di Amazon SQS
<a name="eb-sqs-permissions"></a>

Per consentire a una EventBridge regola di richiamare una coda Amazon SQS, usa `aws sqs get-queue-attributes` i comandi and. `aws sqs set-queue-attributes`

Se la policy per la coda SQS è vuota, devi prima creare una policy e poi aggiungervi l'istruzione di autorizzazione. Una nuova coda SQS ha una policy vuota.

Se la coda SQS ha già una policy, devi copiare la policy originale e combinarla con una nuova istruzione per aggiungervi l'istruzione di autorizzazione.

**Per aggiungere autorizzazioni che consentano alle EventBridge regole di richiamare una coda SQS**

1. Per elencare gli attributi della coda SQS, Al prompt dei comandi, inserire il comando seguente:

   ```
   aws sqs get-queue-attributes \
   --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \
   --attribute-names Policy
   ```

1. Aggiungi l'istruzione seguente.

   ```
   {
         "Sid": "AWSEvents_custom-eventbus-ack-sqs-rule_dlq_sqs-rule-target",
         "Effect": "Allow",
         "Principal": {
           "Service": "events.amazonaws.com"
         },
         "Action": "sqs:SendMessage",
         "Resource": "arn:aws:sqs:region:account-id:queue-name",
         "Condition": {
           "ArnEquals": {
             "aws:SourceArn": "arn:aws:events:region:account-id:rule/bus-name/rule-name"
           }
         }
       }
   ```

1. Utilizza un [convertitore da JSON a stringa](https://tools.knowledgewalls.com/jsontostring) per convertire l'istruzione precedente in una stringa. Dopo la conversione della policy in una stringa, la stringa dovrebbe risultare simile a quanto segue.

   ```
   {\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}
   ```

1. Crea un file denominato `set-queue-attributes.json`, con il seguente contenuto:

   ```
   {
       "Policy": "{\"Version\":\"2012-10-17\",		 	 	 \"Id\":\"arn:aws:sqs:region:account-id:queue-name/SQSDefaultPolicy\",\"Statement\":[{\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}}]}"
   }
   ```

1. Imposta l'attributo della policy utilizzando il file `set-queue-attributes.json` appena creato come input, come mostrato nel comando seguente.

   ```
   aws sqs set-queue-attributes \
   --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \
   --attributes file://set-queue-attributes.json
   ```

Per ulteriori informazioni, vedi [Esempi di policy di Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) nella *Guida per gli sviluppatori di Amazon Simple Queue Service*.

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

EventBridge Pipes non supporta politiche basate sulle risorse e non APIs supporta condizioni politiche basate sulle risorse.

Tuttavia, se si configura l'accesso tramite pipe tramite un endpoint VPC di interfaccia, tale endpoint VPC supporta policy di risorse che consentono di gestire l'accesso a Pipe. EventBridge APIs Per ulteriori informazioni, consulta [Utilizzo di Amazon EventBridge con endpoint VPC di interfaccia](eb-related-service-vpc.md)