Para isolar ataques mal-intencionados, quero restringir o acesso ao meu endpoint da VPC para minha fila do Amazon Simple Queue Service (Amazon SQS). Quero negar o acesso de outros endpoints da VPC e limitar as permissões de origem de eventos de funções do AWS Lambda.
Resolução
Para proteger sua fila do SQS, aplique os princípios de privilégio mínimo à sua política de acesso do SQS. Você pode isolar qualquer ataque mal-intencionado em sua fila permitindo solicitações somente de um endpoint de VPC especificado e de uma função do Lambda especificada com mapeamento da origem do evento. Você pode proteger sua fila e isolar ataques implantando a seguinte política de acesso do 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"
}
}
}
]
}
Essa política de acesso do SQS faz o seguinte:
- Se o endpoint da VPC não for o aws:sourceVpce fornecido ao fazer a solicitação, a política negará as mensagens do cliente enviadas para a fila do SQS.
- Quando o perfil de execução da função do Lambda não é PrincipalArn, a política nega a permissão da função do Lambda.
As condições ArnNotEquals e StringNotEquals na política usam a lógica de avaliação OR. Se qualquer uma das afirmações for verdadeira, a solicitação será permitida.
Para obter mais informações sobre a lógica de avaliação das condições, consulte Criar uma condição com várias chaves ou valores.
Informações relacionadas
Tutorial: enviar uma mensagem para uma fila do Amazon SQS a partir da Amazon Virtual Private Cloud