根据内容限制向SQS发送消息

Limit sending messages to SQS based on the content

使用IAM策略,是否可以阻止用户发送包含特定属性的SQS消息?

例如,我想允许 IAM 用户 "U1" 仅发送属性 "City" 设置为 "Rome" 或 "Paris" 的消息。提供任何其他城市应该会引发错误。

为每个城市创建一个队列不是一个合理的方法。

否 SQS 不支持此类功能

如果您想要这样的功能,您可以在 SQS 之前添加一层 AWS API 网关和 AWS Lambda,并要求您的用户调用 API 网关端点。然后从 API 网关,此请求转到 Lambda,您可以在其中执行检查和验证,然后如果一切正常,将消息插入 SQS,否则返回错误

如果您想使用 IAM 管理它,您可以将 API 网关替换为 S3,并通过 S3 Put 通知调用 lambda。您可以在 S3 中创建文件夹并在这些文件夹上设置 IAM 访问权限。有关详细信息,请参阅 here