首页 > 解决方案 > vpc中的Laravel,无需程序访问即可访问sqs

问题描述

我有一个在 VPC 内的 ec2 实例上运行的 Laravel 应用程序。现在我想从应用程序连接到 SQS。使用编程访问似乎可行,但我想使用 SQS 端点,而不必使用密钥和秘密。

从技术上讲,这应该可以通过将 AWS 资源链接在一起来实现。知道如何在 Laravel 中进行设置吗?

标签: laravelamazon-ec2amazon-sqsvpc

解决方案


听起来您需要使用附加到EC2 实例的IAM 角色(基本上是一组策略)。您包含的策略将有一个部分用于访问您的 SQS 队列(或至少在 SQS 中对其执行某些操作)。这有效地允许将临时凭据提供给实例,而无需将它们包含在代码中。

这个角色可能看起来像这样:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "sqs:ReceiveMessage",
            "sqs:DeleteMessage",
            "sqs:GetQueueAttributes"
            ...<any other actions>
        ],
        "Resource": <SQS Queue ARN>
    }
]
}

您在 EC2 控制台中将此角色附加到您的 EC2 实例 - 选择实例,转到Instance Settings > Attach/Replace IAM Role


推荐阅读