Um böswillige Angriffe zu isolieren, möchte ich den Zugriff auf meinen VPC-Endpunkt für meine Amazon Simple Queue Service (Amazon SQS)-Warteschlange einschränken. Ich möchte den Zugriff von anderen VPC-Endpunkten aus verweigern und die Berechtigungen für die Ereignisquelle von AWS Lambda-Funktionen einschränken.
Lösung
Um Ihre SQS-Warteschlange zu sichern, wenden Sie die Prinzipien der geringsten Rechte auf Ihre SQS-Zugriffsrichtlinie an. Sie können alle bösartigen Angriffe in Ihrer Warteschlange isolieren, indem Sie nur Anfragen von einem bestimmten VPC-Endpunkt und einer bestimmten Lambda-Funktion mit Zuordnung von Ereignisquellen zulassen. Sie können Ihre Warteschlange sichern und Angriffe isolieren, indem Sie die folgende SQS-Zugriffsrichtlinie implementieren:
{
"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"
}
}
}
]
}
Diese SQS-Zugriffsrichtlinie bewirkt Folgendes:
- Wenn der VPC-Endpunkt nicht der aws:SourceVPCE ist, der bei der Anforderung angegeben wurde, verweigert die Richtlinie die an die SQS-Warteschlange gesendeten Client-Nachrichten.
- Wenn die Ausführungsrolle der Lambda-Funktion nicht PrincipalArn ist, verweigert die Richtlinie der Lambda-Funktion die Berechtigung.
Die Bedingungen arnNotEquals und StringNotEquals in der Richtlinie verwenden die OR-Bewertungslogik. Wenn eine der Aussagen true ist, wird die Anfrage zugelassen.
Weitere Informationen zur Bewertungslogik für Bedingungen finden Sie unter Eine Bedingung mit mehreren Schlüsseln oder Werten erstellen.
Ähnliche Informationen
Tutorial: Senden einer Nachricht von Amazon Virtual Private Cloud an eine Amazon SQS-Warteschlange