¿Cómo actualizo mi política de acceso de SQS para aplicar el acceso con privilegio mínimo?

Última actualización: 12-08-2022

Para aislar los ataques maliciosos, quiero restringir el acceso a mi punto de conexión de VPC para mi cola de Amazon Simple Queue Service (Amazon SQS). ¿Cómo puedo denegar el acceso desde otros puntos de conexión de VPC y limitar los permisos de origen de eventos de la función de AWS Lambda?

Resolución

Para proteger su cola de SQS, aplique los principios de privilegio mínimo a su política de acceso de SQS. Puedes aislar cualquier ataque malicioso en su cola si únicamente permite solicitudes desde un punto de conexión de VPC específico y una función Lambda especificada con asignación de origen de eventos. Puede proteger su cola y aislar los ataques mediante la implementación de la siguiente política de acceso de SQS:

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

Esta política de acceso de SQS hace lo siguiente:

  • Si el punto de conexión de VPC no coincide con el valor de aws:sourceVpce proporcionado al realizar la solicitud, la política deniega los mensajes del cliente enviados a la cola de SQS.
  • Cuando el rol de ejecución de la función de Lambda no es PrincipalArn, la política deniega el permiso de la función de Lambda.

Las condiciones ArnNotEquals y StringNotEquals de la política utilizan la lógica de evaluación OR. Si alguna de las afirmaciones es verdadera, se permitirá la solicitud.

Para obtener más información sobre la lógica de evaluación de las condiciones, consulte Creación de una condición con varias claves o valores.


Tutorial: Sending a message to an Amazon SQS queue from Amazon Virtual Private Cloud (Envío de un mensaje a una cola de Amazon SQS desde Amazon Virtual Private Cloud)

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?