我已经按照此处描述的所有步骤进行操作,当我运行exec命令时,我看到了角色:
kubectl exec -n bn bn-query-service-deployment-7649b5cd45-fdptw env | grep AWS
AWS_ROLE_ARN=arn:aws:iam::1111111:role/eksctl-playground-addon-iamserviceaccount-bn-b-Role1-HSIN6D1SKE7T
AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
但是我的容器仍然无法加载:
原因:com.amazonaws.SdkClient异常:无法加载 AWS 来自链中任何提供程序的凭据: [环境变量凭证提供程序:无法加载 AWS 来自环境变量(AWS_ACCESS_KEY_ID(或(的凭据 AWS_ACCESS_KEY(和AWS_SECRET_KEY(或AWS_SECRET_ACCESS_KEY((, 系统属性凭证提供程序:无法加载 AWS 凭证 来自 Java 系统属性(aws.accessKeyId 和 aws.secretKey(, com.amazonaws.auth.profile.ProfileCredentialsProvider@5ddeb7cb: 配置文件不能为空,WebIdentityTokenCredentialsProvider: To 使用 AWS-JAVA-SDK-STS 模块必须位于 类路径。, com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@33ecda92: 无法从服务终结点加载凭据]
我还应该检查什么?我可能错过了什么?
我想通了。我必须包含 aws-java-sdk-sts 模块: 编译组:"com.amazonaws",名称:"AWS-Java-SDK-STS",版本:"1.11.699">
包括较新的SDK的sts模块不起作用: 编译组:"Software.amazon.awssdk",名称:"sts",版本:"2.10.40">