You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI为ALB监听器添加Cognito用户池认证

AWS CLI 为ALB监听器添加Cognito用户池认证

前提准备

先提前定义好所需变量(替换成你的实际ARN/ID):

ALB_ARN="arn:aws:elasticloadbalancing:区域:账号ID:loadbalancer/app/你的ALB名称/xxx"
# 若修改现有监听器,需定义此变量
LISTENER_ARN="arn:aws:elasticloadbalancing:区域:账号ID:listener/app/你的ALB名称/xxx/xxx"
TG_ARN="arn:aws:elasticloadbalancing:区域:账号ID:targetgroup/你的TG名称/xxx"
CERTIFICATE_ARN="arn:aws:acm:区域:账号ID:certificate/xxx"
COGNITO_USER_POOL_ARN="arn:aws:cognito-idp:区域:账号ID:userpool/xxx"
COGNITO_CLIENT_ID="你的Cognito用户池客户端ID"

方法一:给现有443 HTTPS监听器添加Cognito认证

使用modify-listener命令更新监听器的默认动作,将认证步骤放在转发动作之前:

aws elbv2 modify-listener \
  --listener-arn $LISTENER_ARN \
  --default-actions '[
    {
      "Type": "authenticate-cognito",
      "AuthenticateCognitoConfig": {
        "UserPoolArn": "'"$COGNITO_USER_POOL_ARN"'",
        "UserPoolClientId": "'"$COGNITO_CLIENT_ID"'",
        "UserPoolDomain": "你的Cognito用户池域名",
        "Scope": "openid",
        "OnUnauthenticatedRequest": "authenticate"
      },
      "Order": 1
    },
    {
      "Type": "forward",
      "TargetGroupArn": "'"$TG_ARN"'",
      "Order": 2
    }
  ]'

说明:UserPoolDomain是你的Cognito用户池配置的域名(例如xxx.auth.区域.amazoncognito.com);OnUnauthenticatedRequest可选值为authenticate(跳转认证)、deny(返回401)、allow(直接放行),可按需调整。


方法二:新建带Cognito认证的443 HTTPS监听器

如果不想修改现有监听器,直接创建新的HTTPS监听器并配置认证:

aws elbv2 create-listener \
  --load-balancer-arn $ALB_ARN \
  --protocol HTTPS \
  --port 443 \
  --certificates CertificateArn=$CERTIFICATE_ARN \
  --default-actions '[
    {
      "Type": "authenticate-cognito",
      "AuthenticateCognitoConfig": {
        "UserPoolArn": "'"$COGNITO_USER_POOL_ARN"'",
        "UserPoolClientId": "'"$COGNITO_CLIENT_ID"'",
        "UserPoolDomain": "你的Cognito用户池域名",
        "Scope": "openid",
        "OnUnauthenticatedRequest": "authenticate"
      },
      "Order": 1
    },
    {
      "Type": "forward",
      "TargetGroupArn": "'"$TG_ARN"'",
      "Order": 2
    }
  ]'

验证配置

执行以下命令查看监听器的动作配置,确认认证规则已生效:

# 针对现有监听器
aws elbv2 describe-listeners --listener-arns $LISTENER_ARN
# 针对新建监听器,先获取ARN再查询
aws elbv2 describe-listeners --load-balancer-arn $ALB_ARN

内容的提问来源于stack exchange,提问作者Revan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:13