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

如何获取boto3通过STS AssumeRoleWithSAML连接AWS的SSL密码套件?

记录boto3 STS连接的SSL密码套件信息

boto3的默认DEBUG日志不会输出SSL握手的细节,要获取SSL密码套件信息,得调整它底层依赖库的日志配置——boto3基于botocore,而botocore又用urllib3处理HTTP/SSL连接,所以需要开启这些库的DEBUG日志:

  1. 配置全局日志和底层库的日志级别
    使用以下代码替换你原来的日志配置,确保覆盖所有相关组件:

    import logging
    import boto3
    
    # 配置日志格式,方便区分不同组件的日志
    logging.basicConfig(
        level=logging.DEBUG,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    )
    
    # 开启urllib3的DEBUG日志(核心HTTP/SSL连接组件)
    logging.getLogger('urllib3').setLevel(logging.DEBUG)
    # 开启botocore的详细日志(boto3的底层核心库)
    logging.getLogger('botocore').setLevel(logging.DEBUG)
    # 若使用requests作为HTTP后端,也开启其日志(部分环境下需要)
    logging.getLogger('requests').setLevel(logging.DEBUG)
    
    # 创建STS客户端并执行AssumeRoleWithSAML操作
    sts_client = boto3.client('sts')
    # 替换为你的实际认证参数
    response = sts_client.assume_role_with_saml(
        RoleArn='arn:aws:iam::123456789012:role/YourSamlRole',
        PrincipalArn='arn:aws:iam::123456789012:saml-provider/YourSamlProvider',
        SAMLAssertion='your-base64-encoded-saml-assertion'
    )
    
  2. 从日志中提取SSL密码套件信息
    运行代码后,你会在日志中看到类似这样的行:

    DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): sts.amazonaws.com:443
    DEBUG:urllib3.connectionpool:https://sts.amazonaws.com:443 "POST / HTTP/1.1" 200 1234
    DEBUG:urllib3.connectionpool:SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384

    最后一行里的TLS_AES_256_GCM_SHA384就是本次连接使用的SSL密码套件。

如果日志量太大,你可以只针对性开启urllib3.connectionpool的日志,过滤掉其他冗余信息:

logging.getLogger('urllib3.connectionpool').setLevel(logging.DEBUG)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:47:19