如何通过ACM证书ARN查询其关联的ELB负载均衡器
ACM证书反查关联ELB负载均衡器的可行实现方案
目前AWS没有提供直接输入ACM证书ARN、一键返回所有关联ELB的原生API,但有两类可落地的查询路径可实现需求:
方法1:通过AWS Config资源拓扑查询
- 适用场景:账号已开启AWS Config的资源配置记录功能,无需编写批量遍历脚本
- 操作流程:
- 进入AWS Config控制台的「资源关系」检索页面
- 以目标ACM证书的ARN为检索源资源,设置关联方向为「被关联资源」,筛选资源类型覆盖两类ELB:
- 新版负载均衡器(ALB/NLB):
AWS::ElasticLoadBalancingV2::LoadBalancer - 传统经典负载均衡器(CLB):
AWS::ElasticLoadBalancing::LoadBalancer
- 新版负载均衡器(ALB/NLB):
- 系统会直接输出所有绑定该证书的负载均衡器,同时展示对应的监听器关联配置
方法2:通过AWS CLI批量配置反查(通用兜底方案)
- 实现原理:遍历账号下所有ELB的监听器配置,精确匹配监听器绑定的证书ARN和目标值是否一致,不依赖额外服务即可运行
- 可直接复用的查询命令:
# 替换为待查询的ACM证书完整ARN target_cert_arn="arn:aws:acm:region:account-id:certificate/xxxx-xxxx-xxxx" # 遍历所有ALB/NLB,匹配目标证书的关联负载均衡器 for lb_arn in $(aws elbv2 describe-load-balancers --query 'LoadBalancers[*].LoadBalancerArn' --output text); do aws elbv2 describe-listeners \ --load-balancer-arn $lb_arn \ --query "Listeners[?Certificates[?CertificateArn=='$target_cert_arn']].{LbArn:'$lb_arn',ListenerArn:ListenerArn}" \ --output text done # 同步遍历传统CLB,避免漏查证书绑定关系 aws elb describe-load-balancers \ --query "LoadBalancerDescriptions[?ListenerDescriptions[?SSLCertificateId=='$target_cert_arn']].{ClbName:LoadBalancerName}" \ --output text - 注意事项:证书ARN需要做全字符精确匹配,核对时不要遗漏区域、账号ID、证书UUID部分的内容,避免格式不匹配导致漏查
额外提示:如果证书是通过CloudFormation、Terraform等IaC工具部署的,可以直接查询对应IaC的资源栈状态,更快定位关联的ELB资源,无需遍历全量账号资源。
内容的提问来源于stack exchange,提问作者BlueSaturn
相关产品推荐
相关产品推荐

