Concessione di autorizzazioni per pubblicare messaggi di notifica eventi in una destinazione - Amazon Simple Storage Service

Concessione di autorizzazioni per pubblicare messaggi di notifica eventi in 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 messaggi di notifica di eventi in 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 di autorizzazioni per invocare una funzione AWS Lambda

Amazon S3 pubblica messaggi di eventi in AWS Lambda invocando una funzione Lambda e specificando il messaggio dell'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.

Inoltre, è possibile concedere ad Amazon S3 le autorizzazioni da AWS Lambda per invocare la funzione Lambda. Per ulteriori informazioni, consulta la sezione Tutorial: utilizzo di AWS Lambda con Amazon S3 nella Guida per gli sviluppatori di AWS Lambda.

Concessione di autorizzazioni per pubblicare messaggi in 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 policy AWS Identity and Access Management (IAM) collegata 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).

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

Policy IAM per una coda SQS di destinazione

Di seguito è riportato un esempio di policy IAM collegata 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.

JSON
{ "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:us-east-1:111122223333:queue-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

Per entrambe le policy IAM di Amazon SNS e Amazon SQS, è possibile specificare la condizione StringLike nella policy anziché la condizione ArnLike.

Quando si utilizza ArnLike, le partizioni, il servizio, l’ID dell’account, il tipo di risorsa e l’ID della risorsa parziale dell’ARN devono corrispondere esattamente all’ARN nel contesto della richiesta. La corrispondenza parziale è consentita solo per la Regione e il percorso della risorsa.

Quando al posto di ArnLike viene utilizzato StringLike, la corrispondenza ignora la struttura dell’ARN e consente una corrispondenza parziale, indipendentemente dalla parte sostituita dal 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" } }

AWS KMSPolicy delle chiavi

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.

JSON
{ "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 sulle policy delle chiavi AWS KMS, consulta Utilizzo delle policy delle chiavi in AWS KMS nella Guida per Developer di AWS Key Management Service.

Per ulteriori informazioni sull'utilizzo della crittografia lato server con AWS KMS per Amazon SQS e Amazon SNS, consulta le seguenti sezioni: