Skip to content
GitHubXDiscord

QueuePolicy

The QueuePolicy resource allows you to manage the permissions for Amazon SQS queues, enabling you to control access and define who can send messages to your queues. For detailed information, refer to the AWS SQS QueuePolicies documentation.

Create a basic SQS QueuePolicy that allows specific AWS accounts to send messages to an SQS queue.

import AWS from "alchemy/aws/control";
const queuePolicy = await AWS.SQS.QueuePolicy("basicQueuePolicy", {
PolicyDocument: {
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Principal: {
AWS: [
"arn:aws:iam::123456789012:root"
]
},
Action: "SQS:SendMessage",
Resource: "arn:aws:sqs:us-east-1:123456789012:myQueue"
}
]
},
Queues: [
"arn:aws:sqs:us-east-1:123456789012:myQueue"
],
adopt: true
});

Configure a queue policy that allows multiple principals and conditions to send messages based on specific attributes.

const advancedQueuePolicy = await AWS.SQS.QueuePolicy("advancedQueuePolicy", {
PolicyDocument: {
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Principal: {
AWS: [
"arn:aws:iam::123456789012:role/MyRole",
"arn:aws:iam::987654321098:root"
]
},
Action: "SQS:SendMessage",
Resource: "arn:aws:sqs:us-east-1:123456789012:myQueue",
Condition: {
"StringEquals": {
"aws:SourceArn": "arn:aws:lambda:us-east-1:123456789012:function:myFunction"
}
}
}
]
},
Queues: [
"arn:aws:sqs:us-east-1:123456789012:myQueue"
],
adopt: false
});

Create a policy that applies to multiple SQS queues, allowing a specific IAM role to send messages.

const multiQueuePolicy = await AWS.SQS.QueuePolicy("multiQueuePolicy", {
PolicyDocument: {
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Principal: {
AWS: "arn:aws:iam::123456789012:role/MyRole"
},
Action: "SQS:SendMessage",
Resource: [
"arn:aws:sqs:us-east-1:123456789012:myQueue1",
"arn:aws:sqs:us-east-1:123456789012:myQueue2"
]
}
]
},
Queues: [
"arn:aws:sqs:us-east-1:123456789012:myQueue1",
"arn:aws:sqs:us-east-1:123456789012:myQueue2"
]
});

These examples demonstrate how to effectively manage SQS QueuePolicies using Alchemy, enabling you to control access to your SQS resources with precision.