问题标签 [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.
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":[]}
任何带有步骤摘要和相关文档链接的答案都会很棒。谢谢你。
amazon-web-services - AWS ALB - 您必须从至少两个可用区中指定子网
对于 ALB - “您必须从至少两个可用区中指定子网。”
对于 NLB - “您可以从一个或多个可用区指定子网。”
强制执行 2 个可用区作为 ALB 的必须要求而不是 NLB 的原因是什么?
amazon-web-services - 错误 aws_alb_target_group 设置了“计数”,必须在特定实例上访问其属性
我正在使用Terraform v0.12.26
并设置aws_alb_target_group
为:
当地人长这样:
当我运行terraform apply
它返回以下错误:
我遵循了这个实现
知道如何解决吗?
输出
kubernetes-ingress - AWS EKS ALB 入口控制器不工作,并且 HOST 未填充
我正在尝试使用 alb Ingress 控制器在 eks 上实现一个简单的“hello world”。
我的目标是..
- 创建集群
- 部署 Ingress 以使用 ELB 访问
做了以下事情
- 创建 EKS 集群
- 添加了“alb 入口控制器”
- 创建的应用程序如下
- 服务如下
- 入口控制器如下
- 输出如下,没有得到主机地址作为ELB。并且无法从外部访问
更新 :
在 alb-ingress-controller-5f96d7df77-mdrw2 日志中发现以下错误。无法找到如何更改
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 时,我能够访问上述页面(而不是我的网络服务器应用程序页面):
我所有的安全组都可以测试问题(在 443、80、9090 上)。所以端口不是问题,而是 Nginx 配置。
可能是什么问题/我应该做哪些进一步的配置?谢谢你。
amazon-web-services - 无需停机即可续订 AWS ACM 证书(零停机)
我们能否在不停机(零停机)的情况下为 APIGW 或 ELB(通过 ACM 管理的证书)进行自动证书更新?
假设: ACM 证书和 AWS 服务有资格进行自动续订,并且在域验证方面没有差距/问题。事实上,让我们假设 ACM 已经获得了更新的证书。
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 转换,这可能吗?
amazon-web-services - 通过 ALB 安全连接 AWS EC2 DB
我的痛点。我有一个安装了 Postgres 的 Ec2(位于私有子网中),一切正常。所有成员只有在 DEV 集群中时才能连接到数据库(我的意思是相同的 CIDR,安全组旨在仅从该 CIDR 获取流量)。这里的问题是我想在本地获得连接。我无法更改安全组。最初,我计划创建一个公共网络负载均衡器,并将 ec2 作为端口 5432 的目标,并安装 apache2 进行健康检查(200 成功作为健康)。但仍然无法连接该 Ec2 机器。任何人都可以建议最佳做法。
根据我们的政策,只能打开 HTTPS 端口
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。请帮助我,任何建议将不胜感激。