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 SNS argomenti su Amazon o inoltrare l'evento ai flussi Kinesis. Per effettuare API chiamate contro le risorse di tua proprietà, EventBridge sono necessarie le autorizzazioni appropriate. Per le risorse Lambda, AmazonSQS, SNS Amazon e Amazon CloudWatch Logs, EventBridge utilizza politiche basate sulle risorse. 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 Amazon API Gateway

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, consultate PutResourcePolicyla guida CloudWatch Logs API Reference.

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

SNSAutorizzazioni Amazon

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

Nota

Non puoi utilizzare i Condition blocchi nelle politiche SNS tematiche di Amazon per EventBridge.

Per aggiungere autorizzazioni che consentano EventBridge di pubblicare argomenti SNS
  1. Per elencare gli attributi di un SNS argomento, utilizzare 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 SNS argomento.

    { "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. Utilizzate un convertitore JSON da una stringa all'altra 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 in Amazon Simple Notification Service API Reference.

SQSAutorizzazioni Amazon

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

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

Se la SQS coda ha già una politica, è necessario copiare la politica 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 SQS elencare gli attributi della coda. 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. Utilizzate un convertitore JSON da una stringa all'altra 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, consulta Amazon SQS Policy Examples nella Amazon Simple Queue Service Developer Guide.

EventBridge Specifiche dei tubi

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 di interfaccia, tale VPC VPC endpoint supporta politiche di risorse che consentono di gestire l'accesso a Pipe. EventBridge APIs Per ulteriori informazioni, consulta Utilizzo di Amazon EventBridge con VPC endpoint di interfaccia