Currently we have a system that processes messages from an external JMS message queue. With our blue-green deployments, part of the activation of a stack is modifying security groups to enable/disable the rules needed to connect to the external JMS queue so that only the active stack can process messages. This works great for our current environment however the external queue is not that reliable so we are looking to replace it with SNS topics + SQS queues. We plan to have a single static SQS queue that is subscribed to the SNS topic. The problem we are having is how to enable/disable access to read from the SQS queue so that we can do blue-green and have only 1 stack able to read from the queue at a time?
Would have multiple instance roles, and part of the activation would be modifying the role to give permission to read from SQS work? Is there a better solution?