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

调用Go语言acmpca.GetCertificate()时出现NoCredentialProviders错误求助

解决AWS ACM PCA GetCertificate()的NoCredentialProviders错误

错误分析

从报错信息来看,AWS SDK在获取凭证时依次尝试了环境变量、共享凭证文件(尝试读取/root/.aws/credentials但未找到)、EC2实例角色(无法访问元数据服务),均失败。但你明确凭证已存储在~/.aws/credentials中,核心问题大概率是代码运行用户与存储凭证的用户不一致,或者凭证文件未被SDK正确识别。

解决方案

1. 对齐代码运行用户与凭证存储用户

报错里SDK尝试读取/root/.aws/credentials,说明代码是以root用户运行的,但你的凭证存放在普通用户的~/.aws/credentials(比如/home/your-user/.aws/credentials)。可以通过两种方式解决:

  • 切换到存储凭证的普通用户运行代码;
  • 将凭证复制到root用户的对应目录,并设置正确权限:
    mkdir -p /root/.aws
    cp /home/your-user/.aws/credentials /root/.aws/
    chmod 600 /root/.aws/credentials
    

2. 显式指定凭证文件路径

在创建AWS Session时,直接指定凭证文件的绝对路径,避免依赖默认的HOME路径:

import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/credentials/sharedcredentials"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/acmpca"
)

func main() {
    // 替换为你的凭证文件实际路径和profile名称(默认是default)
    creds := sharedcredentials.NewCredentials("/home/your-user/.aws/credentials", "default")
    sess := acmpca.New(session.New(&aws.Config{
        Region:      aws.String("us-east-1"),
        Credentials: creds,
    }))
    
    params := &acmpca.GetCertificateInput{
        CertificateArn:          aws.String("ARN"),
        CertificateAuthorityArn: aws.String("ARN"),
    }
    resp, err := sess.GetCertificate(params)
    if err != nil {
        fmt.Println("got error := ", err.Error())
        return
    }
    fmt.Printf("++++ response ++++:= %+v", resp)
}

3. 验证凭证文件的格式与权限

  • 确保~/.aws/credentials格式正确:
    [default]
    aws_access_key_id = YOUR_ACCESS_KEY
    aws_secret_access_key = YOUR_SECRET_KEY
    
  • 必须设置严格的文件权限,禁止其他用户读取:
    chmod 600 ~/.aws/credentials
    

4. 检查HOME环境变量

如果代码运行时的HOME环境变量被修改,SDK会找不到凭证文件。可以先打印HOME变量确认:

echo $HOME

如果输出不是存储凭证的用户家目录,需要修正HOME变量后再运行代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:35:31