我正在 ec2 机器上的 docker 中设置一个 go 服务器,该服务器使用 aws-sdk-go 模块来调用 AWS api。由以下代码构建的二进制文件在容器内运行时会出现证书问题。相同的二进制文件运行良好,并在主机上运行时给出预期结果。package mainimport ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/autoscaling")func main() { svc := autoscaling.New(session.New(), aws.NewConfig().WithRegion("us-east-1")) input := &autoscaling.DescribeAutoScalingGroupsInput{ AutoScalingGroupNames: []*string{ aws.String("spark-worker-asg"), }, } result, err := svc.DescribeAutoScalingGroups(input) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case autoscaling.ErrCodeInvalidNextToken: fmt.Println(autoscaling.ErrCodeInvalidNextToken, aerr.Error()) case autoscaling.ErrCodeResourceContentionFault: fmt.Println(autoscaling.ErrCodeResourceContentionFault, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result)}错误日志:RequestError: send request failedcaused by: Post https://autoscaling.us-east-1.amazonaws.com/: x509: certificate signed by unknown authority
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
您不需要将 IAM 角色分配给 docker 容器,它已经使用主机 IAM 角色作为 Docker 容器可以访问的主机元数据。
造成的:发布https://autoscaling.us-east-1.amazonaws.com/:x509:由未知机构签名的证书
上面的错误不是由于权限造成的,而是您的 Docker 映像中缺少某些内容。
尝试添加ca-certificates
docker 容器。
确保您的实例上安装了 ca-certificates 包。安装后重新启动 Go 程序。
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消