Utilizzo di politiche basate sulle risorse per 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 di politiche basate sulle risorse per Amazon EventBridge

Quando viene eseguita una regola 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 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à.

Lo usi per aggiungere autorizzazioni AWS CLI ai tuoi obiettivi. Per informazioni su come installare e configurare AWS CLI, consulta Getting Set Up with the AWS Command Line Interface nella Guida per l'AWS Command Line Interface utente.

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.

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

CloudWatch Registra le autorizzazioni

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 AWS Management Console 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.

L'esempio seguente consente di EventBridge scrivere su tutti i gruppi di log i cui nomi iniziano con/aws/events/. Se utilizzi una policy di denominazione differente per questi tipi di log, modifica l'esempio di conseguenza.

{ "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Principal": { "Service": ["events.amazonaws.com", "delivery.logs.amazonaws.com"] }, "Resource": "arn:aws:logs:region:account:log-group:/aws/events/*:*", "Sid": "TrustEventsToStoreLogEvent" } ], "Version": "2012-10-17" }

Per ulteriori informazioni, consulta PutResourcePolicyla guida di riferimento dell'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.

{ "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 AddPermissionScheduled Events nella Developer Guide.AWS Lambda

Autorizzazioni di Amazon SNS

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:SourceOwner\":\"account-id\"}}}]}", "TopicArn": "arn:aws:sns:region:account-id:topic-name", "SubscriptionsPending": "0" } }
  2. 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\"}
  3. Aggiungi la stringa creata nel passaggio precedente alla raccolta "Statement" nell'attributo "Policy".

  4. 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:SourceOwner\":\"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 nel riferimento all'API di Amazon Simple Notification Service.

Autorizzazioni di Amazon SQS

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
  2. 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" } } }
  3. 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\"}}
  4. 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\"}}}]}" }
  5. 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 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 tramite pipe tramite un endpoint VPC di interfaccia, tale endpoint VPC supporta policy di risorse che consentono di gestire l'accesso alle API Pipe. EventBridge Per ulteriori informazioni, consulta Utilizzo di Amazon EventBridge con endpoint VPC di interfaccia