Concessione di autorizzazioni per la pubblicazione di messaggi di notifica di eventi a una destinazione - Amazon Simple Storage Service

Concessione di autorizzazioni per la pubblicazione di messaggi di notifica di eventi a una destinazione

È necessario concedere al principale di Amazon S3 le autorizzazioni necessarie per richiamare l'API pertinente per pubblicare i messaggi in un argomento SNS, una coda SQS o una funzione Lambda. In questo modo Amazon S3 può pubblicare i messaggi di notifica degli eventi verso una destinazione.

Per risolvere i problemi relativi alla pubblicazione dei messaggi di notifica di eventi su una destinazione, consulta Risoluzione dei problemi relativi alla pubblicazione delle notifiche di eventi di Amazon S3 in un argomento di Servizio di notifica semplice Amazon.

Concessione dei permessi per invocare una funzione di AWS Lambda

Amazon S3 pubblica messaggi di eventi su AWS Lambda invocando una funzione Lambda e fornendo il messaggio di evento come argomento.

Quando si utilizza la console di Amazon S3 per configurare le notifiche eventi in un bucket di Amazon S3 per una funzione Lambda, la console configura le autorizzazioni necessarie sulla funzione Lambda. In questo modo Amazon S3 dispone delle autorizzazioni per richiamare la funzione dal bucket. Per ulteriori informazioni, consulta Attivazione e configurazione delle notifiche di eventi tramite la console di Amazon S3.

È anche possibile concedere ad Amazon S3 le autorizzazioni da AWS Lambda per invocare la funzione Lambda. Per ulteriori informazioni, consulta Esercitazione: Utilizzo di AWS Lambda con Amazon S3 nella Guida per gli sviluppatori diAWS Lambda .

Concessione di autorizzazioni per la pubblicazione di messaggi su un argomento SNS o una coda SQS

Si collega una policy AWS Identity and Access Management (IAM) all'argomento SNS o alla coda SQS di destinazione per concedere ad Amazon S3 le autorizzazioni per pubblicare messaggi nell'argomento SNS o nella coda SQS.

Per un esempio di come collegare una policy a un argomento SNS o a una coda SQS, consulta la sezione Spiegazione passo per passo: configurare un bucket per le notifiche (argomento SNS o coda SQS). Per ulteriori informazioni sulle autorizzazioni, consulta i seguenti argomenti:

Policy IAM per un argomento SNS di destinazione

Di seguito è riportato un esempio di criterio AWS Identity and Access Management (IAM) da allegare all'argomento SNS di destinazione. Per maggiori informazioni su come utilizzare questa policy per configurare un argomento Amazon SNS di destinazione per le notifiche degli eventi, consulta Spiegazione passo per passo: configurare un bucket per le notifiche (argomento SNS o coda SQS).

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "Example SNS topic policy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "SNS-topic-ARN", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

Criterio IAM per una coda SQS di destinazione

Di seguito è riportato un esempio di criterio IAM da allegare alla coda SQS di destinazione. Per maggiori informazioni su come utilizzare questa policy per impostare una coda Amazon SQS di destinazione per le notifiche degli eventi, consulta Spiegazione passo per passo: configurare un bucket per le notifiche (argomento SNS o coda SQS).

Per utilizzare questa policy, devi aggiornare l'ARN della coda di Amazon SQS, il nome del bucket e l'ID Account AWS del proprietario del bucket.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:Region:account-id:queue-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

Per entrambi i criteri IAM di Amazon SNS e Amazon SQS, è possibile specificare la condizione StringLike nel criterio anziché la condizione ArnLike.

Quando si utilizza ArnLike, le porzioni partizione, servizio, ID account, tipo di risorsa e ID risorsa parziale dell'ARN devono corrispondere esattamente all'ARN nel contesto della richiesta. Solo la regione e il percorso della risorsa consentono una corrispondenza parziale.

Quando al posto di StringLike viene utilizzato ArnLike, la corrispondenza ignora la struttura dell'ARN e consente una corrispondenza parziale, indipendentemente dalla porzione utilizzata come carattere jolly. Per ulteriori informazioni, consulta Elementi delle policy JSON IAM nella Guida per l'utente di IAM.

"Condition": {        "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" } }

Criterio della chiave AWS KMS

Se la coda SQS o gli argomenti SNS sono crittografati con una chiave gestita dal cliente AWS Key Management Service (AWS KMS), devi concedere al servizio Amazon S3 l'autorizzazione principale per lavorare con la coda o gli argomenti crittografati. Per concedere al servizio Amazon S3 l'autorizzazione principale, aggiungi l'istruzione seguente alla policy delle chiavi per la chiave gestita dal cliente.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }

Per ulteriori informazioni sui criteri di chiave di AWS KMS , consulta Uso dei criteri di chiave in AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service.

Per ulteriori informazioni sull'uso della crittografia lato server con AWS KMS per Amazon SQS e Amazon SNS, consulta quanto segue: