AWS管理的ElasticSearch(现在称为OpenSearch)背后的ALB + Okta单点登录认证-不可能?&



假设不可能将AWS管理的elasticsearch (opensearch) - Kibana置于ALB之后,我是否正确?我想配置ALB,以便它在将请求重定向到Kibana (AWS管理的elasticsearch)之前使用OKTA SSO进行身份验证。

有哪些替代方案?我看到一些人提到使用lambda作为代理——将lambda放在ALB后面,然后让lambda将请求重定向到elasticsearch。我不知道这是怎么做到的——以前有人有过类似的经历吗?有什么推荐的阅读材料吗?

谢谢

可以配置应用程序负载均衡器来使用Cognito服务对用户进行身份验证,并将请求转发到私有子网中可用的任何应用程序。

您需要创建一个包含2个操作的侦听器规则:

  • authenticate-cognito动作,将用户重定向到您的SSO提供程序登录页面(必须配置cognito用户池);
  • forward行动到您的目标群体与应用程序。

参见terraformaws_lb_listener_rule定义的示例:

resource "aws_lb_listener_rule" "listener_rule" {
listener_arn = your_alb_listener_443_arn
action {
type = "authenticate-cognito"
authenticate_cognito {
user_pool_arn = your_cognito_user_pool.cognito_user_pool.arn
user_pool_client_id = your_user_pool_client_id
user_pool_domain = your_cognito_user_pool_domain
}
}
action {
type = "forward"
target_group_arn = your_lb_target_group_arn
}
condition {
host_header {
values = [
"your_domain" # resolves ALB endpoint
]
}
}
lifecycle {
create_before_destroy = true
}
}

正如Patrick和Leo在评论中提到的,AWS OpenSearch提供了细粒度的访问控制,并嵌入了SSO身份验证机制,允许您使用现有的身份提供者:

SAML验证
  • AWS Cognito认证

如果您的集群是公开可用的,那么它工作得非常好然而,文档并没有说明当集群在VPC(私有子网)中提供时它是如何工作的。

参考这个问题。

最新更新