问题标签 [aws-alb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1005 浏览

openid-connect - 我的 EKS Web 应用程序如何通过 OKTA OIDC 检索由 AWS ALB 进行身份验证的当前用户

我正在使用部署在 Amazon Elastic Kubernetes Service ( EKS ) 上的 Web 应用程序。用户身份验证通过 Okta 完成。一切正常,但如果我已登录,我希望 Web 应用程序显示我的姓名,即当前用户的姓名。

有一篇博客文章详细描述了我所拥有的设置类型,这也是通过 Terraform 完成的。到目前为止,我对此的在线搜索使我找到了有关如何设置身份验证(已经完成)而不是如何获取当前用户的答案。

我的基本理解是:原始请求发送到应用程序负载均衡器 (ALB),并使用 Okta 处理身份验证。最终结果是一个会话 cookie,应用程序通过浏览器将其与未来的请求一起发送,以便它们最终到达后端可以响应的目标 IP。这是AWS 文档中有关身份验证流程的相关文本:

“负载均衡器验证 ID 令牌后,它会与 IdP 用户信息端点交换访问令牌以获取用户声明。

负载均衡器创建身份验证会话 cookie 并将其发送到客户端,以便客户端的用户代理可以在发出请求时将 cookie 发送到负载均衡器。”

我可以从负载均衡器侦听器规则中看到有一个用户信息端点:https ://myorg.okta.com/oauth2/v1/userinfo但客户端应用程序可以使用它来检索用户详细信息,如果可以,如何? 我尝试curl使用会话 cookie 但收到 400 错误。

Okta 网站上还记录了一个 API ,它“获取链接到 API 令牌或会话 cookie 的当前用户”:

我没有 API 令牌,所以我尝试使用AWSELBAuthSessionCookie但得到:

{"errorCode":"E0000011","errorSummary":"Invalid token provided","errorLink":"E0000011","errorId":"oaeRNui7fSPQIq_LWuGro5EbV","errorCauses":[]}

任何带有步骤摘要和相关文档链接的答案都会很棒。谢谢你。

0 投票
1 回答
2094 浏览

amazon-web-services - AWS ALB - 您必须从至少两个可用区中指定子网

对于 ALB - “您必须从至少两个可用区中指定子网。”

对于 NLB - “您可以从一个或多个可用区指定子网。”

强制执行 2 个可用区作为 ALB 的必须要求而不是 NLB 的原因是什么?

0 投票
1 回答
7363 浏览

amazon-web-services - 错误 aws_alb_target_group 设置了“计数”,必须在特定实例上访问其属性

我正在使用Terraform v0.12.26并设置aws_alb_target_group为:

当地人长这样:

当我运行terraform apply它返回以下错误:

我遵循了这个实现

知道如何解决吗?

输出

0 投票
2 回答
4318 浏览

kubernetes-ingress - AWS EKS ALB 入口控制器不工作,并且 HOST 未填充

我正在尝试使用 alb Ingress 控制器在 eks 上实现一个简单的“hello world”。

我的目标是..

  1. 创建集群
  2. 部署 Ingress 以使用 ELB 访问

做了以下事情

  1. 创建 EKS 集群
  2. 添加了“alb 入口控制器”
  1. 创建的应用程序如下
  1. 服务如下
  1. 入口控制器如下
  1. 输出如下,没有得到主机地址作为ELB。并且无法从外部访问

更新 :

在 alb-ingress-controller-5f96d7df77-mdrw2 日志中发现以下错误。无法找到如何更改

0 投票
2 回答
6884 浏览

node.js - Nginx 作为 AWS ALB 背后的反向代理(自签名)

我在 AWS 中创建了一个环境,其中包括一个安装了节点 js Web 服务器和 Nginx 的 EC2 实例,位于自签名应用程序负载均衡器后面。

我的 ALB 从 HTTPS (443) 获取请求并通过 HTTP (80) 将它们转发到 Nginx。我的 Nginx 应该从 ALB 获取请求(在端口 80 中)并将它们转发到端口 9090(由节点 js Web 服务器使用)。

但是,我在将请求从 Nginx 转换到应用程序时遇到了问题。在 HTTP 上使用 ALB DNS 输入 URL 时,我能够访问上述页面(而不是我的网络服务器应用程序页面): 在此处输入图像描述

我的 default.conf 文件附在上面: 在此处输入图像描述

我所有的安全组都可以测试问题(在 443、80、9090 上)。所以端口不是问题,而是 Nginx 配置。

另外,我上面介绍的目标群体: 在此处输入图像描述

可能是什么问题/我应该做哪些进一步的配置?谢谢你。

0 投票
1 回答
557 浏览

amazon-web-services - 无需停机即可续订 AWS ACM 证书(零停机)

我们能否在不停机(零停机)的情况下为 APIGW 或 ELB(通过 ACM 管理的证书)进行自动证书更新?

假设: ACM 证书和 AWS 服务有资格进行自动续订,并且在域验证方面没有差距/问题。事实上,让我们假设 ACM 已经获得了更新的证书。

0 投票
0 回答
65 浏览

aws-application-load-balancer - Amazon Application Load Balancer wss 到 ws 转发问题

AWS Fargate 集群中有一个目标组,用于管理 Docker 容器内的 node.js 应用程序。每个应用程序都提供 Web 套接字连接(Web 套接字,而不是 socket.io!)。

Application Load Balancer 后面有一个未加密的连接 (HTTP/ws)。但是,在它之外是 HTTPS / wss。因此,当 HTTPS 请求到达 Application Load Balancer 时,它会解密请求并将 HTTP 请求转发到选定的容器。

问题是——如何(以及在​​哪里)为 Web 套接字请求配置 wss->ws 转发(有一个特定的 URL)?

HTTPS->HTTP 规则进行 wss->HTTP 转换,这是非常错误的。如何实现 wss->ws 转换,这可能吗?

0 投票
1 回答
894 浏览

amazon-web-services - Go Lambda 的 AWS ALB 总是返回“502 Bad Gateway”

我有一个用 Go 语言实现的 AWS Lambda。Lambda 由 ALB 触发。当我从外部调用 ALB 时,它总是返回:

在 CloudWatch 中,我可以看到调用了 Lambda。在本文中,我读到 ALB 需要来自 Lambda 的非常具体的响应对象。我已经将它实现为一个结构。这是 Go Lambda 代码:

在 Cloudwatch 中,我可以看到 Lambda 被调用,这是它返回的字符串:

据我所知,它看起来像本文中描述的响应规范

ALB 本身的日志如下所示:

我已经在调试上投入了几个小时,但我真的不知道为什么 ALB 总是返回 502 错误。你能看到错误吗?我做错了什么?

0 投票
1 回答
184 浏览

amazon-web-services - 通过 ALB 安全连接 AWS EC2 DB

我的痛点。我有一个安装了 Postgres 的 Ec2(位于私有子网中),一切正常。所有成员只有在 DEV 集群中时才能连接到数据库(我的意思是相同的 CIDR,安全组旨在仅从该 CIDR 获取流量)。这里的问题是我想在本地获得连接我无法更改安全组。最初,我计划创建一个公共网络负载均衡器,并将 ec2 作为端口 5432 的目标,并安装 apache2 进行健康检查(200 成功作为健康)。但仍然无法连接该 Ec2 机器。任何人都可以建议最佳做法。

根据我们的政策,只能打开 HTTPS 端口

0 投票
1 回答
81 浏览

amazon-web-services - 带有 ssl 的单个 alb 后面的私有子网中的几个域

我想在 alb 后面为 ssl 的 ec2 实例创建几个域,其中 2 个在私有区域中。我有非常简单的配置,但不知道如何解决这个我有什么:

所有实例都在 1 个 vpc 中 1 个用于 ssl 的 ALB(几乎没有用于域的证书) 用于域的 route53

目前,所有 4 个实例都在公共区域中,因此域作为别名指向 alb,alb 终止所有域的 SSL,alb 基于主机重定向到每个实例

我想要什么:隐藏私有区域中的后端实例,但我仍然想使用域名访问并且仍然使用 ssl

正如我现在看到的那样:通过 Route 53 的域指向 ALB ALB 指向 2 个 vpc 每个 vpc 在公共子网中的前端和私有子网中的后端

但在这种情况下,我不能为 alb 编写指向主机的规则,因为它应该指向 vpc。请帮助我,任何建议将不胜感激。