簡體   English   中英

使用 aws java sdk 版本 2 從資源文件夾中讀取 aws 配置和憑證

[英]Reading aws config and credentials from resources folder using aws java sdk version 2

我已將我的 aws 憑據從 ~/.aws/credentials 移至 maven 項目的資源文件夾。 文件夾結構看起來像這樣 resources/aws/ ->config ->credentials 我正在使用 aws java sdk 版本 2+。 我如何從資源文件夾中讀取值以獲取區域、訪問密鑰、創建存儲桶和執行操作。

您不應將憑據文件放在資源目錄中。 AWS Java SDK 支持~/.aws開箱即用的憑證文件:

以下列表顯示了支持的憑證檢索技術:

  1. Java 系統屬性aws.accessKeyIdaws.secretAccessKey 適用於 Java 的 AWS 開發工具包使用SystemPropertyCredentialsProvider加載這些憑證。

  2. 環境變量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 適用於 Java 的 AWS 開發工具包使用EnvironmentVariableCredentialsProvider類加載這些憑證。

  3. 默認憑證配置文件- 此文件的特定位置可能因平台而異,但通常位於~/.aws/credentials 該文件由許多 AWS 開發工具包和 AWS CLI 共享。 適用於 Java 的 AWS 開發工具包使用ProfileCredentialsProvider加載這些憑證。

    您可以使用 AWS CLI 提供的 aws configure 命令創建憑證文件。 您也可以通過使用文本編輯器編輯文件來創建它。 有關憑證文件格式的信息,請參閱 AWS 憑證文件格式。

  4. Amazon ECS 容器憑證– 如果設置了環境變量AWS_CONTAINER_CREDENTIALS_RELATIVE_URI則從 Amazon ECS 加載該憑證 適用於 Java 的 AWS 開發工具包使用ContainerCredentialsProvider加載這些憑證。

  5. 實例配置文件憑證– 這用於 Amazon EC2 實例,並通過 Amazon EC2 元數據服務提供。 適用於 Java 的 AWS 開發工具包使用InstanceProfileCredentialsProvider加載這些憑證。

因此,要么使用ProfileCredentialsProvider要么通過系統屬性或環境變量傳遞憑據並使用SystemPropertyCredentialsProvider / EnvironmentVariableCredentialsProvider

AWS Java SDK v2 不支持直接從資源文件夾(類路徑)獲取憑證。

作為替代方案,您可以將 AWS 憑證放入資源文件夾中的屬性文件中:

[[項目]/src/test/resources/aws-credentials.properties:

aws_access_key_id = xxx
aws_secret_access_key = xxx

Spring 配置:

    <util:properties id="awsCredentialFile"
      location="classpath:aws-credentials.properties"/>

和你的代碼:

  @Resource(name = "awsCredentialFile")
  public void setProperties(Properties properties) {
    this.accessKey = properties.getProperty("aws_access_key_id");
    this.secretKey = properties.getProperty("aws_secret_access_key");
  }

  StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretKey));
    S3Client s3 = S3Client.builder()
        .credentialsProvider(credentialsProvider)
        .build();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM