Per isolare gli attacchi dannosi, voglio limitare l'accesso al mio endpoint VPC per la mia coda Amazon Simple Queue Service (Amazon SQS). Desidero negare l'accesso da altri endpoint VPC e limitare le autorizzazioni all'origine degli eventi della funzione AWS Lambda.
Risoluzione
Per proteggere la coda SQS, applica i principi del minimo privilegio alla tua politica di accesso SQS. Puoi isolare eventuali attacchi dannosi nella tua coda autorizzando le richieste solo da un endpoint VPC specificato e da una funzione Lambda specificata con mappatura della fonte degli eventi. È possibile proteggere la coda e isolare gli attacchi implementando la seguente politica di accesso SQS:
{
"Version": "2012-10-17",
"Id": "default_policy_ID",
"Statement": [
{
"Sid": "owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:XXXXXXX:root"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:us-east-1:XXXXXXXX:test.fifo"
},
{
"Sid": "RestrictSendReceiveToVpce",
"Effect": "Deny",
"Principal": "*",
"Action": [
"sqs:SendMessage",
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:DeleteQueue",
"sqs:PurgeQueue"
],
"Resource": "arn:aws:sqs:us-east-1: XXXXXX:test.fifo",
"Condition": {
"ArnNotEquals": {
"aws:PrincipalArn": "Lambda execution role arn"
},
"StringNotEquals": {
"aws:SourceVpce": "vpce-XXXXX"
}
}
}
]
}
Questa politica di accesso SQS effettua le seguenti operazioni:
- Se l'endpoint VPC non è quello di aws:sourceVpce fornito al momento della richiesta, la policy nega i messaggi client inviati alla coda SQS.
- Quando il ruolo di esecuzione della funzione Lambda non è PrincipalArn, la policy nega l'autorizzazione della funzione Lambda.
Le condizioni ArnNotEquals e StringNotEquals nella politica utilizzano la logica di valutazione OR. Se una delle due affermazioni è vera, la richiesta sarà consentita.
Per ulteriori informazioni sulla logica di valutazione delle condizioni, vedere Creazione di una condizione con più chiavi o valori.
Informazioni correlate
Tutorial: Invio di un messaggio a una coda Amazon SQS da Amazon Virtual Private Cloud