Comment puis-je mettre à jour ma stratégie d'accès SQS pour appliquer l'accès à moindre privilège ?

Date de la dernière mise à jour : 12/08/2022

Pour isoler les attaques malveillantes, je souhaite restreindre l'accès à mon point de terminaison d'un VPC pour ma file d'attente Amazon Simple Queue Service (Amazon SQS). Comment puis-je refuser l'accès à partir d'autres points de terminaison d'un VPC et limiter les autorisations de sources d'événements de la fonction AWS Lambda ?

Résolution

Pour sécuriser votre file d'attente SQS, appliquez les principes du moindre privilège à votre stratégie d'accès SQS. Vous pouvez isoler toute attaque malveillante dans votre file d'attente en autorisant uniquement les demandes provenant d'un point de terminaison d'un VPC spécifié et d'une fonction Lambda spécifiée avec mappage de sources d'événements. Vous pouvez sécuriser votre file d'attente et isoler les attaques en mettant en œuvre la stratégie d'accès SQS suivante :

{
  "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"
        }
      }
    }
  ]
}

Cette stratégie d'accès SQS effectue les opérations suivantes :

  • Si le point de terminaison d'un VPC n'est pas le paramètre aws:sourceVpce fourni lors de la demande, la stratégie refuse les messages clients envoyés à la file d'attente SQS.
  • Lorsque le rôle d'exécution de la fonction Lambda n'est pas PrincipalArn, la stratégie refuse l'autorisation de la fonction Lambda.

Les conditions ArnNotEquals et StringNotEquals de la stratégie utilisent la logique d'évaluation OR. Si l'une des déclarations est vraie, la demande sera autorisée.

Pour plus d'informations sur la logique d'évaluation des conditions, voir Création d'une condition avec plusieurs clés ou valeurs.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?