无法加载AWS凭证

时间:2020-06-01 08:28:17

标签: amazon-web-services apache-spark aws-glue amazon-kinesis kinesis-stream

我正在关注下一个示例,以连接到Amazon Kinesis Data Streams并将合并结果以拼花格式输出到Amazon S3:https://docs.aws.amazon.com/glue/latest/dg/glue-etl-scala-example.html

当我配置与AWS的连接并尝试运行该连接时,它将引发下一个找不到凭证的错误,并且我在“ C:\ Users \ user.aws \ credentials”中分配了该凭证,并且还添加了环境变量:

AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XxXX

但仍然失败:

 ERROR AWSInstanceProfileCredentialsProviderWithRetries: Got an exception while fetching credentials org.apache.s
park.sql.kinesis.shaded.amazonaws.SdkClientException: Unable to load credentials from service endpoint

1 个答案:

答案 0 :(得分:0)

错误消息不是与您在"C:\Users\user.aws\credentials"中拥有的凭据有关,而是与实例配置文件中缺少凭据有关。

AWSInstanceProfileCredentialsProviderWithRetries扩展了isInstanceProfileCredentialsProvider

凭据提供程序实施,可从 Amazon EC2实例元数据服务

加载凭据

您正在执行的代码应该在EC2实例上运行,因此它希望获得instance role形式的凭据。此外,实例角色应该具有代码所需的所有必要权限,例如,使用Kinesis。

通过问题中提供的链接,尚不清楚应在何处正确执行示例代码。无论是自定义ec2实例,还是某些与胶水相关的托管实例。