Come posso risolvere l'errore dell'operazione di pubblicazione in Amazon SNS?
Ricevo un errore in Amazon Simple Notification Service (Amazon SNS). L'errore si verifica quando utilizzo una sottorete e cerco di pubblicare il mio argomento SNS da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) multi-account.
Breve descrizione
Se ricevi un errore di autorizzazione quando richiami l'operazione Pubblica, completa i passaggi nella sezione Verify EC2 instance IAM role and SNS topic access policy permissions.
Se riscontri problemi con un argomento SNS che utilizza la crittografia lato server e ricevi un errore "KMSAccessDenied", completa i passaggi nella sezione Verifica le impostazioni della chiave KMS e le autorizzazioni del ruolo IAM EC2.
Nota: Se la tua istanza EC2 non riesce a connettersi a Internet con un gateway Internet, vedi Perché la mia istanza Amazon EC2 non può connettersi a Internet utilizzando un gateway Internet?
Soluzione
Verifica il ruolo IAM dell'istanza EC2 e le autorizzazioni della policy di accesso agli argomenti SNS
Le autorizzazioni dei ruoli di AWS Identity and Access Management (IAM) non configurate correttamente per la tua istanza EC2 e la policy di accesso tematica di Amazon SNS possono causare il seguente errore:
"An error occurred (AuthorizationError) when calling the Publish operation: User: arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role/i-0123456789f804d is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-2:123456789012:cross-account-ec2-sns."
Per risolvere questo errore, consulta How do I publish to an Amazon SNS topic from a cross-account Amazon EC2 instance using an IAM EC2 role?
Verifica le impostazioni delle chiavi KMS e le autorizzazioni dei ruoli IAM EC2
Se le autorizzazioni per il ruolo IAM della tua istanza EC2 e la policy della chiave del Servizio di gestione delle chiavi AWS (AWS KMS) della tua chiave AWS KMS (chiave KMS) non sono corrette, puoi ricevere il seguente errore:
An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re quest ID: IDNumber; Proxy: null)
Nota: L'errore precedente si verifica solo quando l'argomento SNS utilizza la crittografia lato server.
Per risolvere l'errore, controlla le impostazioni delle chiavi KMS e le autorizzazioni della policy della chiave AWS KMS:
1. Verifica che la tua chiave KMS sia abilitata.
2. Verifica che il ruolo IAM dell'istanza EC2 sia autorizzato a eseguire kms:GenerateDataKey* e kms:Decrypt nella policy della chiave AWS KMS. Questa è la policy della chiave della chiave KMS utilizzata per la crittografia lato server sull'argomento SNS. Ad esempio:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }
3. Conferma che le autorizzazioni kms:GenerateDataKey* e kms:Decrypt siano associate al ruolo IAM della tua istanza EC2.
Nota: È consigliabile fornire i privilegi minimi necessari. Pertanto, assicurati di sostituire il valore Risorsa con il tuo KMS Key ARN nella seguente politica di ruolo IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" } ] }
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 3 anni fa