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

如何在Spring启动时使用临时 AWS 凭证?

徐友樵
2023-03-14

因此,我正在使用spring boot应用程序,我希望从该应用程序访问AWS资源,我知道如何通过I am凭据和STS凭据访问AWS资源,我正在寻找一个通过spring boot应用程序使用以下临时AWS凭据的示例或方法。

  1. AWS_SECRET_ACCESS_KEY
  2. AWS_ACCESS_KEY
  3. AWS_SESSION_TOKEN
  4. AWS_SESSION_ID

注意:我尝试过通过BasicSessionCredentials和BasicAwsCredential访问,但没有遇到同样的错误:无法执行Http请求

因此,任何使用java设置所有四个属性的参考或示例都会有很大帮助,谢谢!!

共有1个答案

易星纬
2023-03-14

您可以使用 https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html

按以下顺序查找凭据的默认凭据提供程序链:

    < li >环境变量- AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY < li>Java系统属性- aws.accessKeyId和aws.secretKey < li >来自环境或容器的Web身份令牌凭据 < li >默认位置(~/)的凭据配置文件。AWS/凭据)由所有AWS SDKs和AWS CLI共享 < li >通过Amazon EC2容器服务传递的凭据 < li >通过Amazon EC2元数据服务提供的实例配置文件凭据
@Bean
    public AWSCredentialsProvider amazonAWSCredentialsProvider() {
        
        return DefaultAWSCredentialsProviderChain.getInstance();
    }
    
    @Bean
    public AmazonS3 amazonS3() {
        return AmazonS3ClientBuilder
          .standard()
          .withCredentials(amazonAWSCredentialsProvider())
          .withRegion(Regions.US_WEST_2)
          .build();
    }
 类似资料:
  • 我必须在nifi进程中使用aws临时凭证AccessKey、SecretKey和令牌来访问S3对象。AccessKey、SecretKey和Token将由Api调用提供。如何在nifi ListS3对象等中使用这些临时凭证? 我发现的选项之一是使用AWSCre的alsProviderControlllerService,因为这可以根据API调用更新控制器服务的值吗? 在这个场景中我还可以使用其他选

  • 我需要给我的客户提供临时访问密钥来连接到物联网服务(发布、接收等)。)。为了提供这种访问,我创建了一个Lambda函数,该函数调用来创建临时STS密钥。那些钥匙正在被创建,看起来很好。 我在具有以下内联策略的角色中使用带有Lambda的assumeRole: 注意:我已经添加了ec2权限来尝试辅助(简化)测试。 此角色具有开放的信任关系: 但是,在我的客户端代码(浏览器)中,我无法连接到IoT,并

  • 我想使用boto3上传一个文件到AWS S3。但我只能临时访问S3,这是由一个不在我控制之下的Web服务提供的。我获得了以下凭据信息: 据我所知,例如,这些信息可以用于POST请求。但我无法找到如何将此信息与boto3命令结合使用 通常需要aws_访问密钥id和aws_机密访问密钥。这篇文章建议,这应该是可能的: 您应该通过AWS安全令牌服务(STS)生成临时凭证,而不是签署URL(通常在通过we

  • 我使用的是Spring Boot版本2.0.6.RELEASE 我有以下 API 方法 getSearchData方法运行大约需要40秒。30秒后,我的代码超时,日志中显示以下消息: 并返回以下json响应 getSearchData()方法继续执行,并最终在日志中显示为完成。如果我去掉未来返回类型,只返回一个列表,代码就能正常工作。我已经尝试了以下属性,但不幸的是没有成功。 有谁知道我需要做些什

  • 问题内容: 我正在使用spring-cache来改善数据库查询,如下所示可以正常工作: 但是现在我想在启动时预先填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例程应仅定期进行安排。 但是在使用时如何显式填充缓存? 问题答案: 像以前一样使用缓存,添加调度程序以更新缓存,下面是代码段。 确保你将为一个参数返回对象(默认)。否则,请公开其中的方法,以避免直接使用cacheManager。

  • 我使用spring cache改进数据库查询,其工作原理如下: 但是现在我想在启动时预填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例行程序不应仅定期安排。 但是,使用时,如何显式填充缓存?