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

使用twine上传Python包至AWS CodeArtifact时遇401未授权错误求助

排查Twine上传AWS CodeArtifact 401过期凭证问题的思路
  • 检查.pypirc配置的准确性
    打开~/.pypirc文件,确认[myrepo]段的配置:

    • repository地址必须和登录成功返回的地址完全一致
    • username必须是aws
    • password是最新生成的CodeArtifact临时令牌(不是AWS的access key),且没有被意外覆盖。如果不确定,手动重新执行aws codeartifact login命令,然后立刻查看文件内容是否更新。
  • 排除AWS凭证链干扰
    Twine可能优先读取环境变量AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY,而不是.pypirc里的临时令牌。可以暂时清空这些环境变量后重试:

    unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
    

    另外,确保上传时没有通过命令行参数指定其他凭证,覆盖了.pypirc的配置。

  • 校准本地系统时间
    CodeArtifact的临时令牌对时间精度要求高,若本地时间与AWS服务器时间偏差超过5分钟,会被判定为过期。用NTP同步系统时间,比如:

    # Linux
    sudo ntpdate pool.ntp.org
    # macOS
    sudo sntp -sS time.apple.com
    
  • 手动生成令牌验证有效性
    跳过aws codeartifact login,手动生成授权令牌并替换到.pypirc中:

    aws codeartifact get-authorization-token --domain mydomain --domain-owner 111122223333 --region us-east-1 --profile myprofile --query authorizationToken --output text
    

    将输出的令牌复制到.pypirc的password字段,再执行twine上传。如果还是失败,说明令牌本身有问题,需要检查IAM权限或账户配置。

  • 确认IAM权限是否足够
    登录成功仅代表有访问仓库的权限,但上传包需要codeartifact:PutPackageVersion权限。检查当前IAM用户/角色的权限策略,确保包含以下权限:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "codeartifact:PutPackageVersion",
                    "codeartifact:DescribePackageVersion"
                ],
                "Resource": "arn:aws:codeartifact:us-east-1:111122223333:repository/mydomain/myrepo"
            }
        ]
    }
    
  • 升级Twine到最新版本
    旧版Twine可能存在与CodeArtifact API的兼容性问题,导致凭证处理错误。执行升级命令:

    pip install --upgrade twine
    

    升级后重新尝试上传。

  • 用Curl直接测试凭证
    绕过Twine,用Curl测试凭证是否有效:

    curl -u aws:<你的令牌> https://mydomain-111122223333.d.codeartifact.us-east-1.amazonaws.com/pypi/myrepo/simple/
    

    如果返回401,说明令牌无效或权限不足;如果返回200,说明Twine的配置存在问题,需进一步检查Twine的参数或配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:10:30