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
Quando una regola viene eseguita EventBridge, vengono richiamate tutte le destinazioni associate alla regola. Le regole possono richiamare AWS Lambda funzioni, pubblicare argomenti su Amazon SNS o inoltrare l'evento agli stream Kinesis. Per effettuare chiamate API sulle risorse che possiedi, EventBridge sono necessarie le autorizzazioni appropriate. Per le risorse Amazon CloudWatch Logs, EventBridge utilizza politiche basate sulle risorse. Per le risorse Lambda, Amazon SNS e Amazon SQS, è EventBridge possibile utilizzare un ruolo di esecuzione IAM o una policy basata sulle risorse. Per gli stream Kinesis, utilizza policy basate sull'identità. EventBridge Utilizzo di politiche basate sull'identità (politiche IAM) per Amazon EventBridge
Importante
Per i target Amazon CloudWatch Logs, non specificare a nella configurazione di RoleArn destinazione. Per i target Lambda, Amazon SNS e Amazon SQS, puoi utilizzare un ruolo di esecuzione IAM o una policy basata sulle risorse. Se specifichi un target RoleArn per Lambda, Amazon SNS o Amazon SQS, assicurati che il ruolo disponga delle autorizzazioni richieste (ad esempio,, o). lambda:InvokeFunction sns:Publish sqs:SendMessage Se non è configurato alcun ruolo di esecuzione, EventBridge utilizza politiche basate sulle risorse sulla risorsa di destinazione.
Utilizzi il AWS CLI per aggiungere autorizzazioni ai tuoi obiettivi. Per informazioni su come installare e configurare il AWS CLI, consulta Getting Set Up with the AWS Command Line Interface nella Guida per l'AWS Command Line Interface utente.
Argomenti
Autorizzazioni di Gateway Amazon API
Per richiamare il tuo endpoint Amazon API Gateway utilizzando una EventBridge regola, aggiungi la seguente autorizzazione alla policy del tuo endpoint API Gateway.
CloudWatch Autorizzazioni dei log
Quando CloudWatch Logs è l'obiettivo di una regola, EventBridge crea flussi di CloudWatch log e Logs memorizza il testo degli eventi come voci di registro. Per consentire di EventBridge creare il flusso di log e registrare gli eventi, CloudWatch Logs deve includere una policy basata sulle risorse che EventBridge consenta di scrivere su Logs. CloudWatch
Se si utilizza Console di gestione AWS per aggiungere CloudWatch Logs come destinazione di una regola, la policy basata sulle risorse viene creata automaticamente. Se si utilizza AWS CLI per aggiungere la destinazione e la policy 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 di conseguenza l'ARN della risorsa.
{ "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 i CloudWatch log utilizzando 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 PutResourcePolicy la guida di riferimento sull'API CloudWatch Logs.
AWS Lambda autorizzazioni
Per richiamare la tua AWS Lambda funzione utilizzando una EventBridge regola, aggiungi la seguente autorizzazione alla policy della tua funzione Lambda.
Nota
In alternativa, puoi configurare un ruolo di esecuzione IAM sulla destinazione con lambda:InvokeFunction autorizzazione. Resource-based le policy sono richieste solo quando nessun ruolo di esecuzione è configurato sulla destinazione.
{ "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 richiamare le funzioni EventBridge Lambda, consulta la sezione Utilizzo di Lambda with AddPermission Scheduled Events nella Developer Guide. AWS Lambda
Autorizzazioni di Amazon SNS
EventBridge Per consentire la pubblicazione su un argomento di Amazon SNS, utilizza i comandi e. aws sns
get-topic-attributes aws sns set-topic-attributes
Per aggiungere autorizzazioni che consentano la pubblicazione EventBridge di argomenti SNS
-
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" } } -
Utilizza un convertitore da JSON a stringa
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\"} -
Aggiungi la stringa creata nel passaggio precedente alla raccolta
"Statement"nell'attributo"Policy". -
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'SetTopicAttributesazione riportata nell'Amazon Simple Notification Service API Reference.
Autorizzazioni di Amazon SQS
Per consentire a una EventBridge regola di richiamare una coda Amazon SQS, usa i comandi and. aws sqs
get-queue-attributes 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
-
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 -
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" } } } -
Utilizza un convertitore da JSON a stringa
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\"}} -
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\"}}}]}" } -
Imposta l'attributo della policy utilizzando il file
set-queue-attributes.jsonappena 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 nella Guida per gli sviluppatori di Amazon Simple Queue Service.
EventBridge Specifiche dei tubi
EventBridge Pipes non supporta politiche basate sulle risorse e non dispone di API che supportino condizioni di policy basate sulle risorse.
Tuttavia, se configuri l'accesso alle pipe tramite un endpoint VPC di interfaccia, quell'endpoint VPC supporta politiche sulle risorse che consentono di gestire l'accesso alle API Pipe. EventBridge Per ulteriori informazioni, consulta Utilizzo di Amazon EventBridge con endpoint VPC di interfaccia