Wie aktualisiere ich meine SQS-Zugriffsrichtlinie, um den Zugriff mit den geringsten Berechtigungen anzuwenden?

Letzte Aktualisierung: 12.08.2022

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. Wie verweigere ich den Zugriff von anderen VPC-Endpunkten und schränke die Berechtigungen für AWS-Lambda-Funktionsereignisquellen ein?

Auflösung

Um Ihre SQS-Warteschlange zu sichern, wenden Sie die Prinzipien der geringsten Berechtigungen auf Ihre SQS-Zugriffsrichtlinie an. Sie können alle böswilligen Angriffe in Ihrer Warteschlange isolieren, indem Sie Anforderungen nur von einem bestimmten VPC-Endpunkt und einer bestimmten Lambda-Funktion mit Ereignisquellenzuordnung zulassen. Sie können Ihre Warteschlange sichern und Angriffe isolieren, indem Sie die folgende SQS-Zugriffsrichtlinie implementieren:

{
  "Version": "2008-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 führt Folgendes aus:

  • Wenn der VPC-Endpunkt nicht der bei der Anforderung angegebene aws:sourceVpce ist, dann verweigert die Richtlinie die an die SQS-Warteschlange gesendeten Client-Nachrichten.
  • Wenn die Ausführungsrolle der Lambda-Funktion nicht PrincipalArn ist, verweigert die Richtlinie die Berechtigung der Lambda-Funktion.

Die Bedingungen arnNoteEquals und StringNoteEquals in der Richtlinie verwenden die OR-Auswertungslogik. Wenn eine der beiden Aussagen wahr ist, wird die Anforderung zugelassen.

Weitere Informationen zur Auswertungslogik für Bedingungen finden Sie unter Erstellen einer Bedingung mit mehreren Schlüsseln oder Werten.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?