当前位置: 首页 > 知识库问答 >
问题:

无法从链中的任何提供者加载AWS凭据-Jenkins

易琨
2023-03-14

目前我正试图让Jenkins与AWS codepipeline合作。我在EC2实例上运行Jenkins。然而,由于某些原因,Jenkins无法加载AWS的默认凭据。我尝试了以下选项:

    < li >使用“aws configure”命令初始化aws凭据 < li >使用Jenkins中的aws-credentials插件 < li >执行导出AWS_ACCESS_KEY_ID=....和AWS_SECRET_ACCESS_KEY=....在Jenkins cli中 < li >检查了~/。aws/credentials文件,如果凭据存在(就是这种情况) < li >遵循AWS文档中的所有步骤,使Jenkins和codepipeline协同工作(http://docs . AWS . Amazon . com/code pipeline/latest/user guide/getting-started-4 . html) < li >确保用户通过AWS上的IAM界面拥有凭据 < li >通过所有步骤,多次重新启动Jenkins服务器

我的作业中的轮询日志给出以下输出:

ERROR: Failed to record SCM polling for hudson.model.FreeStyleProject@75b77936[job-name]
com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:131)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1028)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1048)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:948)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:661)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:635)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:618)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:586)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:573)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:445)
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.doInvoke(AWSCodePipelineClient.java:1785)
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.invoke(AWSCodePipelineClient.java:1761)
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.pollForJobs(AWSCodePipelineClient.java:1228)
at com.amazonaws.codepipeline.jenkinsplugin.AWSCodePipelineSCM.pollForJobs(AWSCodePipelineSCM.java:240)
at com.amazonaws.codepipeline.jenkinsplugin.AWSCodePipelineSCM.compareRemoteRevisionWith(AWSCodePipelineSCM.java:176)
at hudson.scm.SCM.poll(SCM.java:408)
at hudson.model.AbstractProject._poll(AbstractProject.java:1460)
at hudson.model.AbstractProject.poll(AbstractProject.java:1363)
at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:563)
at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:609)
at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

对进一步的方向有什么建议吗?我想防止将凭据直接传递到配置页面中的作业,因为我不使用HTTPS。

共有1个答案

颜云瀚
2023-03-14

根据您的描述,您使用IAM角色为jenkins工作正常。由于您的问题,jenkins用户可能无法使用您的凭据。

因此,首先检查您使用的是亚马逊Linux用户还是詹金斯用户。如果是亚马逊linux用户,那就改变它。

第二件事是,您必须在服务器或Amazon EC2实例上配置代理和防火墙设置,以允许到Jenkins项目使用的端口的入站连接

参考链接:http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html

 类似资料:
  • 我已经对一个使用亚马逊 SQS 的 Java Spring启动 (v1.4.2) 应用程序进行了泊坞化(通过Spring云启动器-aws-消息传递 v1.1.3,它拉入了 aws-java-开发工具包-sqs v1.11.18)。现在,为了向应用程序提供对 AWS 的访问权限,我遵循以下模式: 这通常允许我绕过例外:。 我的问题是:当我将此服务部署到服务器时,我收到由com.amazonaws引起

  • 在我们的应用程序中,我们使用InstanceProfileCredentialsProvider访问AmazonS3存储桶,但在我们的一些环境中,凭据被弄乱了。 AWS文件(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html)内容如下: 如果应用程序使用默认构造函数创建AWS客户端,则客户端将

  • 我一直试图通过访问rest API[1]来监控实例。对于特定的访问密钥和秘密密钥,我在AWS S3上尝试了相同的凭据例如,它成功执行,但对于Amazon EC2,我得到了以下错误: 亚马逊3和AMzonEC2的SIgnature生成是不同的吗?我使用[2]来生成签名,据我所知,亚马逊s3和亚马逊ec2的签名生成没有重大变化。 这可能是什么原因?我们是否需要为Amazon EC2设置任何特定的权限?

  • 我插入了我的,并在中,它们似乎有效。但是,我的 Java 应用程序(在该 EC2 实例上运行并使用 AWS Java v2 开发工具包)无法看到它们。我在使用java代码将文件上传到S3时遇到了此异常。 仅供参考,在我的ec2实例中运行以下命令时,使用aws cli上传文件效果良好:<code>aws s3 cp foo。txt s3://mybucket名称 仅供参考,当我在本地机器上使用STS

  • 我试图使用亚马逊sns服务,但无法从任何链异常加载凭据。凭据存储在application.properties文件中,我也尝试将凭据存储在java系统属性中。但同样的错误也出现了。

  • 我在web应用程序中使用AWS Cognito身份验证。用户可以使用三个身份提供者之一进行身份验证:cognito用户池(通过用户名和密码)、facebook和google。以下是我获取凭据的方式: 登录-对象,可以包含来自cognito、facebook和google的令牌。 如果用户单击注销按钮,web应用程序应该做什么?如果当前用户存在(当前用户仅存在于cognito用户名、密码验证中),我