Come posso risolvere l'errore dell'operazione di pubblicazione in Amazon SNS?

3 minuti di lettura
0

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": "*"
    }
  ]
}

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa